[软件服务] 在韩国 Moack 部署私有 Tailscale DERP 中转站全记录

date
Feb 24, 2026
slug
newsoftware- tailscale-derp-中转接电
status
Published
summary
新软件-
tags
software
service
type
Post
URL
 
 
这份文档是为你精心整理的最终技术博文版。它不仅记录了操作步骤,还复盘了我们在韩国 Moack 环境下遇到的网络坑位及解决方案。你可以直接全选并粘贴到 Notion 中。

🚀 打造极致低延迟:在韩国 Moack 部署私有 Tailscale DERP 中转站全记录

背景:为了优化从上海办公室或北美远程访问家中星核电脑的体验,我们需要在地理位置优越的韩国首尔部署私有 DERP 中转站。本文记录了从突破网络封锁安装 Tailscale 到实现 Telegram 自动化报警的全过程。

📍 核心配置摘要

  • 服务器:Moack 韩国 VPS (Ubuntu 20.04 Focal)
  • 专属域名kr-derp.nxxxxxxa.com
  • 核心端口:TCP 3443 (HTTPS) / UDP 3478 (STUN)
  • 延迟表现:从 ~200ms (官方节点) 降低至 103.5ms

一、 前置准备:域名与证书自动化

为了实现安全的 HTTPS 连接,我们利用 Nginx Proxy Manager (NPM) 处理证书。

1. Cloudflare DNS 配置

  • A 记录kr-derp 指向韩国 VPS IP。
  • ⚠️ 关键点:代理状态必须设为 DNS Only (灰色云朵),否则会拦截 Tailscale 的 UDP 打洞流量。

2. NPM 证书申领

  • 通过 DNS Challenge 模式,配合 Cloudflare API Token 申请 kr-derp.nxxxxxxa.com 的证书。
  • 证书路径确认:经核实,物理文件存放于 /data/npm_nginx_proxy_manager/letsencrypt/live/npm-30/

二、 突破网络:宿主机 Tailscale 安装

由于 Moack 韩国线路到官方源及部分国内镜像站存在 404 或 TCP 阻断问题,最终采用 山东大学镜像站 手动安装。
Bash
# 1. 下载绝对存在的 .deb 安装包 wget https://mirrors.sdu.edu.cn/spark-store/store/network/tailscale/tailscale_1.94.2_amd64.deb # 2. 本地强制安装并入网 sudo dpkg -i tailscale_1.94.2_amd64.deb sudo tailscale up
  • :入网是为了生成 /var/run/tailscale/tailscaled.sock,用于 DERP 容器的客户端白名单验证。
  • 持久化:在 Admin Console 将该机器设为 Disable Key Expiry

三、 容器化部署:DERP Server

创建 docker-compose.yml,精准挂载 NPM 证书与系统套接字。
YAML
version: '3.8' services: derper: image: fredliang/derper container_name: tailscale-derp-kr restart: always ports: - "3443:443" - "3478:3478/udp" environment: - DERP_DOMAIN=kr-derp.nxxxxxxa.com - DERP_CERT_MODE=manual - DERP_ADDR=:443 - DERP_VERIFY_CLIENTS=true # 开启安全验证 volumes: - /data/npm_nginx_proxy_manager/letsencrypt/live/npm-30/fullchain.pem:/app/certs/kr-derp.nxxxxxxa.com.crt:ro - /data/npm_nginx_proxy_manager/letsencrypt/live/npm-30/privkey.pem:/app/certs/kr-derp.nxxxxxxa.com.key:ro - /var/run/tailscale/tailscaled.sock:/var/run/tailscale/tailscaled.sock networks: - default networks: default: name: npm_nginx_proxy_manager-network external: true
启动命令
docker compose down; docker-compose up -d; sleep 1s; docker-compose logs -f

四、 路由下发:Tailscale ACL 配置

在控制台的 Access Controls 顶部加入私有节点信息。
JSON
"derpMap": { "OmitDefaultRegions": false, "Regions": { "902": { "RegionID": 902, "RegionCode": "kr-vps", "RegionName": "Korea Seoul Station", "Nodes": [ { "Name": "n1", "RegionID": 902, "HostName": "kr-derp.nxxxxxxa.com", "DERPPort": 3443, "STUNPort": 3478 } ] } } }

五、 自愈与报警:Telegram 监控脚本

为了保证高可用性,部署 Bash 脚本每 5 分钟检查一次容器状态,宕机时发送 TG 提醒并自动重启。
脚本位置~/data/tailscale-derp/check_derp.sh
Bash
#!/bin/bash CONTAINER_NAME="tailscale-derp-kr" COMPOSE_DIR="/root/data/tailscale-derp" TG_URL="https://api.telegram.org/bot1577714372:AAHTPb1MJ7ZZtWBcXa0Fj7qHzLY8hT/sendMessage?chat_id=-10013009&text=kr-derp-tailscale-is-down-at-moack-now" if [ "$(docker inspect -f '{{.State.Running}}' $CONTAINER_NAME 2>/dev/null)" != "true" ]; then # 触发报警 curl -s -m 10 "$TG_URL" > /dev/null # 重启容器 cd "$COMPOSE_DIR" && docker compose down && docker-compose up -d fi
Cron 任务
  • /5 * * * * /bin/bash /root/data/tailscale-derp/check_derp.sh

📈 结果验证

运行 tailscale netcheck 后,显示:
  • Nearest DERP: Korea Seoul Station
  • Latency: 103.5ms
结论:通过在韩国部署私有节点,我们不仅获得了极致的响应速度,还通过双重验证和自动化监控确保了链路的安全性与稳定性。


这就是今天的全部战斗成果!如果未来你想在温哥华或多伦多再加一个节点,只需要把这篇文档里的 902 ID 和域名改一下,10 分钟内就能复刻一个

© Ying Bun 2021 - 2026