FRP 内网穿透工具
内网穿透工具主要用于在没有公网IP的情况下通过一台位于公网的服务器中转,从公网访问内网提供的服务。
FRP(Fast Reverse Proxy)是GO语言编写的内网穿透工具,在Github上基于Apache2.0协议开源,已经有2W多star了。当然,此类工具安全性还是值得商榷的,不要贸然在重要的系统中使用。
项目Github地址:https://github.com/fatedier/frp
注意:如今国内运营商网络发展已经今非昔比,尤其是国家大力推行光纤入户之后,除了网速大幅提升,目前IPV6也已经普及,因此实际上不存在没有公网IP这个问题了。
FRP服务端和客户端部署
FRP需要部署在内网主机作为客户端,以及公网主机作为服务器。
FRP包含如下几个文件:

- frpc:客户端可执行文件
- frpc.ini:客户端配置文件(简单版)
- frpc_full.ini:客户端配置文件(复杂版)
- frps:服务端可执行文件
- frps.ini:服务端配置文件(简单版)
- frps_full.ini:服务端配置文件(复杂版)
这里我的公网服务器IP为74.82.221.44,我们只需要配置服务端监听端口。在frps.ini中配置:
[common]
bind_port = 7000
注:我这里只是举个例子,实际部署环境中你最好随机选取一个端口,一旦FRP有什么严重漏洞,也好给攻击者增加点操作复杂度。
使用如下命令启动服务端。
./frps -c frps.ini
在内网客户端中,我们要把8080端口的tomcat转发到公网上。在frpc.ini中配置:
[common]
server_addr = 74.82.221.44
server_port = 7000
[mytomcat]
type = tcp
local_ip = 127.0.0.1
local_port = 8080
remote_port = 7001
使用如下命令启动客户端。
./frpc -c frpc.ini
启动客户端并连接成功后,服务端FRP会自动监听7001端口,并将其流量通过和FRP客户端的TCP连接转发到内网中。
和其它类似工具对比
- 花生壳:曾经很流行,现在是收费服务,带宽、流量都有很大限制,但部署操作方便,不需要自己有公网VPS做出口,因此易用、成本低、较为安全,适合非专业用户
- Ngrok:和FRP使用类似,实际使用过发现不怎么稳定(相对而言),据说开源版本有内存溢出的Bug一直没有修复
作者:Gacfox
版权声明:本网站为非盈利性质,文章如非特殊说明均为原创,版权遵循知识共享协议CC BY-NC-ND 4.0进行授权,转载必须署名,禁止用于商业目的或演绎修改后转载。