实现远程办公、VPN组网、私有云利器:Zerotier

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

zerotier:一款可以让您随时随地轻松连接云,移动,桌面和数据中心资源的工具,搭建属于自己的虚拟局域网(VLAN),本文参考链接:https://zhuanlan.zhihu.com/p/83849371

虚拟局域网(VLAN):

VLAN(Virtual Local Area Network)的中文名为”虚拟局域网”。
虚拟局域网(VLAN)是一组逻辑上的设备和用户,这些设备和用户并不受物理位置的限制,可以根据功能、部门及应用等因素将它们组织起来,相互之间的通信就好像它们在同一个网段中一样,由此得名虚拟局域网。VLAN是一种比较新的技术,工作在OSI参考模型的第2层和第3层,一个VLAN就是一个广播域,VLAN之间的通信是通过第3层的路由器来完成的。与传统的局域网技术相比较,VLAN技术更加灵活,它具有以下优点: 网络设备的移动、添加和修改的管理开销减少;可以控制广播活动;可提高网络的安全性。
计算机网络中,一个二层网络可以被划分为多个不同的广播域,一个广播域对应了一个特定的用户组,默认情况下这些不同的广播域是相互隔离的。不同的广播域之间想要通信,需要通过一个或多个路由器。这样的一个广播域就称为VLAN。

配置及流程:

①创建网络

②加入网络

③通过加入网络请求

④使用您的网络

各系统安装官网说明:

https://www.zerotier.com/download/

配置示例:

配置参考

搭建MOON中转(自定义服务器):

https://blog.csdn.net/fangzhenshi123/article/details/118973814

https://www.moyann.com/archives/269/

ZeroTier安装版本:1.8.4

一、基础ZeroTier连通环境:

机器:办公室及家的台式主机、云服务器(ubuntu16.04)作为Moon中转。先安装好客户端

Windows:

# 如果已经安装过choco的可以不用执行第一行
Set-ExecutionPolicy Bypass -Scope Process -Force; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))
choco install zerotier-one -y

Linux:

curl -s https://install.zerotier.com | sudo bash
 如果不成功,则vi /etc/yum.repos.d/zerotier.repo
 将gpgcheck=0

安装完成后加入网络:

zerotier-cli join 17d7123456c1ed14b  #创建网络生成的16位Network Id

二、生成moon.json

在做 moon 的机器(云服务器),使用ssh的方式(Putty/Xshell),进入 /var/lib/zerotier-one 文件夹,运行下面的语句

zerotier-idtool initmoon identity.public >>moon.json

即会在此目录下产生一个新文件 moon.json,使用 vi打开(vi moon.json),或利用filezilla下载、修改并上传

cat moon.json
{
  "id": "284b515a17",
  "objtype": "world",
  "roots": [
    {
      "identity": "284b515a17:0:d0a811e14c:0:5634a0ef9680b49d7fa518b3a013ffc61315fe24c0b4750edba82ed28e7d3936634365517f1e8a94eb28eac63f8c59b4c1a8f4e908bb5f65e95e9d0793afd641",
      "stableEndpoints": []
    }
  ],
  "signingKey": "b324d84cec708d1b51d5ac03e75afba501a12e2124705ec34a614bf8f9b2c800f44d9824ad3ab2e3da1ac52ecb39ac052ce3f54e58d8944b52632eb6d671d0e0",
  "signingKey_SECRET": "ffc5dd0b2baf1c9b220d1c9cb39633f9e2151cf350a6d0e67c913f8952bafaf3671d2226388e1406e7670dc645851bf7d3643da701fd4599fedb9914c3918db3",
  "updatesMustBeSignedBy": "b324d84cec708d1b51d5ac03e75afba501a12e2124705ec34a614bf8f9b2c800f44d9824ad3ab2e3da1ac52ecb39ac052ce3f54e58d8944b52632eb6d671d0e0",
  "worldType": "moon"
}

增加做 moon 机器的IP地址,IPv6的地址可以不设(用 zerotier-cli listnetworks 可以查询到),示例如下:

