【内网学习笔记】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 = 123456

# 设置 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 = 123456

# 启用加密,防止流量被拦截
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 的参数远不止文章中提到的这些,更多功能可以参考下面的参考文章。

参考文章:

https://www.jianshu.com/p/331aa59fff5d

https://www.anquanke.com/post/id/184855

更多信息欢迎关注我的微信公众号:TeamsSix


文章作者: Teams Six
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Teams Six !
评论
 上一篇
【内网学习笔记】12、nps 的使用 【内网学习笔记】12、nps 的使用
1、介绍nps 项目地址:https://github.com/ehang-io/nps 也是一款还在更新的内网穿透工具,相较于 frp,nps 的 web 管理就要强大很多了。 nps 和 frp 一样功能都很多,这里就主要记录下平时经常
下一篇 
【内网学习笔记】10、ew 的使用 【内网学习笔记】10、ew 的使用
1、Socks 代理工具介绍Socks 代理可以理解成升级版的 lcx,关于 lcx 的用法可以看我之前的文章: https://teamssix.com/year/210528-130449.html 但是 lcx 毕竟年代久远,现在的杀
  目录