frp 实现内网穿透将内网 WebService 接口绑定自定义域名供外网访问

要将内网的 WebService 接口提供给外网访问,最简单又免费的方式就是通过 inconshreveable/ngrok: Introspected tunnels to localhost,ngrok 通过一条命令就可以实现内网穿透,并且不需要服务器。但是它有如下缺点:

  • 免费版本不支持自定义域名,每次执行命令后域名都是随机分配的。
  • 目前官方的已经升级到了2.x,已经不开源了。1.x 版本是开源的,但不再更新,目前最新的开源版本是 1.7.1。
  • ngrok 1.x 版本作者也说了有严重的内存、文件描述符泄漏等问题,国内的那些服务用的都是这个版本的客户端,稳定性很差。

我主要是是因为 ngrok 不能自定义域名,每次重启后重新执行命令生成的域名又变了,这样联调时对方又得更换接口地址,很尴尬的。

于是我找到一款和 ngrok 类似的软件 fatedier/frp: A fast reverse proxy to help you expose a local server behind a NAT or firewall to the internet.,它能满足我的需求,但是使用它没有服务器似乎不行(当然我也不清楚作者有没有提供仅使用客户端的平台化服务),当然自己待建服务端个性化更强也更安全。

Read more