零基础:打造私人 Tailscale DERP 中转服务器与 VPS 终极加固指南

在复杂的网络环境下,Tailscale 的点对点(P2P)连接有时会失败。此时,一个低延迟的自建 DERP (Designated Encrypted Relay for Packets) 中转服务器就成了保证远程桌面、文件传输顺滑的关键。

本文将带你从零开始编译 DERP,并实施一套足以抵御 99% 公网扫描的 VPS 加固方案。


一、 VPS 基础环境配置

建议使用 Ubuntu 22.04+Debian 11+ 系统。

1. 安装 Go 语言环境

DERP 由 Go 编写,我们直接从仓库安装最新版:

Bash

sudo apt update && sudo apt install golang-go -y
# 验证安装
go version

2. 准备自签名证书目录

为了避开域名申请和备案的麻烦,我们采用“手动证书模式”:

Bash

mkdir -p /root/derp/certs

二、 编译与部署 DERP 服务端

由于 Docker 镜像可能存在拉取故障,源码编译是最稳妥且高效的方式。

1. 编译安装

Bash

# 将 derper 安装至 /root/go/bin/
go install tailscale.com/cmd/derper@main

2. 启动服务

建议避开常用的 80/443 端口,改用自定义高位端口。

  • 中转端口 (TCP):建议选择 30000-60000 之间的数字(如 34443)。
  • 穿透协助端口 (UDP):建议选择 30000-60000 之间的数字(如 33478)。

启动命令示例:

Bash

nohup /root/go/bin/derper -hostname <您的服务器公网IP> \
    -a :34443 -stun-port 33478 \
    -certmode manual -certdir /root/derp/certs > /var/log/derp.log 2>&1 &

3. 配置开机自启

通过 crontab -e 实现重启自动拉起服务:

Bash

@reboot nohup /root/go/bin/derper -hostname <您的服务器公网IP> -a :34443 -stun-port 33478 -certmode manual -certdir /root/derp/certs > /var/log/derp.log 2>&1 &

三、 Tailscale 控制台配置 (ACL)

登录 Tailscale 管理后台,在 Access Control 中填入以下 JSON 配置,让客户端识别你的中转站。

JSON

"derpMap": {
    "OmitDefaultRegions": false,
    "Regions": {
        "901": {
            "RegionID":   901,
            "RegionCode": "my-custom-relay",
            "RegionName": "My Private Relay Server",
            "Nodes": [
                {
                    "Name":             "1",
                    "RegionID":         901,
                    "DERPPort":         34443,
                    "IPv4":             "<您的服务器公网IP>",
                    "InsecureForTests": true
                }
            ]
        }
    }
}

四、 VPS 终极安全加固

一旦 VPS 拥有公网 IP,每秒都会遭遇数以千计的暴力破解尝试。以下步骤能让你的服务器从黑客雷达上“消失”。

1. 修改 SSH 默认端口 (隐身术)

将 SSH 端口从 22 改为随机高位端口(如 52222):

  1. 编辑配置:sudo nano /etc/ssh/sshd_config
  2. 修改:Port 52222
  3. 重启服务:sudo systemctl restart ssh

2. 部署 UFW 精准防火墙

原则: 除了业务端口,关掉一切。

Bash

# 默认拒绝所有入站,允许所有出站
sudo ufw default deny incoming
sudo ufw default allow outgoing

# 必须放行的业务端口
sudo ufw allow 34443/tcp    # DERP
sudo ufw allow 33478/udp    # STUN

# SSH 安全访问方案(选其一):
# 方案 A:允许新端口访问(方便但仍会被扫)
sudo ufw allow 52222/tcp
# 方案 B:仅允许 Tailscale 内部节点访问(极度安全,推荐)
sudo ufw allow from 100.64.0.0/10 to any port 52222 proto tcp

# 启用防火墙
sudo ufw enable

3. 安装 Fail2Ban (自动门禁)

对于那些依然能摸到你端口的恶意 IP,开启自动封禁。

Bash

sudo apt install fail2ban -y
sudo systemctl enable fail2ban
sudo systemctl start fail2ban

五、 常用维护指令表

任务命令
查看 DERP 是否运行`ps -ef
查看黑客暴力破解日志`sudo lastb
检查 Tailscale 延迟tailscale netcheck
查看被防火墙拦截的 IPsudo fail2ban-client status sshd

六、 总结与最佳实践

  1. 子网转发:若需访问家里的设备,请在家里路由器运行 tailscale up --advertise-routes=192.168.x.0/24,并在后台点选 Approve
  2. 防止白嫖:若希望只有自己的设备能用中转,请在 VPS 安装 Tailscale 客户端并 up 登录,随后在 derper 启动命令末尾加上 --verify-clients
  3. 双重验证:建议禁用 SSH 密码登录,改用 SSH Key(公私钥)登录。

这篇文章旨在提供一种平衡便利性与安全性的组网方案。在享受 30ms 低延迟的同时,请务必保持防火墙处于开启状态。