当前位置: 首页 > ds >正文

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

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

    • 一、背景与原理介绍
      • 1、什么是Tailscale?
      • 2、为什么需要自建DERP中继?
      • 3、测试环境
    • 二、效果对比
      • 1、带宽测试(speedtest-cli)
      • 2、使用自建中继前后的速度对比
    • 三、详细操作步骤
      • 1. 在阿里云ECS上的操作
        • 1.1 安装Tailscale客户端
        • 1.2 安装DERP服务
        • 1.3 设置网络安全组规则
      • 2. 设备端配置
        • 2.1 配置Access Controls
        • 2.2 验证配置
    • 四、总结
    • 五、参考链接

一、背景与原理介绍

1、什么是Tailscale?

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

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

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

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

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

3、测试环境

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


二、效果对比

1、带宽测试(speedtest-cli)

设备下载速度上传速度
阿里云ECS212.14 Mbit/s181.96 Mbit/s
远程设备148.74 Mbit/s179.71 Mbit/s
家庭电脑0.89 Mbit/s1.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:latestcontainer_name: derperrestart: always   # 自动重启确保服务持续运行ports:- "12345:12345"  # DERP服务端口- "3478:3478/udp" # STUN端口,用于NAT穿透volumes:- /var/run/tailscale/tailscaled.sock:/var/run/tailscale/tailscaled.sockenvironment:- 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)教程

http://www.xdnf.cn/news/20431.html

相关文章:

  • 前端登录鉴权详解
  • C++面试10——构造函数、拷贝构造函数和赋值运算符
  • 西门子S7-200 SMART PLC:编写最基础的“起保停”程序
  • [特殊字符] 从零到一:打造你的VSCode圈复杂度分析插件
  • Linux内核源码获取与编译安装完整指南
  • Java8函数式编程之Stream API
  • 预闪为什么可以用来防红眼?
  • C/C++动态爱心
  • Caffeine Weigher
  • 蓓韵安禧DHA纯植物藻油纯净安全零添加守护母婴健康
  • 基于STM32智能阳台监控系统
  • Unity 如何使用ModbusTCP 和PLC通讯
  • 用 Go + HTML 实现 OpenHarmony 投屏(hdckit-go + WebSocket + Canvas 实战)
  • 《sklearn机器学习——绘制分数以评估模型》验证曲线、学习曲线
  • 鸿蒙Next开发指南:UIContext接口解析与全屏拉起元服务实战
  • DevOps实战(2) - 使用Arbess+GitPuk+Docker实现Java项目自动化部署
  • Rsyslog日志采集
  • 快捷:常见ocr学术数据集预处理版本汇总(适配mmocr)
  • js闭包问题
  • B.50.10.07-分布式锁核心原理与电商应用
  • 操作系统之内存管理
  • 从 0 到 1 学 sed 与 awk:Linux 文本处理的两把 “瑞士军刀”
  • 数据结构:栈和队列(下)
  • Qt控件:Item Views/Widgets
  • 国产数据库之YashanDB:新花怒放
  • 源滚滚AI编程SillyTavern酒馆配置Claude Code API教程
  • DeepSeek vs Anthropic:技术路线的正面冲突
  • Java基础 9.5
  • centos 系统如何安装open jdk 8
  • linux下快捷删除单词、行的命令