利用ZeroTier构建虚拟局域网并搭建私人Moon服务器

NOTE:本文章简单介绍怎么搭建zerotier虚拟局域网,并在公网上把两个内网并成一个虚拟局域网,最后在这个虚拟局域网里面搭建私人的moon服务器保证网络的稳定。

    zerotier本身是有节点服务器提供给免费账号用的,但是由于根服务器在国外,所以也可以自己搭建私人的中心节点服务器,也叫做MOON服务器,用于保证网络的稳定。

ZeroTier设备支持:免费用户可以支持100个设备,支持Windows、macOS、Linux、IOS、Android、Synology、QNAP、Western Digital MyCloud NAS等等。

注册zerotier

  1. 创建账号
    https://my.zerotier.com
  2. 创建网络
    进入 https://my.zerotier.com/network 点击Create创建网络
  3. 点击进入已创建的网络
    此时可以看到Network ID,后续添加设备都会需要这个ID。
NOTE:简单的介绍下,网络里面Advanced是可以配置你虚拟局域网的相关网络信息。Managed Routes是设置虚拟局域网的路由表。Access Control,默认是Certificate (Private Network),选择此模式表示每次在添加新的主机时,需要手动勾选是否允许连接,如果选择None (Public Network)模式,表示加入网络后自动分配IP并允许连接,从安全性来说建议使用默认选项Certificate (Private Network),方便性来看None (Public Network)更方便,不用每次加入网络后手动勾选。

客户端安装

  • Windows客户端
    https://download.zerotier.com/dist/ZeroTier%20One.msi
  • Mac客户端
    https://download.zerotier.com/dist/ZeroTier%20One.pkg
  • IOS客户端
    https://itunes.apple.com/us/app/zerotier-one/id1084101492?mt=8
  • 安卓客户端
    https://play.google.com/store/apps/details?id=com.zerotier.one
  • Linux客户端
    使用命令行安装

    curl -s https://install.zerotier.com/ | sudo bash
  • 群晖客户端
    这里具体说明下群晖客户端安装 – PRIMARY SUCCESS DANGER WARNING INFO

    NOTE:由于群晖型号不同,需要安装的客户端程序也不同,具体登录群晖ssh,然后运行

    uname -a

    ,然后根据显示的群晖的内核安装对应的程序,下载地址 http://www.zerotier.com/download.shtml

更多客户端可以访问官网下载页面

http://www.zerotier.com/download.shtml

两个内网互联路由配置

    假设

  • 假设虚拟局域网的网段是192.168.88.0 局域网A 192.168.1.0 局域网B 192.168.2.0
  • 在局域网A和B中需要各有一台主机安装zerotier并作为两个内网互联的网关
  • 分别是192.168.1.10(192.168.88.10) 192.168.2.10(192.168.88.20)
    括号里面为虚拟局域网的ip地址
  1. 在zerotier网站的networks里面配置路由表填
    192.168.1.10/24 via 192.168.88.10
    192.168.2.10/24 via 192.168.88.20
    192.168.88.1 via LAN
  2. 防火墙设置
    iptables -I FORWARD -i ztyqbub6jp -j ACCEPT
    iptables -I FORWARD -o ztyqbub6jp -j ACCEPT
    iptables -t nat -I POSTROUTING -o ztyqbub6jp -j MASQUERADE

    其中的“ztyqbub6jp”在不同的路由器中不一样,你可以在路由器ssh环境中用zerotier-cli listnetworks查询

  3. 设置桥接
    在官网的networks里面,在Members选择两个节点前面的小扳手,然后勾选Allow Ethernet Bridging

MOON服务器配置

操作系统版本是Ubuntu 18.04, Zerotier版本是v1.2.10,假设需要搭建的MOON服务器公网地址是1.1.1.1。

  1. 通过官网文档根据不同操作系统选择不同的安装方式,这里直接通过命令行安装
    curl -s \'https://pgp.mit.edu/pks/lookup?op=get&search=0x1657198823E52A61\' | gpg --import && \ if z=$(curl -s \'https://install.zerotier.com/\' | gpg); then echo "$z" | sudo bash; fi

    如果上述命令运行失败,那么使用下面命令

    curl -s https://install.zerotier.com/ | sudo bash
  2. 生成配置文件
    sudo chmod 777 /var/lib/zerotier-one # 这里为了有写入文件的权限
    cd /var/lib/zerotier-one
    sudo zerotier-idtool initmoon identity.public > moon.json
  3. 修改配置文件moon.json,主要是添加公网IP,修改内容如下, 9993是默认端口
    "stableEndpoints": [ "1.1.1.1/9993" ]

    注意这里的”号前面是有空格的。

    NOTE:moon.json中的 id 值,它是MOON服务器的ID,是一个 10 位的字符串,也可以用sudo zerotier-cli info查看,后面会用到。
  4. 生成moon文件
    sudo zerotier-idtool genmoon moon.json
  5. 在/var/lib/zerotier-one目录下新建 moons.d 文件夹中,并将生成的moon文件放到该文件夹下,我的moon文件名为000000efe9e9a259.moon
    mv 000000efe9e9a259.moon moons.d/
  6. 重启zerotier-one
    sudo killall -9 zerotier-one # 这里我们杀死相关进程后会自动重启该服务
  7. 加入你的虚拟局域网
    zerotier-cli join XXXX #你的局域网id

内网节点配置

  1. 在内网节点安装zerotier,安装方法和上面类似,根据文档选择不同操作系统的方法进行安装即可
  2. 将MOON节点添加到常规节点
    sudo zerotier-cli orbit XXX XXX # 注意这里是两次Moon节点的ID
  3. 如果没返回200 orbit OK的话,需要手动拷贝生成的moon文件000000efe9e9a259.moon文件到常规节点的机器上,位置如下
    Windows: C:\ProgramData\ZeroTier\One
    Macintosh: /Library/Application Support/ZeroTier/One (在 Terminal 中应为 /Library/Application\ Support/ZeroTier/One)
    Linux: /var/lib/zerotier-one
    FreeBSD/OpenBSD: /var/db/zerotier-one

    然后重启 zerotier-one

  4. 查看节点列表,出现根服务器的MOON节点表示成功
    sudo zerotier-cli listpeers
  5. 在内网节点上运行ifconfig(windows是ipconfig),可以看到zerotier vlan分配给其的内网IP

Mr.CC

文章作者信息...

留下你的评论

*评论支持代码高亮<pre class="prettyprint linenums">代码</pre>

相关推荐