远程办公:ZeroTier异地组网及私有Moon转发节点搭建

2020-02-08 18:19:30 51点赞 402收藏 80评论

背景

疫情之下,远程办公成为了许多公司2020开年复工的第一需求。本文介绍使用ZeroTier这款开源软件对家庭网络和公司网络进行异地组网,使家庭网络内的设备能像在局域网内一样访问公司网络,从而进行远程办公。

其实关于ZeroTier之前已经写过一边文章了,只不过那篇文章通篇是在手机上完成的,有些细节之处没有很好的指明。故从新整理一下。同时也给出上篇文章许多值友尝试后效果不佳的解决方案,其主要原因是部分地区运营商限制了UDP流量,使得ZeroTier节点间无法进行P2P穿透,进而迫使ZeroTier节点使用官方的中转服务器进行TCP转发。但是ZeroTier是国外的开源软件,在大陆境内未设有相关服务器,导致了TCP转发会出现高延迟、断流等种种问题影响体验。

ZeroTier注册

ZeroTier官网:https://my.zerotier.com/login

在官网上注册账号,以获得ZeroTier网络ID,免费账户可以部署100个ZeroTier节点。一般小公司、工作室这类规模是够用了,大公司基本都铺设了专网搭建了专用的VPN系统。

创建网络ID创建网络ID

创建完成之后就能在ID列表内看到你所获得的网络ID,这个ID将被用于你所需要部署ZeroTier节点。join这个ID的所有ZeroTier节点都将处于同一虚拟局域网之中,并且你能决定所有节点的入网情况。

OpenWrt上配置ZeroTier

带有ZeroTier功能的OpenWrt固件:ftp://ftp.kingzm.top/ftp/Lede_by_Lean/

这里先说明下为什么用OpentWrt,因为ZeroTier的免费账户仅能部署100个节点,为了节省节点数量公司部分只部署一个节点即可,配置好路由就能从这一个节点访问所有公司网络资源。当然你在Windows上配置一个节点在设置路由也是可以的。Ftp中的固件是基于Lean的开源固件编译的。如有需要定制的固件可在留言中备注。至于怎么安装OpenWrt这里就不在赘述了,站内已经有很多大佬写过教程了。

在OpenWrt上配置ZeroTier之前,首先配置网络接口中的Lan接口,开启IPv6及DHCPv6,特别是刷了固件的硬路由。因为L大的固件对ZeroTier开启的虚拟接口配置了防火墙,但是ZeroTier在join核心网络并允许节点入网后虚拟接口会发生一次变更,变更会导致Lan口上的IPv4网络全部被封在防火墙内部不能访问。如果是硬路由没法接显示器这时候就只能重刷固件,如果是软路由还能接显示器和键盘抢救一下。至于怎么抢救有兴趣的可以自行研究一下,本问就不描述了。开启Lan的IPv6之后记得确认接入设备是否获取到了IPv6地址,fd打头的,非fe80开头。

确认终端PC能获取到IPv6地址确认终端PC能获取到IPv6地址

使用IPv6访问OpenWrt并进行后续设置使用IPv6访问OpenWrt并进行后续设置

后续配置可直接使用IPv6访问OpenWrt管理页面进行设置。IPv6访问Web需要在地址前后加上中括号“[]”。

  • 开启OpenWrt上的ZeroTier

将之前在ZeroTier官网上创建的Networks ID填入即可。

开启OpenWrt上的ZeroTier功能开启OpenWrt上的ZeroTier功能

  • 创建接口及防火墙

OpenWrt配菜单:网络->接口,点击添加新接口。

添加新接口,选择zt开头的接口添加新接口,选择zt开头的接口

配置ZeroTier接口的防火墙

为新接口新建一个防火墙为新接口新建一个防火墙 配置防火墙

选中ZeroTier接口对应的防火墙选中ZeroTier接口对应的防火墙

如图勾选其他的保留默认配置如图勾选其他的保留默认配置

  • ZeroTier官网设置节点允许入网

ZeroTier官网->networks->进入你的ID节点中下拉

允许节点入网并勾选桥接允许节点入网并勾选桥接

配置虚拟网络桥接路由

仅桥接节点需要配置仅桥接节点需要配置

  • 配置OpenWrt中ZeroTier接口IP并对绑定接口进行校验

ZeroTier接口设置静态IP,IP就是在官网允许入网后显示出来的IP。掩码一般是255.255.255.0可以在官网根据IPv4 Auto-Assign中显示的信息进行计算。

配置静态IP配置静态IP

核对绑定接口核对绑定接口

