IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    异地组网工具新推荐,easytier轻松实现跨地域设备互联

    ysicing (i@ysicing.me)发表于 2025-01-06 14:01:15
    love 0

    异地组网工具新推荐,easytier 轻松实现跨地域设备互联

    EasyTier 是由 Rust 和 Tokio 驱动一个简单、安全、去中心化的内网穿透 远程 组网方案,开源项目。

    优点

    • 去中心化:无需依赖中心化服务,节点平等且独立
    • 公网 IP 组网:支持利用共享的公网节点组网, 可以使用 EasyTier 公共 Peers
    • 低占用: 即使最垃圾的机器也可以跑
    • 跨平台支持
    • NAT 穿透:支持基于 UDP 的 NAT 穿透,即使在复杂的网络环境下也能建立稳定的连接
    • 子网代理(点对网):节点可以将可访问的网段作为代理暴露给 远程 子网,允许其他节点通过该节点访问这些子网
    • 智能路由:根据流量智能选择链路,减少延迟,提高吞吐量
    • TCP 支持:在 UDP 受限的情况下,通过并发 TCP 链接提供可靠的数据传输,优化性能
    • 高可用性:支持多路径和在检测到高丢包率或网络错误时切换到健康路径
    • 安全:支持利用 WireGuard 加密通信,也支持 AES-GCM 加密保护中转流量
    • IPV6 支持:支持利用 IPV6 组网

    项目情况

    • EasyTier/EasyTier
    • 官方文档

    部署

    这里以手动安装和 docker 部署方式为例

    手动安装部署

    EasyTier 采用 rust 开发,交叉编译成二进制文件,部署极其方便简单
    直接下载已经编译好的文件,安装即可,下面分几步执行

    EasyTier 默认是不区分客户端还是服务端,故本次部署即是服务端又是客户端。一般情况下 开放监听端口为服务端,不开放监听端口为客户端

    Linux-x86_64 适用于 Debian 系列,其它架构系统类似。默认 root 终端执行。

    下载 EasyTier

    mkdir -p /etc/et && cd /etc/et
    wget wget https://github.com/EasyTier/EasyTier/releases/download/v2.1.1/easytier-linux-x86_64-v2.1.1.zip
    # 上面没法下载,可以使用下面的链接下载
    wget https://gh.dev.438250.xyz/https://github.com/EasyTier/EasyTier/releases/download/v2.1.1/easytier-linux-x86_64-v2.1.1.zip
    

    解压

    unzip easytier-linux-x86_64-v2.1.1.zip
    cp -a easytier-linux-x86_64/* .
    rm -rf easytier-linux-x86_64 easytier-linux-x86_64-v2.1.1.zip
    chmod +x ./*
    mv ./easytier-* /usr/bin/
    

    编写配置文件

    默认路径为 /etc/et/config.toml,内容如下:

    instance_name = "default"
    # easytier组网的ip地址
    ipv4 = "192.168.66.80"
    dhcp = false
    exit_nodes = []
    # api地址,记得改成本地监听
    rpc_portal = "127.0.0.1:15888"
    # 自定义 使用 32379 32380 端口作为监听发现服务 默认监听IPv4/IPv6, 服务端可以根据自己实际情况配置,可以全开,也可以为空不开listeners = [],客户端可以不开
    listeners = [
        "tcp://0.0.0.0:32379",
        "udp://0.0.0.0:32379",
        "udp://[::]:32379",
        "tcp://[::]:32379",
        "wss://0.0.0.0:32380/",
        "wss://[::]:32380/",
    ]
    
    # 组网凭证
    [network_identity]
    network_name = "xxxx"
    network_secret = "xxxx"
    
    # tcp://public.easytier.top:11010 是自定义要连的其他节点, 如果是第一个节点,可以不用配置, 这里以官方的节点为例
    [[peer]]
    uri = "tcp://public.easytier.top:11010"
    
    # 其他参数
    [flags]
    dev_name = "easytier0"
    enable_ipv6 = true
    

    另外当服务跑起来后,也可以使用 easytier-cli node config 命令查看节点配置文件

    编写启动守护文件并启动

    cat > /etc/systemd/system/easytier.service <<EOF
    [Unit]
    Description=EasyTier
    After=network.target
    
    [Service]
    Type=simple
    WorkingDirectory=/etc/et
    # ExecStart=/usr/bin/easytier-core -i 192.168.66.80 --network-name ysicing --network-secret ysicing -e tcp://public.easytier.top:11010 --dev-name easytier0 --rpc-portal 127.0.0.1:15888 --no-listener
    ExecStart=/usr/bin/easytier-core -c /etc/et/config.toml
    Restart=always
    RestartSec=10
    User=root
    Group=root
    [Install]
    WantedBy=multi-user.target
    EOF
    

    可以使用配置文件,也可以使用命令行参数方式,如果节点配置都一样,推荐使用配置文件方式。

    启动服务

    # 开机自启并立即启动
    systemctl enable easytier --now
    

    如果使用命令行参数,每次启动后需要 reload 一下

    systemctl daemon-reload
    systemctl restart easytier
    

    查询服务是否正常

    执行 easytier-cli peer, 由于使用的是公共节点,所以会有节点信息

    如下是我自己的组网节点

    使用 docker 部署

    编写 docker-compose.yml

    首先创建一个目录(如 easytier),然后在该目录下创建 docker-compose.yml 文件,内容如下:

    services:
      easytier:
        privileged: true
        container_name: easytier
        network_mode: host
        volumes:
          - easytier:/root
        environment:
          - TZ=Asia/Shanghai
        # 方便国内部署,我会定期同步到腾讯云容器仓库
        image: ccr.ccs.tencentyun.com/k7scn/easytier:latest
        # 凭证需要保持一致
        command: -i 192.168.66.8 --network-name ysicing --network-secret ysicing -l tcp://0.0.0.0:32379 -e tcp://public.easytier.top:11010 --dev-name easytier0 --rpc-portal 127.0.0.1:15888 # --vpn-portal wg://0.0.0.0:32380/192.168.77.0/24
        restart: always
    
    volumes:
      easytier:
        driver: local
    

    启动服务

    docker compose pull
    docker compose up -d
    

    同理,如果需要查看节点信息,可以使用 docker exec -it easytier easytier-cli peer 命令

    需要自行放行相关端口,如 32379, 32380 等

    其他系统部署

    Windows 部署可以参考官方文档

    Windows Scoop 安装

    在 PowerShell 执行下列代码以安装 Scoop

    irm get.scoop.sh | iex
    scoop install git
    scoop install nssm
    # 添加软件源
    scoop bucket add moec https://github.com/laoxong/ScoopBucket
    scoop install easytier
    # 以服务的方式启动,也可以直接启动测试
    nssm.exe install easytier_service C:\Scoop\apps\easytier\current\easytier-core.exe 你的参数
    # 编辑服务
    nssm edit easytier_service
    

    示例: nssm.exe install easytier_service C:\Scoop\apps\easytier\current\easytier-core.exe -i 192.168.66.81 -e tcp://public.easytier.top:11010 --dev-name easytier0 --network-name xxxx --network-secret xxxx

    注意:Windows 下需要管理员权限执行, 相关路径也需要确定,不一定是 C:\Scoop\,可能是当前用户目录下的 scoop 目录

    打开 services.msc 找到 easytier_service,修改为延迟启动

    其他

    仅供参考,不对其安全性负责

    • EasyTier 配置管理脚本
    • EasyTier 管理器
    • EasyTier 公共服务器


沪ICP备19023445号-2号
友情链接