基于阿里云ECS搭建Tailscale DERP中继服务器:提升跨网络连接速度

基于阿里云ECS搭建Tailscale DERP中继服务器:提升跨网络连接速度

一、背景与原理介绍

1、什么是Tailscale?

Tailscale是一种基于WireGuard协议的VPN服务,它可以让不同网络中的设备像在同一个局域网中一样安全通信。你可以在电脑、手机甚至服务器上安装Tailscale,实现远程访问文件、服务等功能。

2、为什么需要自建DERP中继?

Tailscale默认使用官方提供的中继服务器(DERP Server)来协助设备之间的连接。但当设备之间无法直接建立点对点连接时(例如由于防火墙限制或网络环境复杂),所有数据都需要通过中继服务器转发。这时,官方服务器的带宽和延迟可能成为瓶颈,尤其是在传输大文件或需要高速连接的场景中。

自建DERP中继就像自己搭建一个"专用快递中转站",相比使用公共中转站,你可以获得:

  • 更高的带宽
  • 更低的延迟
  • 更稳定的连接

3、测试环境

我们在阿里云ECS上搭建DERP服务器,并测试了不同设备通过自建中继与官方中继的速度对比。测试结果显示,自建中继显著提升了传输速度。


二、效果对比

1、带宽测试(speedtest-cli)

设备 下载速度 上传速度
阿里云ECS 212.14 Mbit/s 181.96 Mbit/s
远程设备 148.74 Mbit/s 179.71 Mbit/s
家庭电脑 0.89 Mbit/s 1.90 Mbit/s

注:家庭电脑带宽较低

2、使用自建中继前后的速度对比

中继方式 文件拷贝速度
官方默认中继 847.1 KB/s
自建ECS中继 1.6 MB/s

速度提升约一倍,对于大文件传输或实时视频流等应用体验改善显著。


三、详细操作步骤

1. 在阿里云ECS上的操作

1.1 安装Tailscale客户端

首先需要在ECS上安装Tailscale,使其成为Tailscale网络中的一个节点。

  1. 访问 Tailscale官网,登录后获取安装命令(通常是一行curl或apt命令)。
  2. 通过SSH连接到你的阿里云ECS实例。
  3. 运行从官网获取的安装命令。


1.2 安装DERP服务

我们使用Docker来部署DERP服务,这样可以简化依赖管理和维护。

bash 复制代码
# 拉取DERP Docker镜像
docker pull ghcr.io/yangchuansheng/ip_derper:latest

# 创建docker-compose.yml配置文件
cat > docker-compose.yml << 'EOF'
services:
  derper:
    image: ghcr.io/yangchuansheng/ip_derper:latest
    container_name: derper
    restart: always   # 自动重启确保服务持续运行
    ports:
      - "12345:12345"  # DERP服务端口
      - "3478:3478/udp" # STUN端口,用于NAT穿透
    volumes:
      - /var/run/tailscale/tailscaled.sock:/var/run/tailscale/tailscaled.sock
    environment:
      - DERP_ADDR=:12345  # 服务监听端口
      - DERP_CERTS=/app/certs  # 证书目录
      - DERP_VERIFY_CLIENTS=true  # 只允许Tailscale网络内的设备连接
EOF
# 启动服务
docker compose up -d
1.3 设置网络安全组规则

在阿里云控制台配置安全组,开放相关端口:

  • TCP 12345端口:DERP服务主要通信端口
  • UDP 3478端口:STUN服务,用于NAT穿透

2. 设备端配置

2.1 配置Access Controls

需要在Tailscale的ACL(访问控制列表)中指定使用自建的DERP服务器。

  1. 访问 Tailscale Admin Console
  2. 选择需要配置的设备,编辑ACL规则
  • 选择设备,编辑ACL


  1. 添加以下配置(替换ECS公网IP地址为你的实际IP):
json 复制代码
	"derpMap": {
		"OmitDefaultRegions": true, // 禁用官方DERP服务器
		"Regions": {
			"900": {
				"RegionID":   900,
				"RegionCode": "ecs_derp",
				"RegionName": "ecs_derp",
				"Nodes": [
					{
						"Name":             "ecs_derp",
						"RegionID":         900,
						"IPv4":             "ECS公网IP地址", // 替换为你的ECS公网IP
						"DERPPort":         12345,           // 与docker-compose中配置一致
						"InsecureForTests": true,
					},
				],
			},
		},
	},
2.2 验证配置

在远程设备上运行以下命令检查连接状态:

bash 复制代码
tailscale netcheck

此命令会显示当前使用的DERP服务器和连接状态。

如果显示正在使用你的ECS服务器作为DERP节点,说明配置成功。


四、总结

自建Tailscale DERP中继服务器可以显著提升跨网络设备的连接速度,特别适合以下场景:

  • 需要频繁传输大文件
  • 实时视频流或远程桌面
  • 对网络延迟敏感的应用

通过本文介绍的步骤,你可以在阿里云ECS上快速部署属于自己的中继服务。实际测试中,我们观察到文件传输速度提升约一倍,证明了自建中继的有效性。

五、参考链接

自建免备案防偷 Tailscale 国内中继(DERP)教程

相关推荐
我是苏苏6 小时前
Web开发:C#通过ProcessStartInfo动态调用执行Python脚本
java·服务器·前端
相偎8 小时前
Ubuntu搭建svn服务器
服务器·ubuntu·svn
咕噜企业分发小米9 小时前
有哪些开源的直播云服务器安全防护方案?
运维·服务器·云计算
开开心心_Every10 小时前
安卓后台录像APP:息屏录存片段,行车用
java·服务器·前端·学习·eclipse·edge·powerpoint
qq_3168377510 小时前
IP网段冲突 配置指定ip使用指定的网络接口发送,而不经过默认网关
服务器·网络·tcp/ip
深圳市恒讯科技11 小时前
Linux 文件权限指南:chmod 755、644、drwxr-xr-x 解析
linux·服务器·xr
xingzhemengyou111 小时前
Linux taskset指令设置或查看进程的 CPU 亲和性
linux·服务器
开开心心就好11 小时前
图片格式转换工具,右键菜单一键转换简化
linux·运维·服务器·python·django·pdf·1024程序员节
DO_Community11 小时前
DigitalOcean容器注册表推出多注册表支持功能
服务器·数据库·docker·kubernetes
其美杰布-富贵-李11 小时前
深度学习中的 tmux
服务器·人工智能·深度学习·tmux