ZeroTier

Catalogue
  1. 1. 2.生成签名文件**
  • 方法一
  • 方法二
  • szerotier主要是用在公司没有公网IP,但是仓库那边有一个同事需要连接到这边的一个文件服务器,总是麻烦同事用QQ或者微信传。没有公网IP,一般的vpn无法搭建,蒲公英路由器或者蒲公英好像有个这样可以异地组网的,不过试用了一下很久没有连起来。于是…

    先去 http://www.zerotier.com/download.shtml 注册一个免费的账号,免费账号可以互联100台机器,应该够用了,然后下载对应的版本进行安装:

    centos7 直接用官网的命令安装

    1
    2
    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

    For those who are a bit more careless lazy brave, the script also works without GPG:

    1
    curl -s https://install.zerotier.com/ | sudo bash

    登录你刚刚注册的账号,先新建一个网络,然后进入该网络:

    其他的设置默认就好

    然后回到centos,输入如下命令:

    1
    sudo zerotier-cli join    NetWorkID--你的网络ID

    如果返回 200 join OK 表示添加网络成功。

    可以输入 ip addr 查看自己在这个虚拟网络中分配到的私有IP,也可以在网页端看到。

    然后回到网页端在networID那里往下滚动找到这里,在自己的主机前面打钩进行授权:

    同样的方法在其他客户端进行操作,Windows端,下载下来后安装好后右下角图标上面右键点击:

    点join Network然后输入网页端的网络ID,然后在网页端打钩授权即可。

    如果有问题,看看zerotier服务和zerotier的虚拟网卡启用没有


    以下参考网址 https://zczc.cz/2018/03/14/ZeroTier-moon-%E8%AE%BE%E7%BD%AE%E6%95%99%E7%A8%8B/

    zerotier-one 服务器在国外,有时网络比较慢,可以搭建一个moon服务器看看:

    环境

    机器A(moon):

    • 公网IP:1.2.3.4
    • 系统centos7

    机器B

    • 内网机器


      1. 1.A机器操作,生成并修改 moon.json 文件

        首先登陆到机器 A 上,进入到目录 /var/lib/zerotier-one。运行命令

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

        这样当前目录就会生成一个moon.json文件,可以ls看看,文件内容如下:

        其中 id 为机器 A 在 ZeroTier 中的 id,本文为 deadbeef00
        修改 "stableEndpoints" 为机器 A 的公网的 ip。如:

        1
        "stableEndpoints": [ "1.2.3.4/9993","2001:abcd:abcd::1/9993" ]

        若公网机器没有 IPv6 地址,则将其修改为如下,注意端口号写法

        1
        "stableEndpoints": [ "1.2.3.4/9993" ]
        2.生成签名文件**

        修改完 moon.json 后,执行命令

        1
        zerotier-idtool genmoon moon.json

        3.将 moon 节点加入网络

        在机器 A 中的 ZeroTier 目录中建立子文件夹 moons.d

        不同系统下的 ZeroTier 目录位置:

        • 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

        将在机器 A 生成的 000000deadbeef00.moon 拷贝进 moons.d 文件夹中,并重启 ZeroTier(此步好像有些许 bug,重启电脑为佳)

      2. B机器操作将内网机器连接上 moon 节点

        方法一

        在机器 B、机器 C 中的 ZeroTier 目录中建立子文件夹 moons.d

        不同系统下的 ZeroTier 目录位置:

        • 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

        将在机器 A 生成的 000000deadbeef00.moon 拷贝进 moons.d 文件夹中,并重启 ZeroTier(此步好像有些许 bug,重启电脑为佳)

        方法二

        在机器 B、机器 C 上执行

        1
        zerotier-cli orbit deadbeef00 deadbeef00

        在除服务器其他的机器输入:

        1
        2
        3
        4
        5
        sudo zerotier-cli listpeers
        200 listpeers
        200 listpeers 8841408a2e 159.203.2.154/9993;7723;2322 244 1.1.5 PLANET
        200 listpeers 9d219039f3 154.66.197.33/9993;1527750499073;2055 479 1.1.5 PLANET
        200 listpeers deadbeef 00 10.0.0.2/33389;2552;7773 189 1.2.10 MOON

        如果根服务器出现最后一行的MOON节点表示成功

        补充: 虽然搭建了MOON服务器,我们还是需要借助zerotier network,也就是需要先通过zerotier官网创建一个network,并且内网节点需要使用join命令加入该网络才能实现内网节点的互通,换句话说MOON节点只起到了加速的作用,虚拟网络的分配和管理还是需要zerotier服务端参与

      zerotier 常用命令:

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      # zerotier-cli -h
      # zerotier-cli -v
      # zerotier-cli join NetworkID
      # zerotier-cli set NetworkID allowManaged=1
      ip addr
      状态查看
      # zerotier-cli listnetworks
      # zerotier-cli -v
      # zerotier-cli -h
      查看是否在线
      # zerotier-cli info
      重启服务
      # systemctl restart zerotier-one