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