Skip to content

使用 EasyTier 异地组网互联

官网:https://easytier.cn/

Github Release: https://github.com/EasyTier/EasyTier/releases

安装:https://easytier.cn/guide/installation.html

Docker Hub: https://hub.docker.com/r/easytier/easytier

服务端:私有共享节点 compose.yaml 配置

shell
services:
  easytier:
    image: easytier/easytier:v2.6.4
    hostname: easytier
    container_name: easytier
    restart: unless-stopped
    network_mode: host
    cap_add:
    - NET_ADMIN
    - NET_RAW
    environment:
    - TZ=Asia/Shanghai
    devices:
    - /dev/net/tun:/dev/net/tun
    volumes:
    - /etc/machine-id:/etc/machine-id:ro
    command: >
      --private-mode true --network-name <网络名(用户)> --network-secret <>
  • cap_add: 给容器高级网络权限。给容器添加 Linux 内核能力(普通容器没有的高级权限)
    • NET_ADMIN
      • 允许容器管理网络:
      • 建网卡、改路由、开 iptables、配置隧道、启动 VPN 等。
    • NET_RAW
      • 允许容器发送 / 接收原始网络包。
      • 抓包、ping、建立隧道、运行代理、VPN 必备。

一句话:没有这两个权限,容器无法创建 VPN / 代理 / 隧道类网络功能。

  • devices: /dev/net/tun:
    • 把宿主机的 TUN/TAP 设备映射进容器。TUN 是 Linux 虚拟网卡,专门用于:
      • VPN、代理、隧道、虚拟网络。

几乎所有 VPN、旁路由、透明代理 容器都必须映射这个设备。

  • volumes: /etc/machine-id:ro
    • 把宿主机的 机器唯一 ID 只读挂载进容器。用途:
      • 让容器内的应用识别这台机器的唯一标识;
      • 用于认证、授权、唯一设备标记;
      • ro = 只读,安全,防止容器篡改宿主机文件

hostname: 主机名(起一个能分别出来是哪台主机的名字) --network-name=网络名: 你的网络名。 --network-secret=超级复杂的密码: 你的网络密码。 --private-mode true: 启用私有模式。 默认端口:11010

客户端:docker compose.yaml 配置

shell
 services:
   easytier:
     image: easytier/easytier:v2.6.4
     hostname: client1
     container_name: easytier
     restart: unless-stopped
     network_mode: host
     cap_add:
       - NET_ADMIN
       - NET_RAW
     environment:
       - TZ=Asia/Shanghai
     devices:
       - /dev/net/tun:/dev/net/tun
     volumes:
       - /etc/machine-id:/etc/machine-id:ro
     command: >
       -d --network-name <> --network-secret <>
       -p tcp://<其他对等节点 / 公共节点的公网 IP>:11010

客户端:Windows GUI

在 Github 下载页根据自己的操作系统下载 GUI 软件并安装。比如下载:easytier-gui_2.6.4_x64-setup.exe

右键,以管理员权限运行安装。

安装完成后,第一次运行需要网络访问权限,程序如何卡住,进入进程管理,杀掉进程,再双击打开,就会弹窗网络访问授权弹框了。

创建一个网络:

  • 配置 network-name 和 network-secret。和服务端保持一致。
  • 添加对等节点 -p tcp://<其他对等节点 / 公共节点的公网 IP>:11010
  • 高级设置中设置为私有模式
  • 主机名称添加一个可以分辨出来是哪台主机的名字。

然后点击最下面的:Run Network 按钮。

客户端 A 访问客户端 B 上的 SSH 和 HTTP 服务

  • 客户端 B 开放 SSH 和 HTTP 端口。
  • 客户端 A 访问客户端 B 在 easytier 上的 ip + SSH 或 HTTP 端口。

然后按照正常的访问方式访问即可。