侧边栏壁纸
博主头像
土拨鼠说Halo 博主等级

行动起来,活在当下

  • 累计撰写 48 篇文章
  • 累计创建 3 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

Tailscale 搭建自己的私有网络

土拨鼠
2026-04-07 / 0 评论 / 0 点赞 / 0 阅读 / 0 字

Tailscale 搭建自己的私有网络 第二期,5分钟搞定!国内VPS自建DERP中继:无需域名,无需证书的部署方案

一句话结论
在国内VPS上使用Docker部署Tailscale DERP中继服务器,无需域名和SSL证书,只需5分钟即可显著提升国内设备间的连接速度。

内容摘要

  • 问题:Tailscale官方DERP服务器在国内无节点,导致设备间连接慢或不稳定。
  • 方案:在国内VPS上自建DERP中继,无需域名和证书。
  • 步骤:1. VPS安装Tailscale客户端;2. 用Docker运行DERP容器;3. 配置防火墙;4. 在Tailscale ACL中添加自定义节点。
  • 优势:成本低(月费10-20元)、完全可控、速度更快、部署简单。

结构拆解
目标-步骤-注意事项

对我有用的部分

  1. 技术方案:使用deepfal/tailscale-derp Docker镜像,配合--verify-clients-certmode manual参数,实现无需域名和SSL证书的DERP服务器部署。
  2. 配置要点:Tailscale ACL中derpMap的配置结构,特别是InsecureForTests: trueOmitDefaultRegions: false的设置逻辑与安全性解释。
  3. 故障排查与优化:包括防火墙端口(TCP 59443, UDP 3478)的开放、Docker镜像拉取失败的备用方案、挂载目录的优化方法以及多节点负载均衡的配置示例。


Tailscale 第一期,从 0 开始搭建自己的私有网络

这一期,为什么要自建 DERP 节点?

你可能已经在使用 Tailscale 了,也知道它有多方便——把所有设备连成一个虚拟局域网,随时随地访问家里的电脑、NAS,简直是远程办公神器。

但是!你有没有遇到过这种情况:

  • • 两台设备明明都在线,却连接巨慢,传个文件要等半天
  • • 有时候干脆连不上,Tailscale 显示"relayed"状态
  • • 看日志发现流量在绕地球——经过美国、欧洲的服务器中转

这是因为 Tailscale 的官方 DERP 中继服务器在国内没有节点!当你的设备无法直连(P2P 打洞失败)时,所有流量都要绕到国外服务器中转,速度自然慢得要命。

虽然网上有很多公开的 DERP 节点可以用,但说实话,把自己的流量交给陌生人的服务器,总感觉不太放心。而且这些公开节点质量参差不齐,今天能用明天可能就挂了。

最靠谱的解决方案,就是自己搭一个!

好消息是,自建 DERP 节点超级简单,而且成本极低:

  • • ✅ 只需要一台国内 VPS(最便宜的配置就够了,一个月十几块钱)
  • • ✅ 不需要域名(省了域名费和备案麻烦)
  • • ✅ 不需要 SSL 证书(省了申请和续期的麻烦)
  • • ✅ 5 分钟部署完成(真的就是复制粘贴几条命令)

准备工作

你需要:

  1. 1. 一台国内 VPS :阿里云、腾讯云、华为云都行,最低配置就够(1 核 1G 内存)。选择国内机房,比如北京、上海、广州。
  2. 2. SSH 工具:Windows 用户可以用 PuTTY 或者 Windows 自带的 PowerShell, Mac 和 Linux 用户直接用终端。
  3. 3. 5 分钟时间 :真的只需要 5 分钟!

第一步:登录 VPS 并安装 Tailscale 客户端

