原文

目录

简介

Frp原理

模拟环境

多层网络实战

Frp访问第一层网络

服务端配置

客户端配置

Proxifier连接

Frp访问第二层网络

Frp访问第三层网络


简介

frp 是一个专注于内网穿透的高性能的反向代理应用,支持 TCP、UDP、HTTP、HTTPS 等多种协议。可以将内网服务以安全、便捷的方式通过具有公网 IP 节点的中转暴露到公网。

frp 主要由 客户端(frpc) 和 服务端(frps) 组成,服务端,客户端通常部署在需要穿透的内网服务所在的机器上。

  • 项目地址:frp · GitHub
  • 项目文档:文档 | frp

Frp 分为服务端和客户端

  • 服务端通常部署在具有公网 IP 的机器上,且机器为linux,因为其只能为 Linux 负责处理请求,转发流量
  • 客户端 linux 和 windows 都支持 负责把本地的流量连到服务器,让服务器读取&写入

frp 采用 Golang 编写,支持跨平台,仅需下载对应平台的二进制文件即可执行,没有额外依赖。

Frp原理

  1. 首先,frpc 启动之后,连接 frps,并且发送一个请求 login(),之后保持住这个长连接,如果断开了,就重试
  2. frps 收到请求之后,会建立一个 listener 监听来自公网的请求
  3. 当 frps 接受到请求之后,会在本地看是否有可用的连接( frp 可以设置连接池),如果没有,就下发一个 msg.StartWorkConn 并且 等待来自 frpc 的请求
  4. frpc 收到之后,对 frps 发起请求,请求的最开始会指名这个连接是去向哪个 proxy 的
  5. frps 收到来自 frpc 的连接之后,就把新建立的连接与来自公网的连接进行流量互转
  6. 如果请求断开了,那么就把另一端的请求也断开

模拟环境

网络拓扑图如下,可见有多层网络,只有同层间的网络才能互相访问

vps: 39.100.88.162 ;攻击者:真实机

  • 第一层网络:192.168.10.0/24 vmnet1(仅主机模式)
  • 第二层网络:192.168.20.0/24 vmnet2
  • 第三层网络:192.168.30.0/24 vmnet3
  • 第四层网络:192.168.40.0/24 vmnet4

并在网络编辑器中将vmnet1,2,3,4网卡禁用,这样真实机就访问不了这些网卡ip了,模拟真实的内网环境

多层网络实战

⼀般常⻅的内⽹只有⼀层,⽐如 A 主机的⽹段是 192.168.10.x ,内⽹其他主机的⽹段也是 192.168.10.x,那么就可以直接搭建简单的一层内⽹隧道;那么如果⽬标内⽹有⼆层(192.168.20.x )、三层(192.168.30.x) 、四层(192.168.40.x ),每⼀层主机的⽹段只能和上⼀层的⽹段相互访问,那么这个时候我们应该怎样做,才能从第⼀层访问到最后⼀层,直到最深处的内⽹环境?

Frp访问第一层网络

服务端配置

公网的vps为linux,下载对应的linux包

解压后将其上传至vps上

  1. 服务端的配置文件为frps.ini,默认配置如下。bind_port为服务器监听的端口

这里添加一个控制台,也可以不添加,前面加上注释符#就行

[common]
#服务端监听端口,默认7000。监听来自客户端的流量请求
bind_port = 7000
# 下面这些可以不用加
#控制台用户名
dashboard_user = admin
#控制台密码
dashboard_pwd = password
#控制台的端口
dashboard_port = 7500

  1. 第一次运行要加执行权限

chmod +777 frps

  1. 启动服务端

./frps -c frps.ini

frps tcp listen为7000端口,接收来自frp客户端的请求。Dashboard listen 7500为控制面板的端口

  1. 访问控制台7500端口

客户端配置

下载对应系统类型的文件。

  1. 文件配置

客户端中的配置文件为frpc.ini,进行如下配置

[common]
# 如果tls_enable为true,则frpc将通过tls连接frps。否则可能运行不起来
tls_enable = true
server_addr = 39.100.88.162
server_port = 7000
[plugin_socks]
type = tcp
remote_port = 7777
plugin = socks5

