随着可用的公网 IPv4 地址越来越少,现在的运营商基本不给家用宽带分配公网 IP 了。如果你想通过外网访问到内网的资源,目前只能采用内网穿透的软件来实现。而一般常规的内网穿透软件都需要一个公网 IP 才能正常工作,比如:「FRP」 或 「Ngork」 等。这样你就不得不租用一个拥有公网 IP 的服务器才能实现上述需求,显然增加了不少使用成本。
做为一个穷屌丝怎么可能折腾得起呢?今天,我们就来介绍一款不需要公网 IP 实现内网穿透的工具 ZeroTier 。ZeroTier 是一个专门用来建立点对点虚拟专用网(P2P VPN)的工具,它提供在线管理界面和全平台的客户端,不需要复杂设置,只要安装客户端并加入到自己创建的网络即可。
行星根服务器 R 记录了所有的路径信息,设备 A 能通过 ZeroTier 唯一地址标识找到需要连接的设备 B。这个过程如下:
A 想要将数据包发送到 B,但由于它没有直接路径,因此将其向上发送到 R。
如果 R 有直接链接到 B,它会转发数据包给 B。否则它会继续向上游发送数据包,直到达到行星根 (planet)。行星根知道所有节点,所以如果 B 在线,最终数据包将到达 B。
R 还向 A 发送一个消息,包含有关它如何到达 B 的提示。同时,将消息发给 B,通知 B 它如何到达 A。
A 和 B 获取它们的消息并尝试相互发送测试消息,可能会对 NAT 或状态防火墙进行穿透。如果这样可以建立直接链路,则不再需要中继。
如果无法建立直接路径,则通信可以继续中继 (速度慢)
除此之外还有 12 个遍布全球的根服务器,这些是收费的服务。由于 Earth 在国外,如果使用免费套餐,连接时的延迟可能会很高。不过 ZeroTier 能自己创建根服务器 月球 Moons,这样我们就能在大局域网中得到更好的体验了。