来源:【西部网(陕西新闻网)】起点新闻·西部网记者7月12日从陕西交控市政路桥集团获悉,由陕西路桥集团实施的西安市东三环至临潼公路项目控制性工程——洪...
2025-07-13 0
和朋友一起协同开发,需要打通双方的局域网互访,所以考虑到vpn的场景。一开始考虑frp+openvpn的实现。frp实现点对点穿透,openvpn负责组网。但是感觉这样配置较为繁琐,双方都需要部署frp和openvpn,体验不是很友好。
探索了多种方案最终选择了Zerotier,一个自带P2P打洞的vpn,同时满足需要。只需要自建一台有公网ip的moon服务器就可以高效实现各个zerotier节点之间的打洞。
文章目录
https://my.zerotier.com/network
创建一个网络后,记下network ID。后面其他zerotier的客户端需要先加入这个ID才能进入这个vpn网络中。
可以根据需要自行修改,不然每次要登录官网同意才行。
因为Zerotier官方的根服务器是在国外的,如果不自建Moon服务器,P2P打洞的效率会非常低。这里随便开一台有公网ip的云服务器部署zerotier Moon服务即可。
# 安装
curl -s https://install.zerotier.com | sudo bash# 启动服务sudo systemctl start zerotier-onesudo systemctl enable zerotier-one# 生成随机的 root 身份令牌sudo zerotier-idtool generate identity.secret identity.public配置 controller# 创建配置目录sudo mkdir -p /var/lib/zerotier-one/controller.d# 配置身份信息sudo cp identity.secret /var/lib/zerotier-one/sudo cp identity.public /var/lib/zerotier-one/# 启用 controller 功能echo '{"settings":{"primaryPort":9993},"controller":true}' | sudo tee /var/lib/zerotier-one/local.conf# 重启服务sudo systemctl restart zerotier-one
创建Moon配置
cd /var/lib/zerotier-onesudo zerotier-idtool initmoon identity.public > moon.json
编辑上一步生成的 moon.json 文件中的 roots 部份,向 roots.stableEndpoints 部份添加当前云服务器的公网ip和端口信息。
sudo zerotier-idtool genmoon moon.jsonsudo mkdir moons.dsudo mv *.moon moons.d/systemctl restart zerotier-onezerotier-cli info
注意:zerotier默认是9993端口,需要在云控制台放行这个端口。
https://www.zerotier.com/download/
以Linux / Macos 命令行为例。先在ZeroTier官网获取该网络的16位网络ID,加入网络。
zerotier-cli join <16位网络ID>
让客户端连接到我们自建的moon服务器。这里使用moon ID两次是正确的。
zerotier-cli orbit <MoonID> <MoonID>
如何判断有没有加入成功?大概等待10s左右执行命令。
zerotier-cli listmoonszerotier-cli listpeers
ifconfig
在单台主机上安装Zerotier只能实现两个远程局域网中的节点互相通信,怎么才能实现两个局域网的所有主机互相访问呢?
然后在界面中输出之前的network ID,但是界面上是不支持添加MoonID的。
需要打开openwrt的ssh,通过命令行添加。
zerotier-cli orbit <MoonID> <MoonID>
首先启用 IP 转发(OpenWrt 默认已启用)。
cat /proc/sys/net/ipv4/ip_forward
如果输出为 1 则说明已启用。添加正确的防火墙区域和转发规则。# 添加 ZeroTier 区域uci add firewall zoneuci set firewall.@zone[-1].name='zt_network'uci set firewall.@zone[-1].network='zthnhcbyru'uci set firewall.@zone[-1].input='ACCEPT'uci set firewall.@zone[-1].output='ACCEPT'uci set firewall.@zone[-1].forward='ACCEPT'uci set firewall.@zone[-1].masq='1'# 添加转发规则uci add firewall forwardinguci set firewall.@forwarding[-1].src='zt_network'uci set firewall.@forwarding[-1].dest='lan'uci add firewall forwardinguci set firewall.@forwarding[-1].src='lan'uci set firewall.@forwarding[-1].dest='zt_network'# 提交更改uci commit firewall# 重启防火墙/etc/init.d/firewall restart检查防火墙状态和查看当前的 nftables 规则。/etc/init.d/firewall statusnft list ruleset
在 “Managed Routes” 添加路由:
# 从其他 ZeroTier 设备尝试 ping OpenWrt 的 LAN IP
ping 192.168.3.199
在openwrt上和Zerotier的官网上同时完成路由转发规则的配置后,就可以在对端局域网访问当前局域网中所有的ip资源了,而不是单纯的节点之间的点对点访问。
文章首页的图里面,我在家中使用树莓派安装Zerotier作为中转的设备,而不是在macbook上安装Zerotier,这个时候理论上只有树莓派才可以访问对端的局域网,而我的macbook是不行的。
但也可以实现,需要在树莓派上配置 IP 转发和防火墙规则,让它作为网关转发流量。
在树莓派上启用 IP 转发
# 临时启用echo 1 > /proc/sys/net/ipv4/ip_forward# 永久启用,编辑 /etc/sysctl.conf 添加net.ipv4.ip_forward=1# 应用更改sysctl -p
在树莓派上添加 iptables 规则。
# 允许从本地网络到 ZeroTier 网络的转发iptables -A FORWARD -i eth0 -o zthnhcbyru -j ACCEPT# 允许从 ZeroTier 网络返回到本地网络的流量iptables -A FORWARD -i zthnhcbyru -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT# 启用 NATiptables -t nat -A POSTROUTING -o zthnhcbyru -j MASQUERADE
保存 iptables 规则,下次重启仍然生效。
apt-get install iptables-persistentnetfilter-persistent save
在 macbook 上添加路由(需要管理员权限)。
sudo route add -net 192.168.3.0/24 10.242.36.70
这样配置后,macbook 就可以通过树莓派访问到对端的 192.168.3.0/24 网段了。
虽然Zerotier是商业收费的,免费的用户只能创建三个网络和10个设备节点,但是通过进阶配置,只在每个局域网中的一台设备安装Zerotier,配置好路由转发规则。实际上可以构建10个局域网之间的互联访问。对于普通用户来说已经完整够用了。
主要还是P2P直连通信的延时特别低,体验非常好。经测试 成都-深圳 直连通信的延迟才30ms,相比直接把vpn部署在云上,所有流量经过服务器中转,不管延时还是带宽都好太多了。
相关文章
来源:【西部网(陕西新闻网)】起点新闻·西部网记者7月12日从陕西交控市政路桥集团获悉,由陕西路桥集团实施的西安市东三环至临潼公路项目控制性工程——洪...
2025-07-13 0
【今日视点】◎本报记者 刘 霞今年6月10日,美国麻省理工学院媒体实验室科学家发布一项研究称,过度依赖ChatGPT等人工智能(AI)助手可能削弱批判...
2025-07-13 1
又爆单了。本周六,又一轮补贴大战袭来,经过了上个周末的手忙脚乱,不少商家已经提前做好了备货。不过从第一财经记者今日走访情况看,即使是同一个品牌,不同门...
2025-07-13 1
文章均已开通全网一键维权,未经授权一律举报首发|品牌官作者|品牌官引言:“杀死”那个卖纸的,商家每天降5毛直到倒闭,元凶到底是谁?河北一家纸厂老板,满...
2025-07-13 0
来源:【宁夏日报】7月12日,在深耕全民阅读与文化传承的沃土上,宁夏图书馆持续探索创新路径,聚焦青少年群体,以匠心打造多元阅读体验。其精心策划的“春风...
2025-07-13 0
文/珠玑说(本文所有内容皆有官方可靠信源,具体资料赘述文章结尾 飞利浦是我们家喻户晓的牌子,但现在你手里的飞利浦产品,可能和飞利浦自己没多大关系了,过...
2025-07-13 0
7月11日,第二届贵州科学城科技创新暨“四城”联动交流周夏季系列活动之“聚焦做强做优数字经济 强化贵州科学城品牌宣传”活动举行,邀请中央、省级10余家...
2025-07-13 0
在当下琳琅满目的手机市场中,荣耀凭借不断的技术革新和精准的市场定位,持续推出一系列性能卓越且性价比超高的机型。不过,面对众多型号,如何挑选却成了难题。...
2025-07-13 0
发表评论