2025年10月11日星期六

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

~EasyTier 简介 

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

软件即可通过命令行使用,也可以通过图形界面操作。下载后可直接使用,无其他任何依赖。

适用场景 

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

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

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

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

核心特点 

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

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

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

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

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

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

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

高级特性 

  • KCP / QUIC 代理: 支持将 TCP 流量转为 KCP / QUIC 协议,提升高 UDP 丢包环境下的传输延迟和稳定性。

  • 非特权模式:支持在非特权用户下运行,避免需要 root 权限。(仅可作为被访问端)

  • WireGuard 接入: 支持 WireGuard 客户端接入 EasyTIer 网络。

~安装 (命令行程序) 

本章节组仅介绍安装方式,阅读 快速组网 文档以了解参数含义和使用方法。

安装方式 

  1. 手动下载命令行程序

    访问 ⬇️下载页面 下载适用于您操作系统和硬件架构的 EasyTier 命令行程序。下载后为 ZIP 压缩包,解压后既可直接使用。

    Linux / MacOS / FreeBSD

    ./easytier-core --version

    Windows

    .\easytier-core.exe --version

  1. DockerHub

    DockerHub 镜像地址

    # docker.io 镜像
    docker pull easytier/easytier:latest
    docker run -d --privileged --network host easytier/easytier:latest
    # 国内用户可以使用 DaoCloud 镜像
    docker pull m.daocloud.io/docker.io/easytier/easytier:latest
    docker run -d --privileged --network host m.daocloud.io/docker.io/easytier/easytier:latest

    请继续阅读 快速组网 文档以了解参数含义和使用方法。


  1. 通过Docker Compose安装

    docker-compose.yml

    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:
    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:
    - /etc/easytier:/root
    - /etc/machine-id:/etc/machine-id:ro # 映射宿主机机器码
    command: -d --network-name <用户> --network-secret <密码> -p tcp://public.easytier.cn:11010

  1. 一键安装脚本(仅 Linux)

    注意:一键脚本依赖 unzip,请提前下载并安装。

    wget -O /tmp/easytier.sh "https://raw.githubusercontent.com/EasyTier/EasyTier/main/script/install.sh" && sudo bash /tmp/easytier.sh install --gh-proxy https://ghfast.top/

    脚本执行成功后,EasyTier 的二进程程序会安装到 /opt/easytier 目录下,配置文件位于 /opt/easytier/config/default.conf

    配置文件可通过 配置文件生成器 生成。

    EasyTier 会被注册为系统服务,可以通过以下命令管理:

    bash

    systemctl start easytier@default

  1. 通过源码安装

    cargo install --git https://github.com/EasyTier/EasyTier.git easytier

    源码安装需要 Rust 环境,并且安装 LLVM。

~快速组网 

利用共享节点组网 

当没有公网 IP 时,可使用 EasyTier 社区提供的免费共享节点快速组网。节点间会自动尝试 NAT 穿透并建立 P2P 连接,P2P 失败时由共享节点中转数据。

通过以下步骤可以构建一个简单的双节点虚拟网络:

a6bzj

步骤示例 

假设有两个节点 A 和 B:

1. 在节点 A 上运行 

Linux 

# 管理员权限运行
./easytier-core -d --network-name abc --network-secret abc -p tcp://public.easytier.cn:11010

Windows

# 管理员权限运行
.\easytier-core.exe -d --network-name abc --network-secret abc -p tcp://public.easytier.cn:11010
  • -d 自动分配虚拟 IP,默认分配 10.126.126.0/24 网段,可使用 -i 10.11.11.0/24 指定其他虚拟 IP。

  • --network-name 指定虚拟网络名称(支持中文)。注意:若与其他用户网络名冲突,可能导致组网失败。

  • --network-secret 指定虚拟网络的密码,用于保护网络安全。

  • -p 指定节点地址,此处为官方共享节点,也可用其他公共节点

2. 在节点 B 上运行 

Linux

# 管理员权限运行
./easytier-core -d --network-name abc --network-secret abc -p tcp://public.easytier.cn:11010

Windows

# 管理员权限运行
.\easytier-core.exe -d --network-name abc --network-secret abc -p tcp://public.easytier.cn:11010
  • -d 表示 DHCP 模式,自动分配虚拟 IP

  • -p 需指定与节点 A 使用相同的共享节点

3. 测试组网 

在节点 B 上测试与节点 A 的连通性:

ping 10.126.126.1
ping 10.126.126.2

注意

如无法 ping 通,可能是防火墙阻止入站流量。请关闭防火墙或添加放行规则。

4. 加入更多节点 

可以继续在其他节点上运行相同命令,加入同一虚拟网络。

查看虚拟网络状态 

EasyTier 启动后,可用 easytier-cli 管理和查看状态。

  • 查看虚拟网中的节点信息:

easytier-cli peer

ipv4hostnamecostlat_msloss_raterx_bytestx_bytestunnel_protonat_typeid
10.144.144.1abc-dec13.452017.33kB20.42kBudpFullCone390879727
  • 查看虚拟网路由信息:

easytier-cli route

ipv4hostnameproxy_cidrsnext_hop_ipv4next_hop_hostnamenext_hop_latcost
10.144.144.1abc-decDIRECT3.6461
  • 查看本节点信息:

easytier-cli node

输出示例

┌───────────────┬──────────────────────┐
│ Virtual IP10.144.144.1
├───────────────┼──────────────────────┤
│ Hostname │ archlinux-base │
├───────────────┼──────────────────────┤
│ Proxy CIDRs │ 10.147.223.0/24
├───────────────┼──────────────────────┤
│ Peer ID │ 2616333191
├───────────────┼──────────────────────┤
Public IP75.52.125.26
├───────────────┼──────────────────────┤
│ UDP Stun Type │ FullCone │
├───────────────┼──────────────────────┤
│ Listener 1 │ tcp://0.0.0.0:11010
├───────────────┼──────────────────────┤
│ Listener 2 │ udp://0.0.0.0:11010
├───────────────┼──────────────────────┤
│ Listener 3 │ wg://0.0.0.0:11011
├───────────────┼──────────────────────┤
│ Listener 4 │ ws://0.0.0.0:11011/ │
├───────────────┼──────────────────────┤
│ Listener 5 │ wss://0.0.0.0:11012/ │
├───────────────┼──────────────────────┤
│ Listener 6 │ udp://[::]:37039
└───────────────┴──────────────────────┘

同时使用多个共享节点组网 

为提升可用性,可同时连接多个共享节点,只需指定多个 -p 参数:

-p tcp://1.1.1.1:11010 -p udp://1.1.1.2:11011

建议所有节点指定相同的共享节点列表。


同时加入/组建多个虚拟网络 

EasyTier 支持同一设备运行多个进程,每个进程加入不同虚拟网。注意:

  • 不同虚拟网的虚拟 IP 网段不能重叠,否则路由冲突;

  • 启动多个实例时需指定不同监听端口,否则端口冲突。

示例:

# 管理员权限运行
./easytier-core --network-name net1 -p tcp://public.easytier.cn:11010 -l 11010
./easytier-core --network-name net2 -p tcp://public.easytier.cn:11010 -l 21010
  • -l 指定监听端口。


搭建共享节点 

如果希望搭建自己的共享节点,可以参考 搭建共享节点 文档。