1. 什么是内网穿透?
内网穿透,也称为 NAT 穿透,是一种网络技术,它允许位于局域网(内网)中的设备被互联网(外网)上的其他设备发现和访问。
简单比喻:
你的家庭或公司网络就像一个私人小区。小区内的每户人家(你的电脑、手机、NAS等设备)都有一个内部门牌号(内网IP,如192.168.1.100)。外人从大街上(互联网)看过来,只能看到小区的大门地址(公网IP),并不知道每家每户具体在哪里,也无法直接敲门访问。
内网穿透技术就像是:
一个“中介”:你告诉中介(穿透服务器)“我在家,如果想找我,请告诉访客先联系你,然后由你带他进来”。
一条“专用隧道”:你在家和访客之间建立了一条秘密隧道,访客可以通过隧道直接到达你家门口,绕过了小区大门的管制。
为什么需要内网穿透?
由于IPv4地址枯竭,运营商通常不会给家庭或企业用户分配独立的公网IP(或需要付费申请)。我们的设备都被隐藏在运营商的巨大局域网中,通过NAT(网络地址转换)技术共享一个公网IP。这使得从外部网络直接访问内网设备变得极其困难。内网穿透就是为了解决这个问题而生的。
2. 内网穿透有哪些方案?
内网穿透的方案非常多,可以根据其实现原理大致分为以下几类:
类别一:传统中转方案
这类方案需要一个拥有公网IP的服务器作为“中介”或“桥梁”,所有流量都通过这台服务器转发。
Frp (Fast Reverse Proxy): 非常流行的开源项目。你需要在公网服务器上部署frp服务端,在内网设备上部署frp客户端。外部流量访问服务器的一个特定端口,会被自动转发到内网设备的指定端口。
优点: 功能强大,灵活,支持TCP、UDP、HTTP、HTTPS等多种协议。
缺点: 你需要额外购买一台公网服务器,流量需要中转,服务器的带宽和性能会成为瓶颈。
Ngrok: 早期的内网穿透工具,提供客户端和服务端,原理与Frp类似。
优点: 配置简单,有提供服务的商业公司。
缺点: 开源版本功能有限,性能一般。
类别二:P2P打洞方案
这类方案会先尝试让两台位于不同内网的设备直接建立点对点连接(P2P),如果打洞失败,再 fallback 到中转模式。
Zerotier / Tailscale: 它们是虚拟局域网软件。它们会在你的所有设备(包括手机、电脑、服务器)上创建一个虚拟网络适配器,并分配一个虚拟的局域网IP(如192.168.192.x)。通过一个公共的“协调服务器”帮助设备之间建立直连(P2P)。
优点: 如果P2P成功,速度极快(取决于你的网络带宽,比如我家里装的千兆光纤,上行速度是70Mbps左右,基本上都可以跑满),延迟低,无需公网服务器。使用简单,像加入一个虚拟局域网一样。
缺点: 在某些复杂的网络环境下(如对称型NAT)可能无法直连,需要中转,而官方的“星球”服务器可能在国外,中转速度慢。
类别三:商业服务方案
直接使用第三方公司提供的现成服务,通常提供简化的一键式配置。
花生壳: 国内老牌的内网穿透服务商。
优点: 非常方便,无需自建服务器,提供免费和付费套餐。
缺点: 免费版限制多(带宽、流量、域名),付费版价格可能较高,数据经过第三方服务器。
3. 为什么选择自建Zerotier-Planet,并使用Zerotier是最好的方案?
首先,要理解Zerotier的架构:
Planet(行星服务器、根服务器): 官方根服务器,负责身份认证和协调打洞。你的设备上线后第一件事就是去Planet上报到。
Moon(月球服务器): 用户自建的辅助根服务器,可以作为中继服务器,提升在无法直连情况下的连接速度和稳定性。
“自建Zerotier-Planet” 就是自建一个私有的Planet根服务器,完全替换官方的Planet根服务器。
为什么这是“最好”的方案?
极致的安全性和隐私性
你的所有设备认证、组网信息、以及在中转情况下的所有数据流量,都完全经过你自己掌控的服务器。官方服务器无法获取任何信息。特别是zerotier服务器在境外,家里如果有敏感数据或者对于企业或高度重视隐私的用户来说,这是最核心的优势。
性能的巨大提升
官方的Planet服务器可能在海外,国内设备连接延迟高,且中转带宽小、速度慢。
自建Planet/Moon服务器可以放在国内的云服务器(如阿里云、腾讯云)上。国内设备连接国内服务器的延迟极低(<50ms),当中转发生时,带宽取决于你购买的云服务器带宽(例如3Mbps、100Mbps),速度远超官方免费的中转服务。
连接稳定性和成功率提高
在国内复杂的网络环境下,很多设备之间无法成功P2P打洞。此时,一个位于国内的、高质量网络的Moon服务器作为中继节点,可以极大地提高连接的成功率和稳定性,延迟也会比连接海外节点低得多。
完全自主可控、所需费用可控
你不再依赖Zerotier官方的服务。即使官方服务出现故障或被干扰,你的私有网络依然可以正常工作(只要你的Planet服务器还活着)。
只需要最基本的云服务器即可实现,如我在阿里有买了一台云服务器,花费只需要99元/年。腾讯、华为都有类似每个人可以享受一次的服务。
保留了Zerotier的所有优点
简单易用: 仍然只需要安装客户端,输入网络ID即可加入,管理界面友好。
全平台支持: Windows, macOS, Linux, iOS, Android, NAS等全部支持。
真正的虚拟局域网: 体验就像设备都在同一个本地局域网内,可以用虚拟IP直接访问,包括异地和朋友组网玩局域网游戏都是可以的。
对比其他方案:
结论
我觉得巧妙地结合了P2P技术的便捷性和自建基础设施的掌控力,自建Zerotier-Planet 这种方案,在性能、安全性、稳定性和易用性之间取得了极佳的平衡。对于有能力操作的用户而言,它确实提供了接近完美的内网穿透体验,尤其适合在国内网络环境下使用。可以称之为内网穿透的最好方案。如何配置呢?请听下回分解。
配置前提:
一台拥有公网IP的云服务器,最好是干净的,刚装完系统的,可以是NAT型的,不影响。
如果有云服务器提供商开了默认的防火墙或者安全组,请把所有端口全部开放。
本地客户端能正常上网。
确保客户端的网络运营商没有对UPD进行限制(因为Zerotier使用UDP协议),同时确保网络运营商没有限制上传速率。
要求云服务器能够ping通回环地址(127.0.0.1),否则zerotier-one无法正常启动。
云服务器的推荐配置:
系统:Ubuntu 22.0 版本以上/Debian 12.0 版本以上
CPU:1核
内存:1G