内网穿透工具 frp
frp 是一种快速反向代理,可帮助您将 NAT 或防火墙后面的本地服务器暴露给 Internet。截至目前,它支持TCP和UDP,以及HTTP和HTTPS协议,其中请求可以通过域名转发到内部服务。
更早些时候我们用的是 ngrok,下面将对比其区别及使用场景。
frps
https://github.com/fatedier/frp
需要有自己的服务器,安装服务端,配置较为简单。
客户端下载地址
https://github.com/fatedier/frp/releases/tag/v0.37.0
MAC:frp_0.37.0_darwin_amd64.tar.gz
Window x64:frp_0.37.0_windows_amd64.zip
客户端配置
subdomain
[common]
server_addr = frp.dev.*.com
server_port = 7070
protocol = kcp # 传输更快但更消耗带宽
token = ********
[cs]
type = http
local_port = 443
use_compression = true # 压缩
subdomain = cs # 配置次级域名
custom_domains
[common]
server_addr = ..com
server_port = 5443
protocol = tcp
token = ********
[web]
type = http
local_ip = 127.0.0.1
local_port = 443
use_compression = true
custom_domains = ..com # 可与server_addr一致
客户端启动
./frpc -c ./frpc.ini
后台管理
http://..com:${backend_port}
admin ***
frps-onekey
https://github.com/MvsCode/frps-onekey
一键安装命令
1 |
|
卸载
./install-frps.sh uninstall
更新
./install-frps.sh update
服务管理器
/etc/init.d/frps {start|stop|restart|status|config|version}
启动 frps start
ngrok
https://github.com/inconshreveable/ngrok
https://ngrok.com/
无需自己服务器,映射到 ngrok.com 子域上
我可以用 ngrok 做什么?
将 NAT 或防火墙后面的任何 http 服务暴露给 ngrok.com 子域上的互联网
在 ngrok.com 的随机端口上将 NAT 或防火墙后面的任何 tcp 服务暴露给互联网
检查通过隧道传输的所有 http 请求/响应
重播通过隧道传输的任何请求
仅能映射到 ngrok.com
ngrok 有什么用?
临时共享仅在您的开发机器上运行的网站
在不部署的情况下在黑客马拉松上演示应用程序
通过允许您重放这些请求来开发任何使用 Webhook(HTTP 回调)的服务
通过检查 HTTP 流量来调试和理解任何 Web 服务
在防火墙与 Internet 隔离的机器上运行网络服务
总结
- 企业开发者、或有私人服务器的建议部署 frp,可定向优化。
- 个人开发者、没有服务器的可以用 ngrok。
由于域名是第三方的,有诸多不便。