我的服务器出现内网穿透的三种方式

2025.7.9 杂七杂八 589
33BLOG智能摘要
文章主要讲述了作者在无公网IP的客户网络中使用内网穿透的三种方案进行测试,并总结经验。第一种方案是FRP,为老牌开源工具,配置简单但需注意local_ip的设置,实测延迟较低并可跑满带宽。第二种方案是Ngrok,优点是容易使用,但免费版存在域名变化及带宽限制的问题,仅适合临时测试。第三种方案是Cloudflare Tunnel,无需开放端口并支持WebSocket,但TCP连接偶尔超时,建议搭配健康检查使用。作者最终建议长期使用FRP,临时测试用Cloudflare Tunnel,并强调防火墙设置的重要性。
— 此摘要由33BLOG基于AI分析文章内容生成,仅供参考。

我的服务器内网穿透踩坑记:三种方案实测对比

我的服务器出现内网穿透的三种方式

上周在给客户部署测试环境时,突然发现他们的办公网络居然没有公网IP!作为常年和服务器打交道的我,不得不祭出内网穿透这个神器。今天就把我折腾过的三种方案做个实战总结,希望能帮到遇到同样问题的你。

方案一:FRP – 老牌工具真香警告

最先想到的就是这个开源神器了。记得第一次用FRP时还是2018年,现在居然已经迭代到0.52版本了。配置起来其实很简单,服务端(有公网IP的机器)的frps.ini基本配置:

[common]
bind_port = 7000
token = your_secure_token_here

客户端配置更简单,但有个坑我踩过两次:local_ip一定要写127.0.0.1而不是0.0.0.0,否则会出现蜜汁连接失败。实测延迟在50ms左右,传输大文件时能跑满客户100M带宽。

方案二:Ngrok – 小白友好但有限制

当时客户急着要演示,我临时起意试了Ngrok。这货最大的优点就是开箱即用,一行命令搞定:

ngrok http 80

但免费版有两个致命伤:1) 每次重启都会变域名 2) 带宽限制1Mbps。有次演示视频会议时卡成PPT,场面一度十分尴尬…后来发现付费版$5/月的套餐其实挺香,适合临时应急。

方案三:Cloudflare Tunnel – 新晋网红选手

最近被同事安利的黑科技,不用暴露任何端口就能实现穿透。安装cloudflared后配置:

cloudflared tunnel create my-tunnel
cloudflared tunnel route dns my-tunnel demo.yourdomain.com

最大惊喜是支持WebSocket协议,对我的实时监控系统特别友好。不过实测发现TCP连接偶尔会超时,可能和CDN节点有关。建议重要服务还是搭配健康检查使用。

血泪经验总结

经过这一轮折腾,我的选择策略是:长期稳定用FRP+自建服务器,临时测试用Cloudflare Tunnel,绝对不用Ngrok免费版做生产环境(别问我怎么知道的)。

对了,如果你也遇到类似需求,切记提前测试防火墙设置。我有次排查两小时才发现是客户IT偷偷开了端口过滤…现在想起来血压还会升高。

评论

  • FRP确实稳,自建服务器虽然麻烦点但长期用很值

  • Ngrok免费版那个1M带宽真的坑,上次演示直接翻车了 😅