会将客户端中所有的流量通过本地的一个随机端口转发给vps的7000端口,我们访问vps的7777端口就相当于访问客户端的7000端口

  1. 前台启动

windows中

将frpc.exe和frpc.ini两个文件放到被拿下的机器中(可以将两个文件都改个名字放上去)

frpc.exe -c frpc.ini

这时候vps会显示success,则代表隧道建立成功

linux中

同样也是上传两个文件就行frpc和frpc.ini,frpc.ini同win中设置

./frpc -c ./frpc.ini

  1. 让进程后台运行

上面运行的方式太明显了,让其在后台运行

win:

start /b frpc.exe -c frpc.ini

运行后,我们按住ctrl+c取消,连接也不会断开。但是如果重启了就不会再自动进行连接,因为它不是以服务的形式进行启动

linux:

nohup ./frpc -c ./frpc.ini >/dev/null 2>&1 &

停止:

  • ps -aux|grep frp| grep -v grep
  • kill -9 5448

Proxifier连接

通过使? Proxifier ?具与 VPS建?socks5 隧道,端?为 7777

设置代理规则,目前要访问第一层网络10段,所以添加10

这样我们就能访问第一层网络了

Frp访问第二层网络

假设我们拿下了win7(192.168.20.130)这台机器,由于我们只配置了一层网络,所以只能访问10这个网段,而20这个网段是访问不了的。现在win2012-1要充当frp服务端和frp客户端以便访问第二层网络

  1. win2012-1配置 frps.ini

ip填写自己10这个网段的ip,端口填写7000

[common]
bind_addr = 192.168.10.2
bind_port = 7000

然后运行

frps.exe -c frps.ini

  1. win2012-1配置 frpc.ini
[common]
tls_enable = true
server_addr = 39.100.88.162
server_port = 7000
[http_proxy]
type = tcp
remote_port = 7777
#plugin = socks5,不能加上这个
#相较于一级代理,增加如下两个配置
local_ip = 192.168.10.2
local_port = 7777

启动

frpc.exe -c frpc.ini

  1. win7-1配置 frpc.ini
[common]
server_addr = 192.168.10.2
server_port = 7000
[http_proxy]
type = tcp
remote_port = 7777
plugin = socks5

  1. 在Proxifier原有代理规则上增加要访问的网段

  1. 访问第二层网络192.168.20.130

Frp访问第三层网络

在上面二层网络时,win7-1只做了frp客户端,同样的要访问第三层网络,也需要将其设置为frp服务端。win2012-1的frp不需要动

  1. win7-1停止frp.exe,并配置 frpc.ini,并启动
[common]
server_addr = 192.168.10.2
server_port = 7000
[http_proxy]
type = tcp
remote_port = 7777
#去掉plugin选项,并增加下面两项
local_ip = 192.168.20.130
local_port = 7777
  1. win7-1配置frps.ini
[common]
#ip都是设置为下层网络的ip
bind_addr = 192.168.20.130
bind_port = 7000
  1. win2012-2配置frpc.ini
[common]
server_addr = 192.168.20.130
server_port = 7000
[http_proxy]
type = tcp
remote_port = 7777
plugin = socks5

都启动后,就可以访问第三层网络了

按照这种方法,不管是第几层网络我们都能访问到

参考:Frp原理分析_RivenDong的博客-CSDN博客_frp原理 等

