【内网学习笔记】11、frp 的使用

1、介绍

相较于前一篇文章介绍的 ew 的年代久远,frp 就好的多了,基本上隔几天就会发布新的版本,最新的一版更新还就在几天前。

在实战中,大家较多使用的也是 frp,frp 项目地址:https://github.com/fatedier/frp

至于下载安装直接在项目的 releases 里下载自己对应的系统版本就行。

2、使用

官方使用文档:https://gofrp.org/docs/

frp 分成服务端和客户端,分别叫 frps 和 frpc,配置文件分别对应 frps.ini 和 frpc.ini

以下环境均为本地环境,VPS IP 为 172.16.214.52,目标主机 IP 为 192.168.7.110

a、内网端口穿透

场景:内网主机可出网,想从公网访问内网主机的 3389 端口

在 VPS 上开启服务端,这里以 kali 为例,首先修改配置文件 frps.ini

[common] bind_port = 4444

然后启动服务端

frps -c frps.ini > ./frps -c frps.ini 2021/06/09 03:45:03 [I] [root.go:200] frps uses config file: frps.ini 2021/06/09 03:45:03 [I] [service.go:192] frps tcp listen on 0.0.0.0:4444 2021/06/09 03:45:03 [I] [root.go:209] frps started successfully

配置客户端配置文件

[common] # 服务端 IP server_addr = vps_ip # 服务端端口 server_port = 4444 [rdp] type = tcp local_ip = 127.0.0.1 local_port = 3389 # 连接 vps 的端口 remote_port = 3389 > .\frpc.exe -c frpc.ini 2021/06/09 15:50:29 [I] [service.go:304] [72904e8037a7fdf8] login to server success, get run id [72904e8037a7fdf8], server udp port [0] 2021/06/09 15:50:29 [I] [proxy_manager.go:144] [72904e8037a7fdf8] proxy added: [rdp] 2021/06/09 15:50:29 [I] [control.go:180] [72904e8037a7fdf8] [rdp] start proxy success

此时,在 vps 上访问本地的 3389 端口就会访问到内网主机的 3389 端口了。

b、建立 socks 代理

场景:内网主机可出网,想把内网主机作为跳板机使用

上面的场景只是利用 frp 访问了内网指定机器的指定端口,我们还可以利用 frp 将内网主机作为跳板机使用。

这次我们用上 frp 的 web 控制面板以及访问密码等功能,让我们建立的连接更加安全、方便。

在 VPS 上开启服务端,服务端配置文件如下:

[common] bind_port = 4444 # 客户端认证 token token = # 设置 frps 仪表盘端口、账号和密码,实战中用处貌似不大,但如果设置一定要设置强密码 dashboard_port = 8000 dashboard_user = admin dashboard_pwd = password 实战中,为了更好的隐藏自己,最好还是要设置通过域名访问

配置好文件后,启动服务端

frps -c frps.ini ./frps -c frps.ini 2021/06/09 04:06:34 [I] [root.go:200] frps uses config file: frps.ini 2021/06/09 04:06:35 [I] [service.go:192] frps tcp listen on 0.0.0.0:4444 2021/06/09 04:06:35 [I] [service.go:294] Dashboard listen on 0.0.0.0:8000 2021/06/09 04:06:35 [I] [root.go:209] frps started successfully

配置客户端文件

[common] server_addr = vps_ip server_port = 4444 # 客户端认证 token,需要和服务端 token 保持一致 token = # 启用加密,防止流量被拦截 use_encryption = true # 启用压缩,提升流量转发速度 use_compression = true [socks5] type = tcp # 连接 vps 的端口 remote_port = 1080 plugin = socks5

开启客户端

frpc -c frpc.ini > .\frpc.exe -c frpc.ini 2021/06/09 16:11:21 [I] [service.go:304] [ee7ad330ab4e6036] login to server success, get run id [ee7ad330ab4e6036], server udp port [0] 2021/06/09 16:11:21 [I] [proxy_manager.go:144] [ee7ad330ab4e6036] proxy added: [socks5] 2021/06/09 16:11:21 [I] [control.go:180] [ee7ad330ab4e6036] [socks5] start proxy success

测试 VPS IP 的 1080 的 socks5 代理,发现已经连通了。

打开 frps 仪表盘,登录后,可以看到当前连接数据的相关信息

frp 的参数远不止文章中提到的这些,更多功能可以参考下面的参考文章。

原文链接:

【内网学习笔记】11、frp 的使用​teamssix.com/year/-.html

参考文章:

Frp(frps,frpc) 内网穿透​www.jianshu.com/p/331aa59fff5d

FRP 内网穿透 - 安全客,安全资讯平台​www.anquanke.com/post/id/