Easytier异地组网是一个简单、安全、去中心化的异地组网方案,每一个实例都可以是一个节点或者是一个客户端,同时也可以协助非网内设备完成组网工作,在某些情况下将可打通nat4-nat4

官网:

https://easytier.cn/

特点

  • 去中心化:无需依赖中心化服务,节点平等且独立。

  • 安全:支持利用 WireGuard 加密通信,也支持 AES-GCM 加密保护中转流量。

  • 高性能:全链路零拷贝,性能与主流组网软件相当。

  • 跨平台:支持 MacOS/Linux/Windows/FreeBSD/Android,未来将支持 IOS。可执行文件静态链接,部署简单。

  • 无公网 IP 组网:支持利用共享的公网节点组网,可参考 配置指南

  • NAT 穿透:支持基于 UDP 的 NAT 穿透,即使在复杂的网络环境下也能建立稳定的连接。

  • 子网代理(点对网):节点可以将可访问的网段作为代理暴露给虚拟网,允许其他节点通过该节点访问这些子网。

  • 智能路由:根据流量智能选择链路,减少延迟,提高吞吐量。

  • TCP 支持:在 UDP 受限的情况下,通过并发 TCP 链接提供可靠的数据传输,优化性能。

  • 高可用性:支持多路径和在检测到高丢包率或网络错误时切换到健康路径。

  • IPV6 支持:支持利用 IPV6 组网。

比较建议直接二进制文件部署,并不怎么建议使用docker部署,即使映射了网卡,或多或少有性能损耗。

因为其是去中心化的,不启动监听时,可为客户端,启用了监听,既可以是客户端,也可以是服务端。并且,多个服务端如果组成了个虚拟网,并且开启了辅助打洞功能,其他设备可以连接任意一台服务端,也可以通过其组成一个内网;服务端如果开启了转发,将在打洞失败时,转发虚拟网流量。

通过守护进程

前往githubRelease界面获取二进制文件,也可以在官网下载界面获取。

命令行程序的压缩包中包含四个可执行程序:

  • easytier-core:EasyTier 的核心程序

  • easytier-cli:EasyTier 管理程序,启动 easytier-core 后,可以使用 easytier-cli 查看虚拟网信息

  • easytier-web: 用于自建 EasyTier 的 Web 控制台后端,一般情况下无需自建,使用官方提供的 Web 控制台即可

  • easytier-web-embed: 用于自建 EasyTier 的 Web 控制台后端,自带web界面,避免还需要单独放置web界面文件

守护进程可以使用linux通用的,也可以使用各种面板提供的(1panel和宝塔都有提供),主要的就是设置好运行目录、运行用户以及运行指令,这里不多做赘述。

运行目录就是easytier-core所在目录。

一键安装脚本(linux)

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

本方法使用了基于systemd系统服务运行,通过读取在/opt/easytier文件夹下对应easytier实例配置文件实现。配置文件可以通过官网的配置文件生成器生成。或者修改服务配置文件传递指令运行,注意,如果读取了配置文件,则其他指令都将被忽略。

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:
    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: -i <ip> --network-name <用户> --network-secret <密码> -p tcp://<服务器地址>:11010 #这一块可自定义传递指令

详细的指令配置

详细的指令可以通过--help 获取,也可前往官网查看

可视化界面

可视化界面目前共有四个

官方的easytier-gui

可在官网下载界面或者GithubRelease界面获取。对应的文件前缀为easytier-gui

Easytier管理器

下载:Github Releases: https://github.com/xlc520/easytier-manager/releases

各个包说明

  • exe:安装程序,安装后才可使用

  • zip:免安装,解压即可使用

  • easytier-manager-win_2.0.0.exe:64、32位 Windows 系统通用安装包

  • easytier-manager-win-x64_2.0.0.exe:64位 Windows 系统安装包

  • easytier-manager-win-ia32_2.0.0.exe:32位 Windows 系统安装包

  • easytier-manager-win7-x64_2.0.0.exe: 64位 Windows 7 系统安装包

  • tar.gz deb rpm AppImage:Linux系统上使用(尚未测试)

Easytier游戏联机启动器

Github Releases: https://github.com/EasyTier/EasytierGame/releases

只有绿色zip包,个人不喜欢安装包各种写注册表,解压即用就行,目录清爽干净。

AstralET 游戏联机工具

这个现在是我主力使用的GUI界面,足够简单的配置,但因是偏向于游戏,配置不如官方GUI详细,但也足够使用。

  • 内置 EasyTier:将 EasyTier 直接编译到 AstralET 中,无需额外安装,也不会保留任何后台进程。

  • 即开即用:联机时启动应用,结束后关闭即可,操作简单便捷。

  • 活跃维护:作者积极更新,随时修复问题并优化功能(上班摸鱼成果)。