什么是内网穿透?
如果你有以下困扰,那么你需要了解内网穿透工具:
✅ 远程办公时 想访问公司内网的OA系统或数据库,却连不上VPN
✅ 开发微信小程序 需要调试本地代码,但微信服务器无法回调你的笔记本
✅ 我在外地,想访问家里的NAS ,却因没有公网IP无法连接
✅ 给客户演示网站原型 但对方无法访问你localhost:3000的运行环境
✅ 智能家居设备 离家后无法远程控制空调或摄像头
这些问题的本质,都是因为你的设备处于内网(NAT网络)中,如同住在没有门牌号的房间里。而内网穿透(NAT穿透) 正是解决这一痛点的核心技术——它通过建立加密隧道,将你的本地服务安全地"暴露"在公网上,实现随时随地访问。
还有一些场景也特别适合内网穿透
高配置的服务器太贵了,只需要选择高带宽的低配服务器做为服务端,自己本地搞高配服务器。
数据一定要在自己手里
想要野鸡云服务商的低价服务器,但是怕野鸡云服务商跑路,导致自己数据丢失。
我为什么选择FRP做为内网穿透工具
现在市面上可以内网穿透的工具有很多,下边我列举了几种常用的内网穿透工具。
流水历程
我用过不少内网穿透工具。最开始啥也不懂的时候用的是向日葵,用来干嘛的现在都想不起来了。对完全不懂技术的小白来说,它确实挺友好,当时稀里糊涂就弄通了一会儿。不过那速度,慢得实在让人受不了。
后来学 Java Web 的时候,想把自己写的服务放到外网给人看看,就买了腾讯云的新用户套餐(1核2G3M的小水管)。吭哧吭哧把服务部署上去之后,才真正知道“内网穿透”这个概念(用向日葵那会儿根本不知道这词儿)。
既然有了自己的服务器,第一反应就是:能不能自己搞个穿透?顺便学学服务器知识。立马去 GitHub 上搜“自建内网穿透”,初步筛选,剩下的是 frp、nps 和 neutrino-proxy。
nps 最先被我淘汰了。为啥?对比另外几个仓库,人家几天、几周前还在更新,nps(搜的时候也看到了)的仓库居然已经几年没动静了。这要是出了安全漏洞,找谁修去?不敢用。
作为一个学 Java 的,neutrino-proxy 看着就亲切。于是我就用它了,而且确实用了几个月。但不知道怎么回事(感觉像是资源没清理干净),它跑着跑着服务就自己挂了。最要命的是疯狂写错误日志,几个G都能给你堆出来!问过别人,他们好像没遇到这问题,我还在Gitee上提了个 issue,但还是没法解决,实在顶不住,只能放弃。
最后,只能试试 FRP 了。它有个特点:连接的配置都得在客户端上指定。有人吐槽这点不够灵活,有人觉得清晰可控。我用起来感觉没啥大差别。结果这一用就是好几年,它稳得一批,从来没出过幺蛾子(除了我自己手欠改错配置的时候)。而且服务器上占的资源也很低。
最近又试了 Cloudflare Tunnel 和 Tailscale 这两个免费免自建服务器的方案。Cloudflare Tunnel 配置起来有点烧脑,稳定性更是玄学——有时稳得飞起,下一秒可能直接失联,后台还查不到原因(据说对网络抖动特别敏感)。注册门槛也不低,光域名托管就能劝退一波人。Tailscale 倒是简单,安装登录一气呵成,而且很稳定;但速度嘛…SSH 敲命令都能感到延迟,传文件更是慢如蜗牛(国内网络走 P2P 直连太看缘分)。
说白了,免费都是有代价的:Cloudflare Tunnel 用你的耐心换零成本暴露服务,Tailscale 用速度换易用性。真要稳定干活,还得是 自建内网穿透;
当然,更好更稳定的是直接将服务部署到云服务器上。但是话又说回来了,我本地16个G的内存,4个T的硬盘,要是都把这东西放服务器,我实在是养不起。
还有一个说法,数据,必须要掌握在自己手里;放云服务器上,那不成别人的了吗,什么时候给你小电影删了找谁说理去(开玩笑)。
这样可以选择的服务器就很多了,不用怕云服务器提供商突然跑路,担心自己的数据丢失了。
最后
还是看自己实际需求,如果仅仅只是需要偶尔 ssh连一下NAS,或者对于稳定性和速度没有要求,使用免费的方案就可以了。不需要自建内网穿透。
如果确定自己要自建内网穿透,有需求可以联系我 智慧的格子衫
博主自己已经搭好了一个上下行都是200MB的Frps 服务,可以联系我一起使用。
https://www.fu520.top/archives/frpc-tutorial 想完全自建,并且独占带宽,可以自己搭frps服务,推荐使用 雨云 ,大带宽,很便宜,联系我可以领取优惠券。详情参见:平价高性能的国产云服务,个人开发者的首选-智慧的格子衫
想独占带宽,或者自建不会操作,可以联系我,将服务器直接挂在你名下,确保独自使用
评论区