这篇文章介绍了EasyTier作为一种无中心化主被动组网工具的特点和实现部署的具体方法。该工具通过去中心化的特性实现网络的自组织能力,每个设备均作为一个独立的节点参与组网。然而,其组网部署过程较为复杂,文章详细列出了一套简化部署流程,包括注册账号、使用 Docker 安装并配置组网服务、还提供在 Mac 上无需 GUI 用户的设备连接方法(通过.plist文件配置 services)。

easytier是一个去中心化的组网工具,这个去中心化的好处就是比如主服务器挂了,或者自建中转服务器到期更换,我们不需要再重新调整网络。每一个设备都是一个节点,这样操作起来非常方便。

但是easytier部署起来并不像名字所说的那样“easy”,主要是文档和操作流程异常复杂和繁琐。不过我这里筛选和整理,搞出了我的搭建逻辑,按照我的方式部署,你可以无需学习easytier冗长和复杂的教程。

前往 https://easytier.cn/web 注册一个控制台账号。


注册

apihost不用管,输入账号密码和验证码


注册

注册完我们就拥有了让二进制文件图形化控制的能力。

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 【这里改为你刚才注册的用户名】

 

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


控制

配置网络

我们可以点击右侧的齿轮。点击创建一个新网络。


创建网络


创建网络

设置一个网络名称和密码。


设置名称密码

创建成功后我们就可以看到这个节点的信息和ip了。


 

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

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

创建/Library/LaunchDaemons/easytier.plist

<?xml version="1.0" encoding="UTF-8"?>
<!-- Generated for serviceman. Edit as needed. Keep this line for 'serviceman list'. -->
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<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>

 

创建好了之后在终端执行

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

 

给权限,然后执行

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

 

执行后页面中可以看到。


页面

然后就可以配置网络了。

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

我们创建好网络之后,点击export。


导出

在新设备点击创建。


创建

导入之前的文件即可。


导入文件

后记

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


仅使用物理网卡

不使用web控制台(可选)

因为使用web控制台docker总是丢配置,所以还是持久化配置文件地址比较方便。

我创建了一个config.yaml,文件内容通过配置文件生成器获取。

输入完配置点击运行网络获取配置内容。

 

 

配置获取

然后放在项目目录下的root文件夹中。

docker-compose文件更改为:

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

 

https://www.88531.cn/?p=45171

www.npspro.top互联侠客
软师傅 » easytier组网新星 新手教程:没有中心化的组网工具,使用docker部署WEB管理设备

最TOP的Docker,软路由,虚拟机等学习资料

立即查看 了解详情