引子:你肯定遇到过这些"连不上"的时刻
你有没有过这种经历——
出差在外地,客户急着要一份文件,你突然想起它躺在家里电脑的桌面上。打电话让家人帮忙开电脑?对方连开机键在哪都找不到。
周末在咖啡馆,想远程连回公司服务器排查个问题,结果发现公司内网只能从办公室连,VPN 配了半天也没连上。
或者,家里搞了台 NAS 存照片,出门想翻一张老照片,打开 APP 转了半天提示"无法连接"。
这种时候,你就需要一个叫"内网穿透"的东西。
说白了,内网穿透就是帮你解决一个老大难问题:你家(或公司)的设备,在公网上是"隐形"的。外面的人想访问你家里的电脑、NAS、摄像头,就像隔着墙喊话,墙太厚,对方听不见。内网穿透就是帮你在这堵墙上开个小门。
一、先说说,为什么会有"连不上"的问题?
要理解内网穿透,得先搞明白一个事:IPv4 地址不够用了。
你家路由器从运营商那里拿到的是一个公网 IP,但全家几十台设备(手机、电脑、电视、智能家居)都共用这一个 IP。路由器内部给每台设备分配的是"私有 IP"(192.168.x.x 这种),这些地址只能在局域网内用,从外面是访问不了的。
这就好比你住在一个小区,每家每户都有内部房号(私有IP),但整个小区只有一个对外地址(公网IP)。快递员(外部请求)到了小区门口,不知道该送到哪一户——除非你提前告诉门卫怎么转交。
内网穿透就是那个"门卫"。
它有三种主流做法:
- 端口转发 + 公网IP:最直接,但运营商不一定给你公网IP,而且暴露端口有安全风险。
- 中继转发:通过一台有公网IP的服务器做中间人,帮你转发数据。稳定可靠,但多绕了一圈。
- P2P打洞:让两台设备直接建立连接,绕过中间服务器。速度快,但受网络环境限制,不一定都能成功。
二、5款工具,谁适合谁?
| 工具名称 | 协议/状态 | 一句话说明 | 适合谁 |
|---|---|---|---|
| FRP | 开源,活跃维护 | 高性能、全协议,自建穿透的首选 | 有云服务器,需要稳定长期方案 |
| ZeroTier | 开源 (GPL v3) | 创建虚拟局域网,设备像在同一内网 | 多台设备跨地域组网 |
| gonc | 开源 | 基于P2P"打洞",追求直连低延迟 | 追求P2P直连,不想维护服务器 |
| Spleen | 开源 (Apache 2.0) | 轻量级,注重安全审计,基于TLS加密 | 对安全有高要求的场景 |
| rathole | 开源 | 类FRP,主打轻量化和低资源占用 | 在低配设备上跑穿透 |
🏆 FRP:最稳的选择,没有之一
如果你手头有一台云服务器(哪怕是 1 核 2G 的最低配),FRP 是闭眼选。
它的原理很简单:你有一台公网服务器,FRP 在服务器上跑一个"服务端",在需要穿透的家里电脑上跑一个"客户端"。客户端主动连接到服务端,在服务器上开一个端口,访问这个端口就等于访问了家里电脑的服务。
💡 我自己的用法
我家里 NAS 上的各种服务(文件管理、影音播放、下载工具)全部通过 FRP 暴露在外网访问。跑了两年多,中间升级过版本,没有出过任何问题。稳定到你会忘记它的存在。优点: 支持 TCP、UDP、HTTP、HTTPS 几乎所有协议,社区活跃,文档齐全,遇到问题搜一下就有答案。
缺点: 需要一台云服务器(月费几十块),流量经过服务器中转,带宽取决于服务器带宽。
🌐 ZeroTier:让设备像在同一个房间
如果说 FRP 是"开小门",ZeroTier 就是造一座虚拟城市。
你安装了 ZeroTier 之后,它会给你所有的设备分配一个"虚拟 IP"。不管这些设备在上海、北京还是纽约,装了 ZeroTier 之后,它们就像在同一个局域网里——可以直接用 IP 互相访问。
最适合的场景: 公司有台服务器,家有几台电脑,偶尔出差带笔记本。三地设备想互相访问,又不想每台都配置穿透。ZeroTier 装上,全搞定。
有点遗憾的地方: 它依赖一个"行星服务器"做协调,这服务器在海外,连接有时不太稳定。不过你可以自建 Moon 节点来加速。
⚡ gonc:追求极致的P2P直连
gonc 的理念是:能不中转,就不中转。
它利用公共的 STUN 服务器尝试"打洞",如果成功,两台设备直接建立连接,不经过任何中间服务器。延迟极低,非常适合远程桌面这类对延迟敏感的场景。
优点: 直连延迟低,无需维护服务器。
缺点: 打洞成功率受网络环境限制。有些严格的防火墙(比如公司网络)可能打洞失败,这时候就只能降级用中继。
🔒 Spleen:安全至上的轻量级选手
Spleen 的设计思路跟前面几个不太一样——它把安全审计放在第一位。
所有的连接都经过 TLS 加密,并且有详细的连接日志记录。谁在什么时候连了哪个服务,一目了然。
适合谁: 如果你对安全比较敏感,比如暴露的服务涉及到公司内部数据,或者你想随时知道有没有人在摸你的服务器。
🪶 rathole:不吃资源的 FRP 表弟
rathole 的定位是"轻量版 FRP"。它的核心卖点是资源占用极低(内存不到 10MB),跑在树莓派、OpenWrt 路由器这类低配设备上毫无压力。
不过需要注意,rathole 的更新最近有些放缓,社区活跃度不如 FRP。如果你追求长期稳定,FRP 仍然是更稳妥的选择。
三、到底怎么选?
每个人的需求不一样,我帮你按场景捋一遍:
① 有云服务器,追求长期稳定、功能全面 → FRP。这是经过长期验证、社区最活跃的方案,文档齐全,是自建服务最可靠的选择。没有之一。
② 多台设备在不同地方,想互相访问 → ZeroTier。让北京的家、上海的公司、出差的笔记本组成一个大局域网,互相访问跟在同个房间一样。
③ 追求 P2P 直连,不想维护服务器 → gonc。利用公共 STUN 服务尝试打洞,成功即直连,无需中转。延迟低,适合远程桌面。
④ 追求极致轻量和低资源占用 → Spleen 或 rathole。Spleen 侧重安全连接审计,rathole 更轻量。不过两者更新都不如 FRP 活跃,建议先在小项目上试水。
四、个人心得
内网穿透这个东西,平时你可能觉得"用不上"——但一旦经历了一次出差在外急需文件却连不上自家电脑的尴尬,你就会想要立刻搞定它。
我的建议是:从 FRP 开始。 一台最便宜的云服务器,配上 FRP,就能解决 90% 的远程访问需求。等跑起来之后,如果发现有些场景对延迟敏感,再考虑叠加 ZeroTier 或 gonc 做 P2P 直连。
不要追求一步到位,先用起来才是关键。
毕竟,工具的意义就是让你在需要的时候,不会因为"连不上"而抓狂。