ZeroTier内网穿透
内网穿透原理 —— NAT
- 发送:内网地址 : 端口 ——> NAT设备(映射) ——> 虚拟公网地址 : 端口
- 接收:公网地址 : 端口 ——> NAT设备(查表)——> 内网地址 : 端口
ZeroTier实现原理
ZeroTier这一类P2P VPN是在互联网的基础上将自己的所有设备组成一个虚拟局域网,设备之间进行p2p连接。Zerotier在多设备之间建立了一个Peer to Peer VPN(P2PVPN)连接,如:在笔记本电脑、台式机、嵌入式设备、云资源和应用。这些设备只需要通过ZeroTier One( ZeroTier 的客户端) 在不同设备之间建立直接连接,即使它们位于NAT之后。连接到虚拟LAN的任何计算机和设备通常通过NAT或路由器设备与Internet连接,ZeroTier One使用STUN和隧道来建立NAT后设备之间的VPN直连。ZeroTier官方搭建了一个行星根服务器叫做地球 Earth,这个行星根服务器是唯一且是免费的,它记录了所有的路径信息,一般情况下大家都直接用的这个。- 行星根服务器 R 记录了所有的路径信息,设备 A 能通过
ZeroTier唯一地址标识找到需要连接的设备 B。这个过程如下:- A 想要将数据包发送到 B,但由于它没有直接路径,因此将其向上发送到 R。
- 如果 R 有直接链接到 B,它会转发数据包给 B。否则它会继续向上游发送数据包,直到达到行星根 (planet)。行星根知道所有节点,所以如果 B 在线,最终数据包将到达 B。
- R 还向 A 发送一个消息,包含有关它如何到达 B 的提示。同时,将消息发给 B,通知 B 它如何到达 A。
- A 和 B 获取它们的消息并尝试相互发送测试消息,可能会对 NAT 或状态防火墙进行穿透。如果这样可以建立直接链路,则不再需要中继。
- 如果无法建立直接路径,则通信可以继续中继 (速度慢)
ZeroTier实践
- 教程:官方文档
- 实现了异地虚拟内网连接
远程应用
- 当客户端和服务器端都具有ipv6地址时,可以直连,不用内网穿透
远程桌面
Parsec
- Parsec官网
- 实测50km总延迟20~30ms;本地鼠标
- 不能固定码率,只能设置上限;游戏效果较差
游戏串流
Moonlight+Sunshine
- Moonlight官网
- Sunshine仓库
- 针对游戏优化;可固定码率,最高150Mbps
影音空间
Jellyfin
- Jellyfin官网
- TMDB刮削:通过https://dnschecker.org/查询"api.themoviedb.org"在服务器解析地址,修改host文件
Navidrome
- Navidrome官网
- 部署方法:docker-compose
评论区