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

发布于:2025-09-07 ⋅ 阅读:(21) ⋅ 点赞:(0)

一、背景与原理介绍

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服务,这样可以简化依赖管理和维护。

# 拉取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):

请添加图片描述

	"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 验证配置

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

tailscale netcheck

此命令会显示当前使用的DERP服务器和连接状态。
请添加图片描述

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


四、总结

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

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

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

五、参考链接

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


网站公告

今日签到

点亮在社区的每一天
去签到