
家里的 NAS、路由器后台、自己搭的小服务,在局域网里点一下就能开。出了门就不行了——宽带给的是内网 IP,从外面根本找不到你家那台机器。
frp 解决的就是这个。它把内网的端口,借一台有公网 IP 的服务器转出去。
原理不复杂:服务端 frps 跑在那台公网机器上,客户端 frpc 跑在家里。frpc 主动往外连,保持一条通道;外面的人访问公网服务器的某个端口,流量顺着这条通道回到内网。因为连接是从里往外发起的,防火墙不会拦。
配置就是几个 toml 文件:写清楚本地端口、映射到哪个远程端口,启动就行。支持 TCP、UDP、HTTP、HTTPS,也支持只让自己用的 STCP 和点对点直连的 XTCP。

它自带一个网页面板,能看到当前几个客户端在线、几条代理连着、流量走了多少。排障的时候,比翻日志快得多。
我用它干过几件事:在外面连家里的 NAS 看照片;出差时远程开家里电脑的桌面;给客户演示还没上线的网站,把本地三千端口临时映射出去,讲完就关。
稳定性比想象中好。我把 frpc 挂在开机启动里,跑了小半年,掉线次数一只手数得过来,断了会自己重连。
跟花生壳、ngrok 那些现成服务比,它的代价是要自己有台服务器。换来的是不限速、没有套餐、端口随便开。长期用,这笔账算得过来。
该注意的地方不能省:公网服务器上别跑别的服务,越干净越好;密码和 token 一定设,不然被人扫到端口就能进来;流量都过你那台服务器,带宽和流量费得先算一笔。
还有一句得说清楚:这是给自己用的工具。拿它做对外经营、绕开该办的手续,风险自负,也不该做。
十一万星,Go 写的,一个二进制文件,没有依赖。装过的人都知道,这种工具最省心。