利用Frp建立多层代理相关推荐

  1. Frp某场景下实现多层代理

    注:由于传播.利用本文章所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,本文作者不为此承担任何责任,一旦造成后果请自行承担! 目录 frp简介 部分配置参数说明 实验场景 实验场 ...

  2. 利用frp和RDClient实现远程控制电脑

    文章目录 前言 一.frp和RDClient 1.frp 2.RDClient 二.购买服务器 二.下载安装frp 1.服务器端 2.客户端 三.控制端设置并测试连接 四.总结 前言 想要在外面可以控 ...

  3. 利用VMM建立基于事务的层次化验证平台

    摘要:VMM是一种基于 SystemVerilog语言的验证方法学,它通过引入断言.抽象化.自动化与重用这四种机制提高了项目验证的生产率.本文通过一个实例介绍怎样利用VMM建立基于事务的可重用的层次化 ...

  4. FRP|利用FRP完成内网穿透进行windows远程连接的步骤汇总

    文章目录 FRP|利用FRP完成内网穿透进行windows远程连接的步骤汇总 本次配置过程的前提: 服务端配置详情 客户端(windows电脑配置) FRP|利用FRP完成内网穿透进行windows远 ...

  5. 利用frp进行内网穿透将iPad变成“iPad Book”

    利用frp进行内网穿透将iPad变成"iPad Book" 其实通过team viewer或者向日葵这类远程连接软件更方便,但是速度慢,画面卡(并且会有额外收费的功能)等缺点无法给 ...

  6. CobaltStrike建立Socks4代理

    目录 Socks4代理建立 ProxyChains的使用 Socks4代理建立 当我们的被控主机是位于公网和内网边界的服务器时,我们想利用该主机继续对内网的主机进行渗透,比如经过端口扫描我们发现被控机 ...

  7. 利用openfiler建立仲裁磁盘

    目前网络的迅速发展,也出现了大量的***和***软件,那么确保磁盘安全成为了首要目标,但在某些环境中,我们不能建立RAID 5卷来保证安全,那么现在已经有通过仲裁磁盘来保证磁盘安全,我们将重要资料存放 ...

  8. 理解神经网络,从简单的例子开始(2)使用python建立多层神经网络

    这篇文章将讲解如何使用python建立多层神经网络.在阅读这篇文章之前,建议先阅读上一篇文章:理解神经网络,从简单的例子开始.讲解的是单层的神经网络.如果你已经阅读了上一篇文章,你会发现这篇文章的代码 ...

  9. 利用github-pages建立个人博客

    前言 Github很好的将代码和社区联系在了一起,于是发生了很多有趣的事情,世界也因为他美好了一点点.Github作为现在最流行的代码仓库,已经得到很多大公司和项目的青睐,比如jQuery.Twitt ...

最新文章

  1. Fckeditor PHP/ASP File Upload Vul
  2. 一文搞清楚,QPS、TPS、并发用户数、吞吐量
  3. 展望企业级移动设备的操作系统
  4. mock模拟接口测试_Python接口测试之mock(中)
  5. 【论文解读】DCN-M:Google提出改进版DCN,用于大规模排序系统的特征交叉学习(附代码)...
  6. 如何让小程序页面更顺滑_小程序怎样让wx.navigateBack更好用的方法实现
  7. 关于java的回调方法
  8. android学习资料免费下载
  9. 《深入解析Windows操作系统第4版》随笔记录02
  10. 罗马音平假名中文可复制_打上花火歌词,日文/罗马音/中文
  11. 【5号课堂】scratch制作电子生日贺卡
  12. sumifs 汇总_空标准单元格的SUMIFS公式
  13. 【Web前端】一文带你吃透HTML(完整篇)
  14. 2023年大学毕业生,我有话想对你说
  15. 华为鸿蒙系统是emui11,华为鸿蒙2.0还原EMUI11系统
  16. Jqgird 如何使用自带的search模块进行数据查询
  17. VMware 日记一:基础的系统安装和基本配置解析
  18. Android动态加载APK插件类
  19. 成都java培训好习惯的养成
  20. Feedback Control of Dynamic Systems 7th

热门文章

  1. VC++ 多线程实现双色球投注选号程序
  2. 医药产品经理渠道资源获取的方法有哪些?
  3. c语言 网络授权 破解,[授权码]苹果Mac平台C程序的防盗版功能和License授权管理...
  4. 深度神经网络模型剪枝
  5. 联想服务器的厂商信息和产地,联想服务器排名超越华为,居全球第四,网友:第一我们也不需要...
  6. 利用selenuim以及无头浏览器爬取9酷网音乐
  7. Nginx漏洞修复之目录穿越(目录遍历)漏洞复现及修复
  8. 3GPP是个什么组织 为啥5G标准离不开它
  9. 微信发送视频消息php,vbot微信聊天机器人微信聊天消息详解(5):视频消息
  10. 震惊!!!中山大学上方惊现UFO!