EasyTier异地组网

cat
14
2025-09-14

一个简单、安全、去中心化的异地组网方案

EasyTier 简介

EasyTier 是一款简单、安全、去中心化的内网穿透和异地组网工具,适合远程办公、异地访问、游戏加速等多种场景。无需公网 IP,无需复杂配置,轻松实现不同地点设备间的安全互联。

适用场景

远程办公:让公司、家中和外地的电脑像在同一局域网一样互通。

异地访问:随时随地安全访问家中 NAS、服务器或其他设备。

游戏加速:组建虚拟局域网,畅玩联机游戏。

物联网组网:让分布在不同地点的设备安全互联。

核心特点

去中心化:无需依赖中心服务器,所有节点平等独立,都可以参与转发和组网。

安全加密:支持 WireGuard 和 AES-GCM 加密,保障数据安全。

跨平台:支持 MacOS、Linux、Windows、FreeBSD、Android,未来将支持 iOS。

无公网 IP 组网:可通过共享公网节点组网,详见配置指南。

NAT 穿透:支持 UDP NAT 穿透,复杂网络环境下也能稳定连接。

智能路由:自动选择最佳链路,降低延迟,提高吞吐量。

高可用性:多路径支持,自动切换健康链路,提升稳定性。

图形界面(GUI)

EasyTier 提供简单易用的图形界面,适合新手快速上手。

管理后台

Easytier 有类似管理后台,只不过你需要分开部署。下面的步骤中,“管理后台配置”一节对应的就是 Web 控制台。“中继服务器配置”对应的就是 DERP 或是 coturn 的配置。

管理后台配置

说明

管理后台用的 easytier-web-embed 这个二进制文件启动

管理后台运行时启动了三个服务:config-server、api-server 和 web-server

config-server 是你节点需要连接的,类似于你用 tailscale up 的 --login-server 参数,或是 netbird up 的 --management-url

api-server 就是官方这个 Dashboard 的后端

web-server 就是官方这个 Dashboard 的前端

自建前后端 就等于 Netbird、Tailscale 那个 Web 管理页面,可以管理设备,设置子网路由

简单组网列子

EasyTier 是一款简单、安全、去中心化。所以没有服务端客户之说多是平等节点,有个管理平台统一管理比较方便。所以下面就用docker 安装管理平台,跟2中心节点,来个异地组网。A跟B中间互联网,因为A我这边有公网IP,B没有.要求是把A跟B内网打通组网。A路由器把dockerA的内网22020端口映射到公网,让别的节点联上管理平台,然后还要把dockerA EasyTier组网端口给映射到公网

dockerA节点安装easytier-web-embed 管理平台

docker run -d --hostname easytier-web-embed --entrypoint easytier-web-embed -v /root/docker/easytier/web-embed:/app -p 11211:11211 -p 22020:22020/udp easytier/easytier:latest

其中22020端口是用来管理中心节点,11211是web管理端口,输入管理IP:22020,先注册个用户名。然后登录后台没一台设备上线,下面就来安装中心节点,来上管理平台。

dockerA节点跟dockerB安装EasyTier节点

docker run --restart=always --privileged --memory=0 --name easytier --hostname easytier --network=host -e TZ=Asia/Shanghai -d easytier/easytier:latest --config-server udp://IP或域名: 22020 /用户名

其中--config-server udp://IP或域名: 22020 /用户名

ip或域名是你管理平台ip地址或者域名也行,其中22020是管理平台去管理中心节点端口,用户名是你注册用户名。

dockerA跟B节点同时安装EasyTier节点,在管理平台就能看到两个节点上线了。就可以在管理平台设备跟管理这两个中心节点来组网了。

用户名密码配置

dockerA节点,组网名称,密码,因为A节点是有公网IP所以设固定IP,还有子网代理172.16.100.0/24,因为做中转,所以是独立服务器,设备如下

高级功能,监听地址这是节点跟别的节通信组网接口,通常tcp:11011,udp:11011,wg这个是Wireguard。所以也要把这几个口开放到公网上让别的节点来访问。

而dockerB节点没有公网所就这个监听就可以关了,网络方式加手动写自己A节点ip加端口,域名加端口,子网代理就本场192.168.9.0/24,网络名称密码跟dockerA一样就行,如下

下面就可以看到两个节点组网息信了

路由转发

然后还要在A路由器上添加192.168.9.0/24 向dockerA 的静态路由

B路由器上添加172.16.100.0/24 向dockerB 的静态路由

开启系统转发

最后一项,这也是大坑,原来在这里网络就通,其实我也找了好久,哈哈哈。原来我装的系统是linux 的,系统是没有开启路由转发的,所以要开启系统路由转发。

linux如果做网关的话,转发和防火墙可以酌情配置,这些和 netbird 与 tailscale 是一致的:开启 ipv4 转发

在 /etc/sysctl.conf 文件中添加或修改以下行:

net.ipv4.ip_forward = 1

然后运行 sudo sysctl -p 来应用更改

docker compose

services:
  watchtower: # 用于自动更新easytier镜像,若不需要请删除这部分
    image: containrrr/watchtower
    container_name: watchtower
    restart: unless-stopped
    environment:
      - TZ=Asia/Shanghai
      - WATCHTOWER_NO_STARTUP_MESSAGE
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    command: --interval 3600 --cleanup --label-enable
#--------------------------------
  easytier-web-embed:
      image: 'easytier/easytier:v2.4.1'
      restart: always
      entrypoint: easytier-web-embed
      volumes:
          - '/root/docker/easytier/web-embed:/app'
      ports:
          - '22020:22020/udp' #客户端加入端口
          - '11211:11211/tcp' #web管理api
          - '11210:11210/tcp' #web管理端口
      environment:
          - WEB=1
          - TZ=Asia/Shanghai
          - LANG=zh_CN
      hostname: easytier-web-embed
  easytier:
    image: easytier/easytier:v2.4.1 # 国内用户可以使用 m.daocloud.io/docker.io/easytier/easytier:latest
    hostname: "魔百盒" #自己修改名字
    container_name: easytier #docker名字
    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/docker/eaytier:/root
      - /etc/machine-id:/etc/machine-id:ro # 映射宿主机机器码
    command: --config-server udp://easytier.catmomo.com:33030/用户名

动物装饰