核对绑定接口这步一定不能省略,如果接口已经变更,需要重新勾选后重启下OpenWrt,否则可能导致OpenWrt的IPv4网络可能无法使用。

终端PC配置ZeroTier

下载Windows终端:https://download.zerotier.com/dist/ZeroTier%20One.msi

安装好之后开启ZeroTier One。

将networks的ID加入将networks的ID加入

加入网络加入网络

点击join之后进入ZeroTier官网勾选允许设备入网即可。

如果以上配置均已配好且终端PC能ping通OpenWrt下桥接的子网时即表示ZeroTier虚拟局域网已经配置成功了。

配置ZeroTier Moon私有中转节点

如果终端PC ping OpenWrt下桥接网络延迟超过30ms且时断时续就表示终端PC与OpenWrt之间的P2P隧道没有打通,一般移动网络与电信或者联通之间使用UDP穿透会失败。这时候就需要自建Moon节点进行中专加速。

这边测试了联通和广电的点对点隧道,是不能直接用UDP打通的。搭建MOON节点后可以看到网络明显稳定了许多。

MOON节点启用前后对比MOON节点启用前后对比

搭建ZeroTier的Moon行星节点需要一台有公网IP的VPS,最好用国内的,因为国内的转发延迟相对与国外的VPS还是要快上不少。要是实在没有可以用谷歌云,注册送100刀,用香港的节点延迟在40ms上下,流量计费100刀大概1T流量。本事示例用的时一个腾讯云的重庆节点,系统为Centos 7。

  1. vps安装ZeroTier

  • 执行命令:curl -s https://install.zerotier.com/ | sudo bash

  • 执行完成 ZeroTier就已经安装完成了。

vps加入ZeroTier局域网

  • 执行命令:zerotier-cli join <network id>

  • 完成之后按ZeroTier官网允许其入网。

生成moon模板

  • 执行命令:cd /var/lib/zerotier-one

  • 执行命令:zerotier-idtool initmoon identity.public > moon.json

修改moon.json

  • 执行命令:vi moon.json

  • 修改"stableEndpoints"为 vps 的公网的 IP,例如"stableEndpoints": [ "8.8.8.8/9993" ]

生成签名文件

  • 执行命令:zerotier-idtool genmoon moon.json

  • 执行之后会生产一个000000xxxx.moon的文件,将这个文件用Winscp等工具从vps上下载下来。