![图片](data:image/svg+xml,%3C%3Fxml version=‘1.0’ encoding=‘UTF-8’%3F%3E%3Csvg width=‘1px’ height=‘1px’ viewBox=‘0 0 1 1’ version=‘1.1’ xmlns=‘http://www.w3.org/2000/svg’ xmlns:xlink=‘http://www.w3.org/1999/xlink’%3E%3Ctitle%3E%3C/title%3E%3Cg stroke=‘none’ stroke-width=‘1’ fill=‘none’ fill-rule=‘evenodd’ fill-opacity=‘0’%3E%3Cg transform=‘translate(-249.000000, -126.000000)’ fill=‘%23FFFFFF’%3E%3Crect x=‘249’ y=‘126’ width=‘1’ height=‘1’%3E%3C/rect%3E%3C/g%3E%3C/g%3E%3C/svg%3E)

用 SSH 连接到你的 VPS:

ssh root@你的VPS_IP

然后运行 Tailscale 官方安装脚本:

curl -fsSL https://tailscale.com/install.sh | sh

安装完成后,启动并登录 Tailscale:

sudo tailscale up

这时候会给你一个链接,复制到浏览器里打开,登录你的 Tailscale 账号授权这台 VPS 加入你的网络。

为什么要这么做?

因为我们要启用 --verify-clients 参数,让 DERP 服务器验证连接的客户端是不是你网络里的设备。这样可以防止别人白嫖你的中继服务器。

验证一下 Tailscale 是否正常运行:

ls /var/run/tailscale/tailscaled.sock

如果看到这个文件存在,说明安装成功了!

第二步:用 Docker 运行 DERP 服务器

![图片](data:image/svg+xml,%3C%3Fxml version=‘1.0’ encoding=‘UTF-8’%3F%3E%3Csvg width=‘1px’ height=‘1px’ viewBox=‘0 0 1 1’ version=‘1.1’ xmlns=‘http://www.w3.org/2000/svg’ xmlns:xlink=‘http://www.w3.org/1999/xlink’%3E%3Ctitle%3E%3C/title%3E%3Cg stroke=‘none’ stroke-width=‘1’ fill=‘none’ fill-rule=‘evenodd’ fill-opacity=‘0’%3E%3Cg transform=‘translate(-249.000000, -126.000000)’ fill=‘%23FFFFFF’%3E%3Crect x=‘249’ y=‘126’ width=‘1’ height=‘1’%3E%3C/rect%3E%3C/g%3E%3C/g%3E%3C/svg%3E)

现在来启动 DERP 服务器容器。复制下面这条命令,把 derp.deepfal.cn 改成你的 VPS 公网 IP,然后运行:

docker run -d \
    --name tailscale-derp \
    --restart unless-stopped \
    -p 0.0.0.0:59443:36666 \
    -p 0.0.0.0:3478:3478/udp \
    -v /var/run/tailscale/tailscaled.sock:/var/run/tailscale/tailscaled.sock \
    deepfal/tailscale-derp:latest \
    ./derper \
    -hostname 你的VPS公网IP \
    -a :36666 \
    -certmode manual \
    -certdir /ssl \
    --verify-clients

参数解释 (不想看可以跳过):

  • -p 0.0.0.0:59443:36666 :把容器的 36666 端口映射到宿主机的 59443 端口,这是 DERP 服务的主端口
  • -p 0.0.0.0:3478:3478/udp :UDP 端口,用于 STUN 协议帮助设备打洞
  • -v /var/run/tailscale/tailscaled.sock:/var/run/tailscale/tailscaled.sock :挂载 Tailscale 的 socket 文件,让 DERP 能验证客户端身份
  • -hostname 你的 VPS 公网 IP :指定 DERP 服务器的地址(用 IP 就行,不需要域名)
  • -certmode manual :手动证书模式(其实我们不用证书,因为 Tailscale 本身就是加密的)
  • --verify-clients :启用客户端验证,防止被白嫖

如果遇到 Docker 拉取失败怎么办?

国内有时候访问 Docker Hub 会很慢或者失败。如果你遇到 docker.io 连接超时,可以用这个办法:

在另一台能访问 Docker Hub 的机器上 (比如你的本地电脑):

# 拉取镜像
docker pull deepfal/tailscale-derp:latest

# 打包成文件
docker save deepfal/tailscale-derp:latest | gzip > tailscale-derp_latest.tar.gz

把文件传到 VPS 上

scp tailscale-derp_latest.tar.gz root@你的VPS_IP:/tmp/

在 VPS 上导入镜像

gunzip -c /tmp/tailscale-derp_latest.tar.gz | docker load

然后再运行上面的 docker run 命令就可以了。

第三步:配置防火墙和安全组

![图片](data:image/svg+xml,%3C%3Fxml version=‘1.0’ encoding=‘UTF-8’%3F%3E%3Csvg width=‘1px’ height=‘1px’ viewBox=‘0 0 1 1’ version=‘1.1’ xmlns=‘http://www.w3.org/2000/svg’ xmlns:xlink=‘http://www.w3.org/1999/xlink’%3E%3Ctitle%3E%3C/title%3E%3Cg stroke=‘none’ stroke-width=‘1’ fill=‘none’ fill-rule=‘evenodd’ fill-opacity=‘0’%3E%3Cg transform=‘translate(-249.000000, -126.000000)’ fill=‘%23FFFFFF’%3E%3Crect x=‘249’ y=‘126’ width=‘1’ height=‘1’%3E%3C/rect%3E%3C/g%3E%3C/g%3E%3C/svg%3E)

这一步超级重要!如果不开放端口,外面根本连不进来。

云服务商控制台配置

登录你的云服务商控制台(阿里云、腾讯云等),找到"安全组"或"防火墙规则",添加以下规则:

协议 端口 来源 说明
TCP 59443 0.0.0.0/0 DERP 主服务端口
UDP 3478 0.0.0.0/0 STUN 端口

服务器防火墙配置(如果有的话)

如果你的 VPS 还开启了系统防火墙(比如 ufw 或 firewalld),也需要放行这两个端口:

Ubuntu/Debian (ufw)

sudo ufw allow 59443/tcp
sudo ufw allow 3478/udp

CentOS/RHEL (firewalld)

sudo firewall-cmd --permanent --add-port=59443/tcp
sudo firewall-cmd --permanent --add-port=3478/udp
sudo firewall-cmd --reload

第四步:验证 DERP 服务器运行状态

检查容器是否正常运行:

docker logs tailscale-derp

如果看到类似 derp server started 或者 listening on :36666 这样的日志,说明服务已经启动成功了!

你也可以用这个命令查看容器状态:

docker ps | grep tailscale-derp

如果状态是 Up ,说明一切正常。

第五步:配置 Tailscale 使用你的 DERP 节点

现在是最激动人心的时刻!打开 Tailscale 的 ACL 配置页面:

👉 https://login.tailscale.com/admin/acls/file

在配置文件中找到或添加 derpMap 字段(如果已经有了就直接修改 Regions 部分):

{
  "derpMap": {
    "OmitDefaultRegions":false,
    "Regions": {
      "900": {
        "RegionID": 900,
        "RegionCode": "mycustom",
        "RegionName": "My Custom DERP",
        "Nodes": [
          {
            "Name": "mycustom-1",
            "RegionID": 900,
            "HostName": "你的 VPS 公网 IP",
            "DERPPort": 59443,
            "InsecureForTests":true
          }
        ]
      }
    }
  }
}

重要说明

  • • 把 你的 VPS 公网 IP 替换成你实际的 VPS IP 地址
  • DERPPort59443 (我们映射的端口)
  • InsecureForTests: true 表示不验证 SSL 证书(因为我们用的是 IP,没有证书)
  • OmitDefaultRegions: false 表示保留官方节点作为备份,建议这样设置

点击 Save 保存配置。你的所有 Tailscale 设备会在几秒钟内自动刷新配置!

第六步:测试验证

![图片](data:image/svg+xml,%3C%3Fxml version=‘1.0’ encoding=‘UTF-8’%3F%3E%3Csvg width=‘1px’ height=‘1px’ viewBox=‘0 0 1 1’ version=‘1.1’ xmlns=‘http://www.w3.org/2000/svg’ xmlns:xlink=‘http://www.w3.org/1999/xlink’%3E%3Ctitle%3E%3C/title%3E%3Cg stroke=‘none’ stroke-width=‘1’ fill=‘none’ fill-rule=‘evenodd’ fill-opacity=‘0’%3E%3Cg transform=‘translate(-249.000000, -126.000000)’ fill=‘%23FFFFFF’%3E%3Crect x=‘249’ y=‘126’ width=‘1’ height=‘1’%3E%3C/rect%3E%3C/g%3E%3C/g%3E%3C/svg%3E)

在任意一台已经安装 Tailscale 的设备上运行:

tailscale netcheck

你会看到类似这样的输出:

Report:
  * UDP: true
  * IPv4: yes, 你的IP地址
  * IPv6: no
  * MappingVariesByDestIP: false
  * HairPinning: false
  * PortMapping:
  * Nearest DERP: My Custom DERP (mycustom)
  * DERP latency:
    - mycustom: 15ms  ← 看这里!延迟很低说明成功了
    - tok: 85ms
    - sin: 92ms

如果你看到你的自定义 DERP 节点出现在列表里,而且延迟很低(通常 10-30ms),恭喜你,部署成功了!

你也可以在 Tailscale 管理后台查看设备连接状态:

👉 https://login.tailscale.com/admin/machines

点击任意设备,查看"Connection type",如果显示"DERP (mycustom)",说明流量正在通过你的自建节点中转。

进阶技巧

优化挂载目录,防止重启失效

有时候 Tailscale 客户端重启会导致 socket 文件路径变化,容器就找不到了。更稳定的做法是挂载整个目录:

docker run -d \
    --name tailscale-derp \
    --restart unless-stopped \
    -p 0.0.0.0:59443:36666 \
    -p 0.0.0.0:3478:3478/udp \
    -v /var/run/tailscale:/var/run/tailscale:ro \
    deepfal/tailscale-derp:latest \
    ./derper \
    -hostname 你的VPS公网IP \
    -a :36666 \
    -certmode manual \
    -certdir /ssl \
    --verify-clients

注意这里改成了 -v /var/run/tailscale:/var/run/tailscale:ro (挂载整个目录,只读模式)。

添加多个 DERP 节点实现负载均衡

如果你有多台 VPS,可以在不同地区各部署一个 DERP 节点,然后在 Tailscale 配置中添加多个 Region:

{
  "derpMap": {
    "OmitDefaultRegions":false,
    "Regions": {
      "900": {
        "RegionID": 900,
        "RegionCode": "cn-north",
        "RegionName": "China North",
        "Nodes": [
          {
            "Name": "beijing-1",
            "RegionID": 900,
            "HostName": "北京 VPS 的 IP",
            "DERPPort": 59443,
            "InsecureForTests":true
          }
        ]
      },
      "901": {
        "RegionID": 901,
        "RegionCode": "cn-south",
        "RegionName": "China South",
        "Nodes": [
          {
            "Name": "guangzhou-1",
            "RegionID": 901,
            "HostName": "广州 VPS 的 IP",
            "DERPPort": 59443,
            "InsecureForTests":true
          }
        ]
      }
    }
  }
}

Tailscale 会自动选择延迟最低的节点使用。

监控 DERP 服务器状态

你可以定期检查容器日志,看看有没有异常:

docker logs --tail 50 tailscale-derp

或者设置一个简单的监控脚本,每小时检查一次容器是否在运行:

#!/bin/bash
if ! docker ps | grep -q tailscale-derp; then
    echo "DERP container is down! Restarting..."
    docker start tailscale-derp
fi

把这个脚本加到 crontab 里定时执行就行了。

常见问题

Q: 为什么我的设备还是连不上自建的 DERP 节点?

A: 检查以下几点:

  1. 1. 防火墙和安全组是否正确配置(TCP 59443 和 UDP 3478)
  2. 2. VPS 的 Tailscale 客户端是否正常运行( tailscale status 检查)
  3. 3. Docker 容器是否正常运行( docker ps 检查)
  4. 4. Tailscale ACL 配置是否保存成功(刷新页面确认)

Q: InsecureForTests 设为 true 安全吗?

A: 完全安全!这个参数只是告诉 Tailscale 客户端"不要验证这个 DERP 服务器的 SSL 证书"。但 Tailscale 本身的端到端加密是独立的,流量依然是加密的。DERP 服务器只是中转加密数据包,看不到内容。

Q: 我可以只用自建节点,完全不用官方节点吗?

A: 可以,把 OmitDefaultRegions 设为 true 就行。但不建议这么做,因为如果你的 VPS 挂了,设备之间就完全连不上了。保留官方节点作为备份更稳妥。

Q: 这个方案的成本是多少?

A: 国内最便宜的 VPS 一个月 10-20 元就够了(1 核 1G 内存),流量一般也够用。相比购买商业 VPN 服务或者专业的远程访问方案,这个成本几乎可以忽略不计。

Q: 如果我换了 VPS IP 怎么办?

A: 只需要重新运行 docker run 命令(修改 hostname 参数),然后更新 Tailscale ACL 配置中的 IP 地址就可以了。

Q: 为什么要用 Docker 而不是直接在宿主机上运行 derper?

A: Docker 更方便管理,而且隔离性更好。如果出问题了,直接删除容器重新运行就行,不会影响宿主机。当然你也可以直接在宿主机上编译运行 derper,效果是一样的。

总结

通过这个方案,你只需要:

  1. 1. 一台国内 VPS (十几块钱一个月)
  2. 2. 5 分钟时间 (安装 Tailscale + 运行 Docker 容器)
  3. 3. 几行配置 (修改 Tailscale ACL)

就能拥有一个专属的、高速的、安全的 DERP 中继节点!

相比使用公开节点,自建节点的优势是:

  • • ✅ 完全可控 :你知道流量经过哪里,不用担心隐私问题
  • • ✅ 稳定可靠 :不会突然挂掉或者被墙
  • • ✅ 速度更快 :选择离你最近的机房,延迟更低
  • • ✅ 独享带宽 :不会被别人抢占资源

而且这个方案最大的优点是 简单 ——不需要域名,不需要证书,不需要复杂的配置,真的就是复制粘贴几条命令就搞定了。

如果你已经在使用 Tailscale,强烈建议试试这个方案。如果你还没用过 Tailscale,可以先看看我之前写的《完全免费!从零开始搭建你的私人网络:Tailscale + 国内 DERP 免费中继完全指南》,了解 Tailscale 的基础用法。

现在就去试试吧!5 分钟后,你就能享受飞一般的连接速度了🚀

相关链接

🔗 Tailscale 官网:https://tailscale.com

🔗 Tailscale Linux 安装文档:https://tailscale.com/docs/install/linux

🔗 Tailscale ACL 配置页面:https://login.tailscale.com/admin/acls/file

🔗 Tailscale 设备管理页面:https://login.tailscale.com/admin/machines

🔗 deepfal/tailscale-derp Docker 镜像:https://hub.docker.com/r/deepfal/tailscale-derp

0

评论区