type
Post
status
Published
date
Jul 12, 2026
slug
easytier-relay-deployment-guide
summary
在公网 Linux 服务器上用 Docker Compose 部署 EasyTier 私有中继节点,开放 TCP/UDP 11010 给客户端接入。
tags
EasyTier
Docker
组网
category
技术分享
icon
password

EasyTier 公网中继服务器部署教程

本文记录如何在一台公网 Linux 服务器上部署 EasyTier 中继节点。部署完成后,其他客户端可以通过这个公网节点加入同一个 EasyTier 网络。
本文示例统一使用占位符,不展示真实公网 IP 和网络密码:
  • 网络名称:your-network-name
  • 网络密码:<network-secret>
  • 公网服务器地址:<public-server-ip-or-domain>
  • EasyTier 监听端口:11010
网络密码等同于加入网络的凭证,不要发到群里、不要写进公开博客、不要截图公开。

1. 检查端口占用

先确认服务器上已有服务和端口占用情况:
如果 11010 没有被占用,就可以直接使用本文配置。
如果 11010 已经被占用,可以换成其他端口,但要同时修改服务器端和客户端配置,并在安全组里放行对应端口的 TCP 和 UDP。

2. 生成网络密码

在服务器上执行:
命令会输出一串 64 位十六进制字符串。这个值就是 EasyTier 网络密码。
示例写法如下,不要把真实值写进公开文档:
后续客户端必须使用相同的网络名称和网络密码,才能加入同一个 EasyTier 网络。

3. 创建部署目录

4. 写入环境变量

创建 .env
字段说明:
  • ET_NETWORK_NAME:EasyTier 网络名称,客户端要保持一致。
  • ET_NETWORK_SECRET:刚才用 openssl rand -hex 32 生成的网络密码。

5. 写入 Docker Compose 配置

创建 docker-compose.yml
这里使用 network_mode: host,所以容器会直接监听宿主机的 11010 端口。
--private-mode true 表示使用私有网络模式。只有知道网络名称和网络密码的节点才能加入。

6. 启动服务

如果服务器访问 Docker Hub 正常,会直接拉取 easytier/easytier:latest
如果拉取镜像超时,可以把 image 改成可用的镜像源,例如:
然后重新执行:

7. 验证部署

查看容器:
查看监听端口:
查看日志:
正常情况下,容器应处于 Up 状态,并且服务器会监听 11010/tcp11010/udp

8. 放行防火墙和安全组

服务器本机防火墙和云厂商安全组都要放行:
  • TCP:11010
  • UDP:11010
如果使用 firewalld
如果使用 ufw
云服务器还需要在控制台安全组里放行同样的 TCP/UDP 端口。

9. 提供给客户端的信息

部署完成后,客户端只需要拿到下面几项:
不要公开发送网络密码。建议只发给需要接入的用户。

10. 常用维护命令

重启:
停止:
更新镜像:
查看配置:

11. 常见问题

11.1 客户端连不上

优先检查:
  • 公网服务器安全组是否放行 11010/tcp11010/udp
  • 服务器本机防火墙是否放行 11010
  • EasyTier 容器是否正在运行。
  • 客户端的网络名称、网络密码是否和服务器一致。
  • 客户端填写的是公网服务器 IP 或域名,不是内网 IP。

11.2 端口冲突

如果 ss -lntup 看到 11010 已经被其他程序占用,就换一个端口。
服务器端要同时修改:
客户端也要把初始节点端口改成同一个新端口。

11.3 Docker Hub 拉取超时

可以把镜像地址从:
改成:
然后重新执行 sudo docker compose up -d