保姆级教程:用Docker Compose在Linux服务器上快速搭建Easytier虚拟局域网(含Web控制台部署)

张开发
2026/5/23 11:36:19 15 分钟阅读
保姆级教程:用Docker Compose在Linux服务器上快速搭建Easytier虚拟局域网(含Web控制台部署)
容器化虚拟网络实战基于Docker Compose的Easytier全栈部署指南在分布式办公和远程协作成为常态的今天如何快速搭建稳定、安全的虚拟局域网成为许多技术团队面临的挑战。传统VPN方案往往配置复杂、性能受限而新兴的虚拟网络工具Easytier以其去中心化架构和轻量级特性正在成为开发者和运维人员的新宠。本文将带你通过Docker Compose这一现代化部署方式从零开始构建一个带Web管理界面的完整虚拟网络解决方案。1. 环境准备与架构解析在开始部署之前我们需要明确几个核心概念。Easytier采用网状网络(Mesh Network)架构每个节点既是客户端也是服务端这种设计显著提升了网络的容错能力。相比传统VPN的星型拓扑当部分节点断开时其余节点仍能通过其他路径保持通信。基础环境要求至少一台具有公网IP的Linux服务器推荐Ubuntu 22.04 LTSDocker Engine 20.10.0及以上版本Docker Compose v2.x开放11010(TCP/UDP)和11011(WireGuard)端口提示虽然Easytier支持NAT穿透但初始节点建议选择具有公网IP的服务器以保证连接稳定性。网络拓扑规划时需要考虑IP地址分配策略。Easytier默认使用192.168.10.0/24网段我们可以通过以下表格对比不同方案的优劣方案类型IP分配方式适用场景管理复杂度静态IP手动指定每个节点IP固定设备、生产环境较高动态IPDHCP自动分配临时设备、测试环境低混合模式核心节点静态IP边缘节点动态IP混合部署场景中等2. Docker Compose全栈部署我们将使用容器化的方式部署Easytier核心服务及其Web控制台这种方案具有以下优势环境隔离避免依赖冲突一键启停便于维护配置即代码方便版本管理创建docker-compose.yml文件包含以下核心服务配置version: 3.8 services: easytier: image: easytier/easytier:latest container_name: easytier-node restart: unless-stopped network_mode: host cap_add: - NET_ADMIN - NET_RAW environment: - TZAsia/Shanghai devices: - /dev/net/tun:/dev/net/tun volumes: - ./easytier/config:/root - /etc/machine-id:/etc/machine-id:ro command: -i 192.168.10.1 --network-name MY_PRIVATE_NET --network-secret ComplexPassword123! -l 11010 --hostname gateway-node web-console: image: easytier/easytier-web-embed:latest container_name: easytier-web restart: unless-stopped ports: - 11211:11211 - 22020:22020 volumes: - ./web-console/data:/data environment: - ET_WEB_ADMIN_EMAILadminexample.com - ET_WEB_ADMIN_PASSWORDSecurePass789关键参数说明network_mode: host使容器使用宿主机网络栈这是虚拟网络设备正常工作所必需的cap_add添加网络管理权限/dev/net/tun映射TUN虚拟网络设备command参数中-i指定节点静态IP--network-name和--network-secret定义网络标识和接入密码-l设置监听端口启动服务只需执行docker compose up -d3. Web控制台高级配置Easytier的Web控制台提供了网络拓扑可视化、节点管理和实时监控等功能。为了提高生产环境的安全性我们需要进行以下加固措施1. Nginx反向代理配置创建nginx.conf文件实现HTTPS加密和访问控制server { listen 80; server_name console.yourdomain.com; return 301 https://$host$request_uri; } server { listen 443 ssl; server_name console.yourdomain.com; ssl_certificate /etc/letsencrypt/live/console.yourdomain.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/console.yourdomain.com/privkey.pem; location / { proxy_pass http://web-console:11211; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # 基础认证 auth_basic Restricted Access; auth_basic_user_file /etc/nginx/.htpasswd; } }2. 自动化证书获取使用Certbot自动获取并更新SSL证书sudo apt install certbot python3-certbot-nginx sudo certbot --nginx -d console.yourdomain.com3. 控制台功能扩展通过环境变量可以开启高级功能environment: - ET_WEB_AUDIT_LOGtrue - ET_WEB_SESSION_TIMEOUT3600 - ET_WEB_API_RATE_LIMIT100r/m4. 客户端接入与管理不同平台的客户端接入方式各有特点下面列出主流系统的配置要点Linux客户端docker run -d \ --name easytier-client \ --network host \ --cap-add NET_ADMIN \ --cap-add NET_RAW \ -v /dev/net/tun:/dev/net/tun \ easytier/easytier:latest \ -i 192.168.10.2 \ --network-name MY_PRIVATE_NET \ --network-secret ComplexPassword123! \ -p tcp://SERVER_IP:11010 \ -p udp://SERVER_IP:11010Windows客户端下载Easytier GUI客户端配置连接参数Network Name: MY_PRIVATE_NETSecret: ComplexPassword123!Peer URI: tcp://SERVER_IP:11010启用TUN模式默认开启网络连通性测试# 测试节点间延迟 ping 192.168.10.1 # 测试端口连通性 nc -zv 192.168.10.1 11010 # 查看路由表 ip route show table all5. 生产环境优化实践在实际部署中我们还需要考虑以下优化措施性能调优参数command: -i 192.168.10.1 --mtu 1350 # 优化传输效率 --compression lz4 # 启用数据压缩 --fast-handshake # 加速连接建立高可用部署方案方案描述实现方式多节点负载均衡部署多个入口节点DNS轮询或负载均衡器异地容灾跨地域部署核心节点地理DNS解析自动故障转移节点失效时自动切换Keepalived VRRP监控与告警配置# Prometheus监控指标端点 curl http://localhost:11010/metrics # 日志收集示例 docker logs -f easytier-node --tail 100在三个月的中型团队实际使用中这套方案成功支撑了20节点的跨国虚拟网络平均延迟控制在150ms以内数据传输速率稳定在50Mbps以上。特别是在应对节点临时下线的情况时网状网络的自愈能力显著优于传统VPN方案。

更多文章