将moon节点加入网络

  • 执行命令:mkdir moons.d

  • 执行命令:mv ./*.moon ./moons.d/

  • 重启 zerotier即可。

在其他ZeroTier节点中添加启用已设置好的Moon节点

在ZeroTier安装目录新建一个文件夹名称为moons.d,将上步下载下来的000000xxxx.moon文件拷贝至ZeroTier安装目录的moons.d目录下,重启ZeroTier即可。

不同系统的安装路径如下:

  • Windows: C:ProgramDataZeroTierOne

  • Macintosh: /Library/Application Support/ZeroTier/One)

  • Linux: /var/lib/zerotier-one

  • FreeBSD/OpenBSD: /var/db/zerotier-one

OpenWrt需要修改一个脚本,因为其var目录时一个内存虚拟的临时目录,重启后原有配置不会保留。通过ssh连接OpenWrt(ssh功能可在系统->管理权中开启)。

执行命令:vi /etc/init.d/zerotier,在“add_join() {”上方插入两行代码:

  • mkdir -p $CONFIG_PATH/moons.d

  • cp /home/moons.d/* $CONFIG_PATH/moons.d/

修改OpenWrt中ZeroTier的启动脚本修改OpenWrt中ZeroTier的启动脚本

脚本修改完成后,在/home目录下新建一个moons.d文件夹,将000000xxxx.moon文件上传到该文件夹,在Web页面上重启ZeroTier即可。重启ZeroTier后可用zerotier-cli listpeers进行检验,是否成功添加Moon节点。

检验moon是否添加成功检验moon是否添加成功

总结

至此ZeroTier虚拟局域网的搭建及私有moon行星节点的配置就全部完成了。

展开 收起

ihuman 洪恩 识字子集拼音思维ABC会员永久包3-6岁儿童早教启蒙礼物玩具 识字会员终身包

ihuman 洪恩 识字子集拼音思维ABC会员永久包3-6岁儿童早教启蒙礼物玩具 识字会员终身包

268元起

Microsoft 微软 OFFICE 365 家庭版 会员

Microsoft 微软 OFFICE 365 家庭版 会员

106元起

WPS 金山软件 WPS 超级会员 3年卡

WPS 金山软件 WPS 超级会员 3年卡

308元起

Microsoft 微软 365 家庭版 电子秘钥 正版高级Office应用 1T云存储

Microsoft 微软 365 家庭版 电子秘钥 正版高级Office应用 1T云存储

299元起

Microsoft 微软 OFFICE 365 个人版 办公软件

Microsoft 微软 OFFICE 365 个人版 办公软件

189元起

WPS超级会员Pro套餐4年卡1488天官方正版pdf转word排版

WPS超级会员Pro套餐4年卡1488天官方正版pdf转word排版

758元起

WPS超级会员4年套餐pdf转word排版PPT润色模板素材店铺

WPS超级会员4年套餐pdf转word排版PPT润色模板素材店铺

暂无报价

WPS 金山软件 会员季卡

WPS 金山软件 会员季卡

59.85元起

微软(Microsoft))win10win11专业版批量式授权企业版嵌入式正版化解决方案win11家庭版

微软(Microsoft))win10win11专业版批量式授权企业版嵌入式正版化解决方案win11家庭版

1288元起

Microsoft 微软 office365家庭版15个月 203元

Microsoft 微软 office365家庭版15个月 203元

198元起

WPS稻壳会员1年套餐PPT模板素材字体美化图标思维导图官方正版

WPS稻壳会员1年套餐PPT模板素材字体美化图标思维导图官方正版

70.3元起

WPS超级会员2年pdf转word官方正版思维导图排版简历模板赠AI会员

WPS超级会员2年pdf转word官方正版思维导图排版简历模板赠AI会员

218.5元起

SANGFOR 深信服科技 AF-1000-SK1505A 边界安全防护系统软件V8.0

SANGFOR 深信服科技 AF-1000-SK1505A 边界安全防护系统软件V8.0

67980元起

SANGFOR 深信服科技 深信服EDR-33 终端安全管理系统

SANGFOR 深信服科技 深信服EDR-33 终端安全管理系统

40000元起

SANGFOR 深信服科技 深信服防火墙AF-1000-B1120--K3

SANGFOR 深信服科技 深信服防火墙AF-1000-B1120--K3

50000元起

SANGFOR 深信服科技 aTrust-1000-GA160M 零信任综合网关设备

SANGFOR 深信服科技 aTrust-1000-GA160M 零信任综合网关设备

298000元起
80评论

  • 精彩
  • 最新
  • 想咨询下能不能用域名,有公网IP但不是固定IP

    校验提示文案

    提交
    可以的,用ddns就行

    校验提示文案

    提交
    ddns怎么建立moon点,绑定不了域名吧?

    校验提示文案

    提交
    还有1条回复
    收起所有回复
  • 创建接口及防火墙 这个章节的作用是什么
    我现在在阿里云上搭了一个moon,两个客户端本地也都有了moon,但是对烤文件速度非常慢。

    校验提示文案

    提交
    这个是openwrt上需要的步骤

    校验提示文案

    提交
    没有走点对点,走的moon转发的话阿里云里的好确实慢,它的出口带宽只有1Mbps。

    校验提示文案

    提交
    收起所有回复
  • 很久没用了,之前的免费版的速度非常慢,远程ssh登录我的树莓派,急死了。

    校验提示文案

    提交
    你这应该是udp没打通,建个moon节点就好了。或者zerotier系统中找一个负载低些的system主节点。

    校验提示文案

    提交
    p2p隧道通了很稳定的,延迟在20ms以内

    校验提示文案

    提交
    还有2条回复
    收起所有回复
  • Windows是放在C:\Program Files\ZeroTier\moons.d这个目录嘛?用cmd运行zerotier-cli listpeers没有Moon节点。
    VPS上怎么知道自己运行成功?zerotier-cli listpeers没有Moon节点。
    群晖上安了,这次有出来Moon节点

    校验提示文案

    提交
    vps会显示自己买的是moon

    校验提示文案

    提交
    收起所有回复
  • 作者你好,安卓的moon怎么弄?

    校验提示文案

    提交
    手机嘛?root之后用文件管理器放进去

    校验提示文案

    提交
    收起所有回复
  • 清晰易懂,一次成功。解决了我很久L大OpenWrt重启后zerotier连不上的问题。

    校验提示文案

    提交
    感谢打赏! [亲亲] [亲亲] [亲亲]

    校验提示文案

    提交
    收起所有回复
  • 组网中如果有国外的无公网的点,可以利用这个点做nat转换么。

    校验提示文案

    提交
    该点只能做其下私网的Nat转换

    校验提示文案

    提交
    收起所有回复
  • iOS有没有相应的客户端?想着在外头访问自家文件

    校验提示文案

    提交
    有的,ios也有客户端的。

    校验提示文案

    提交
    请教下叫啥?谢谢!

    校验提示文案

    提交
    还有5条回复
    收起所有回复
  • 你好,我的老电脑是xp的 无法安装zerotier客户端,现在想用安卓手机开zerotier共享网络给电脑 但是电脑分配的IP是和手机不一个网段,zerotier设置了桥接也不能访问家里,有什么办法吗

    校验提示文案

    提交
    实际上是可以的,手机分享的ip段应该是172的,在你家之外的zerotier节点上配置一条路由,将172的网端指向安卓手机的zerotier分配到的ip即可。

    校验提示文案

    提交
    安卓手机开了zerotier分配的是192.168.196.152,然后共享给电脑,电脑是 192.168.42.133. zerotier官网设置了192.168.42.0/24到192.168.196.152,但是电脑连不上家里

    校验提示文案

    提交
    还有3条回复
    收起所有回复
  • 怎样把lan口的ipv4地址再从防火墙里放出来?

    校验提示文案

    提交
    没听明白……

    校验提示文案

    提交
    文章中写了,启用ZT后lan的ipv4被防火墙拦截,要启用ipv6访问。我遇到的问题是用v6设置好后,ipv4内网还是无法使用

    校验提示文案

    提交
    还有3条回复
    收起所有回复
  • 我的VPS是windows,怎么搭建moon呢?我找了好久,好像没有教程

    校验提示文案

    提交
    好像不行吧

    校验提示文案

    提交
    收起所有回复
  • 请问为什么要新建一个网卡桥接,用原有的不行吗

    校验提示文案

    提交
    不加我那会儿测试会导致openwrt无法访问

    校验提示文案

    提交
    收起所有回复
  • iOS客户端怎么添加Moon节点?

    校验提示文案

    提交
    新版的会自动添加组网的moon节点哦,不再需要手工添加。

    校验提示文案

    提交
    真的可以?

    校验提示文案

    提交
    还有3条回复
    收起所有回复
  • 大佬,请教下,新版的会自动添加组网的moon节点这个怎么判断是否加了呀,mac上有加上moon节点的,访问时很快的,在ios上访问很慢,不知道什么原因

    校验提示文案

    提交
    Ios应该没办法确认是否连接了moon

    校验提示文案

    提交
    收起所有回复
  • 请问华硕koolshare改版固件,下载哪个版本的zeortier, 这个吗: Linux (DEB/RPM>

    另外请问,路由器装了,是不是路由器下的设备不用在装zeortier,都会加入这个虚拟网络

    校验提示文案

    提交
    Koolshare不太清楚有没有相关插件

    校验提示文案

    提交
    收起所有回复
  • iPhone上的节点怎么加入自己设置的服务器上呢

    校验提示文案

    提交
    好像不行,新版本已经能自动识别自组网内的行星节点了,不知道ios版本是否已经支持。

    校验提示文案

    提交
    收起所有回复
  • 有个人疑问,好像搭建moom的vps不需要加入zerotier 中,这就意味着 这个搭建好的moom是可以分享给别人用的,只要把生成的moom 文件分享就可以了,别人用了不能访问你的设备,只是用你的vps打洞。

    校验提示文案

    提交
    moon需要先加入网络的

    校验提示文案

    提交
    收起所有回复
  • 请问搭建moon需要的服务器国内的行不,犹豫选阿里云香港还是阿里云北京,另只用于moon应该按流量计算更划算吧!谢谢大佬!

    校验提示文案

    提交
    国内的服务器可以的,你应该先试试常用的两个点之间p2p能不能打洞,可以的话没必要买个vps做moon,成本不划算。电信联通直接打电话可以要到公网ip

    校验提示文案

    提交
    收起所有回复
  • 问下,加入的私有moon, 后续如何退出 ? 命令是什么呀

    校验提示文案

    提交
    删了配置就行

    校验提示文案

    提交
    收起所有回复
  • 请问大佬 openwrt怎么在Home目录把moon的配置文件放进去啊

    校验提示文案

    提交
    winscp或者win10自带的shell都可以啊

    校验提示文案

    提交
    ios设备不能加入moon节点吗 [喜极而泣]

    校验提示文案

    提交
    还有3条回复
    收起所有回复
提示信息

取消
确认
评论举报

相关好价推荐
查看更多好价

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
402
扫一下,分享更方便,购买更轻松