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进行授权,转载必须署名,禁止用于商业目的或演绎修改后转载。
Copyright © 2017-2024 Gacfox All Rights Reserved.
Build with NextJS | Sitemap