目录

  • docker部署
  • 配置网络
  • 在mac中不想使用gui(可选)
  • 如何让其他设备连用一个网络
  • 后记
  • 不使用web控制台(可选)
  • 这篇文章介绍了EasyTier作为一种无中心化主被动组网工具的特点和实现部署的具体方法。该工具通过去中心化的特性实现网络的自组织能力,每个设备均作为一个独立的节点参与组网。然而,其组网部署过程较为复杂,文章详细列出了一套简化部署流程,包括注册账号、使用 Docker 安装并配置组网服务、还提供在 Mac 上无需 GUI 用户的设备连接方法(通过.plist文件配置 services)。
    easytier是一个去中心化的组网工具,这个去中心化的好处就是比如主服务器挂了,或者自建中转服务器到期更换,我们不需要再重新调整网络。每一个设备都是一个节点,这样操作起来非常方便。
    但是easytier部署起来并不像名字所说的那样“easy”,主要是文档和操作流程异常复杂和繁琐。不过我这里筛选和整理,搞出了我的搭建逻辑,按照我的方式部署,你可以无需学习easytier冗长和复杂的教程。
    前往 https://easytier.cn/web 注册一个控制台账号。
    image
    注册
    apihost不用管,输入账号密码和验证码
    image
    注册
    注册完我们就拥有了让二进制文件图形化控制的能力。

    docker部署

    在支持docker的机器上使用docker compose部署。
    注意使用此方法不能更新容器,也不能进行docker-compose down操作,否则会丢失配置。如果想要不丢失配置,可以使用后文提到的非web控制台方式部署。

    services:
    easytier:
    image: easytier/easytier:latest
    hostname: easytier
    container_name: easytier
    labels:
    com.centurylinklabs.watchtower.enable: 'true'
    restart: unless-stopped
    network_mode: host
    cap_add:
    - NET_ADMIN
    - NET_RAW
    environment:
    - TZ=Asia/Shanghai
    devices:
    - /dev/net/tun:/dev/net/tun
    volumes:
    - ./root:/root
    - ./machine-id:/etc/machine-id:ro
    command: -w 【这里改为你刚才注册的用户名】 |

    执行之后我们就可以在网页端看到设备了。
    image
    控制

    配置网络

    我们可以点击右侧的齿轮。点击创建一个新网络。
    image
    创建网络
    image
    创建网络
    设置一个网络名称和密码。
    image
    设置名称密码
    创建成功后我们就可以看到这个节点的信息和ip了。
    image

    在mac中不想使用gui(可选)

    在mac中有客户端,如果你不想使用有UI界面,而是使用二进制文件来组网,那么将下载好的二进制文件放到/usr/local/bin,然后创建服务文件。
    创建/Library/LaunchDaemons/easytier.plist

    <?xml version="1.0" encoding="UTF-8"?>

    <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "www.apple.com/DTDs/P...">
    <plist version="1.0">
    <dict>
    <key>Label</key>
    <string>easytier</string>

    <key>ProgramArguments</key>
    <array>
    <string>/usr/local/bin/easytier-core</string>
    <string>-w</string>
    <string>【这里改为你的用户名】</string>
    </array>

    <key>UserName</key>
    <string>root</string>
    <key>GroupName</key>
    <string>wheel</string>
    <key>InitGroups</key>
    <true/>

    <key>RunAtLoad</key>
    <true/>
    <key>KeepAlive</key>
    <true/>

    <key>WorkingDirectory</key>
    <string>/usr/local/bin</string>

    <key>StandardOutPath</key>
    <string>/var/log/easytier.log</string>
    <key>StandardErrorPath</key>
    <string>/var/log/easytier.log</string>
    </dict>
    </plist> |

    创建好了之后在终端执行

     

    Default

     

    1
    2
    sudo chown root:wheel /Library/LaunchDaemons/easytier.plist
    sudo chmod 644 /Library/LaunchDaemons/easytier.plist

    给权限,然后执行

     

    Default

     

    1sudo launchctl bootstrap system /Library/LaunchDaemons/easytier.plist

    执行后页面中可以看到。
    image
    页面
    然后就可以配置网络了。

    如何让其他设备连用一个网络

    我们创建好网络之后,点击export。
    image
    导出
    在新设备点击创建。
    image
    创建
    导入之前的文件即可。
    image
    导入文件

    后记

    发现与我在用的一个软件不兼容(某神奇上网软件),研究了一下发现关闭仅使用物理网卡即可。
    image
    仅使用物理网卡

    不使用web控制台(可选)

    因为使用web控制台docker总是丢配置,所以还是持久化配置文件地址比较方便。
    我创建了一个config.yaml,文件内容通过配置文件生image成器获取。
    输入完配置点击运行网络获取配置内容。

     

    配置获取
    然后放在项目目录下的root文件夹中。
    docker-compose文件更改为:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    services:
    easytier:
    image: easytier/easytier:latest # 国内用户可以使用 m.daocloud.io/docker.io/easytier/easytier:latest
    hostname: easytier
    container_name: easytier
    labels:
    com.centurylinklabs.watchtower.enable: 'true'
    restart: unless-stopped
    network_mode: host
    cap_add:
    - NET_ADMIN
    - NET_RAW
    environment:
    - TZ=Asia/Shanghai
    devices:
    - /dev/net/tun:/dev/net/tun
    volumes:
    - ./root:/root
    - ./machine-id:/etc/machine-id:ro # 映射宿主机机器码
    command: -c /root/config.yaml
    作者:admin  创建时间:2025-07-06 23:20
    最后编辑:admin  更新时间:2025-07-06 23:27