{
  "id": "284b515a17",
  "objtype": "world",
  "roots": [
    {
      "identity": "284b515a17:0:d0a811e14c:0:5634a0ef9680b49d7fa518b3a013ffc61315fe24c0b4750edba82ed28e7d3936634365517f1e8a94eb28eac63f8c59b4c1a8f4e908bb5f65e95e9d0793afd641",
      "stableEndpoints": [ "192.168.191.2/9993" ]
    }
  ],
  "signingKey": "b324d84cec708d1b51d5ac03e75afba501a12e2124705ec34a614bf8f9b2c800f44d9824ad3ab2e3da1ac52ecb39ac052ce3f54e58d8944b52632eb6d671d0e0",
  "signingKey_SECRET": "ffc5dd0b2baf1c9b220d1c9cb39633f9e2151cf350a6d0e67c913f8952bafaf3671d2226388e1406e7670dc645851bf7d3643da701fd4599fedb9914c3918db3",
  "updatesMustBeSignedBy": "b324d84cec708d1b51d5ac03e75afba501a12e2124705ec34a614bf8f9b2c800f44d9824ad3ab2e3da1ac52ecb39ac052ce3f54e58d8944b52632eb6d671d0e0",
  "worldType": "moon"
}

三、建立私有网络的 zerotier 标志性文件

在MOON服务器上执行操作:

zerotier-idtool genmoon moon.json

运行上面的命令以后,就会在该文件夹下生成类似这样的一个新文件:000000284b515a17.moon。然后把他们拷贝到做 moon 机器的 /var/lib/zerotier-one/moons.d 目录里去(这个目录是拷贝之前手工建立的)

mv 000000a50049f279.moon moons.d/

然后重启 zerotier-one。

killall -9 zerotier-one
zerotier-one -d
或
service zerotier-one restart 

除了做 moon 的机器以外,还有其他一些普通的机器,也可以按照上面的方法拷贝完成,然后重启 zerotier-one 使之生效。但也可以使用下面的语句自动完成。

zerotier-cli orbit 284b515a17 284b515a17

在该语句中,最后两组数据中, 前面一组是 moon.json 文件中”id”后面的数据,即“world ID”,后面一组可以在任意一个自己的做 moon 的机器上运行下面的代码得到,也可以在官网上 moon 机器的 Address 列上得到(连接机器列表里)。

zerotier-cli info

Windows:打开服务程序services.msc, 找到服务”ZeroTier One”, 并且在属性内找到该服务可执行文件路径,我的环境下为C:\ProgramData\ZeroTier\One\zerotier-one_x64.exe, 打开该文件夹, 并且在其下建立moons.d文件夹,然后将moon服务器下生成的000000a50049f279.moon文件,拷贝到此文件夹内…再重启该服务即可(计算机右键管理-找到服务双击打开-找到zerotier one右键重新启动即可)

测试是否成功(客户端cmd运行)若有出现你的服务器IP地址,即可证明moon连接成功
zerotier-cli info
zerotier-cli listpeers

当你看到某一行 后面带有 moon 字样,就证明 moon 已被本机标识了(本机不能看自己,所以只能上别的机器上看)。下面语句较短者表示该机器离线或者连接质量不佳; 除了我们自己的机器, 官方至少会有3台机器位于我们的 peer 列表里。语句末尾的 PLANET 在 1.1.0 版本里显示的是 ROOT,是官方的根服务器

# zerotier-cli listpeers
200 listpeers <ztaddr> <path> <latency> <version> <role>
200 listpeers 3sa8ecf110 - 0 - LEAF
200 listpeers 42b9e61f30 - 0 - LEAF
200 listpeers 284b515a17 - 660 1.2.4 MOON
200 listpeers 8056c2e21c 178.63.17.204/41945;8057;8057;1.00 309 1.2.5 LEAF
200 listpeers 8841408a2e 45.32.248.87/9993;7073;6973;1.00 286 1.1.5 PLANET
200 listpeers 8bd5124fd6 5.135.180.76/59948;476;476;0.97 337 1.2.5 LEAF
200 listpeers 9d219039f3 128.199.197.217/9993;2077;1897;1.00 456 1.1.5 PLANET
上一篇
下一篇