惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

美团技术团队
T
The Blog of Author Tim Ferriss
月光博客
月光博客
阮一峰的网络日志
阮一峰的网络日志
Engineering at Meta
Engineering at Meta
量子位
I
InfoQ
Jina AI
Jina AI
Microsoft Security Blog
Microsoft Security Blog
H
Help Net Security
H
Hackread – Cybersecurity News, Data Breaches, AI and More
G
Google Developers Blog
J
Java Code Geeks
Recent Announcements
Recent Announcements
aimingoo的专栏
aimingoo的专栏
小众软件
小众软件
V
V2EX
腾讯CDC
P
Proofpoint News Feed
A
About on SuperTechFans
爱范儿
爱范儿
U
Unit 42
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Last Week in AI
Last Week in AI

少数派

派早报:Google 发布 Fitbit Air 等 - 少数派 「新人报到」確認需求,再開始 - 少数派 从 SOLO 独立开发者社区,我看到了越来越多开发者开始做自己的产品 - 少数派 我怎么管理那些"不常做,但总会忘"的生活事项 - 少数派 人形机器人量产元年,数据才是具身智能的“生死线” - 少数派 BuhoLaunchpad 高度还原 Mac 启动台:开发历程与思考 - 少数派 五年陪伴依然不舍,DIY 换壳后让罗技 MX Master 3 继续服役 - 少数派 新玩意 240|少数派的编辑们最近买了啥? - 少数派 一日一技|为什么你应该关闭 iOS 的键盘声音 - 少数派 我做了个插件和 Skills,一键提取任何网站的设计规范 Design.md - 少数派 住在三四线城市的你,该开始录播客了 - 少数派 甘南秘境,大白高国 - 少数派 AI的审美:谁让把我变成川内倫子 - 少数派 返工怎能不烦恼,打工人片单总有一部是你的「嘴替」 - 少数派 为了让「上厕所」更健康,我做了一个小工具 - 少数派 AI + Skill,能够让生成的文章去除 AI 味吗? - 少数派 新玩意|韶音OpenDots ONE 耳夹式耳机 - 少数派 《美满》| 在每一个春天的晚上相爱(362) - 少数派 新玩意|优篮子 PS01 MagSnap 磁吸支架 - 少数派 自我整合手记 | 我开始早睡了:用稳定规则,为自由托底 - 少数派 用龙虾(OpenClaw)两个多月,我最深的12个体会 - 少数派 听歌时间到,12 张你可能错过的 2025 华语乐坛好专辑 - 少数派 承诺能追吗 - 少数派 macOS 26启动台没了? 我做了个不一样的App启动器 - Keboard - 少数派 《四海为家的人》| INTJ对话INTJ(361) - 少数派 你发过的那些黑历史,是时候一次清干净了 - 少数派 新玩意:安安静静玩,越玩越专注:计客密码机 - 少数派 iPad 用户首次体验 Android 平板:vivo Pad6 Pro - 少数派 数据逻辑强 - 少数派 极北行+ | 一路向北,探访日本至北之地 | 001 - 少数派
搭建 Tailscale DERP服务(IPv4)使Tailscale访问网络速度加...
2026-01-09 · via 少数派

前言

注册Tailscale 完成,各个设备登录之后发现访问NAS 速度过慢,Tailscale的默认中转节点全都在境外,延迟很高,但官方提供了自建中转服务器的方法https://tailscale.com/kb/1118/custom-derp-servers

准备工作
 

Tailscale 账号,并在你的设备上安装客户端并登录(windows,MacOS,Linux,openwrt,Android,iOS等均支持)

一台有公网IP的云服务器,最好是境内的。如果没有,可以去买一个服务器,推荐买个云厂商的99元轻量服务器即可。(阿里云、腾讯云、京东云、火山引擎)等

将公网服务器的防火墙打开如下端口及对应协议:33445(TCP),33446(TCP), 3478(UDP)

以阿里云为例,阿里云上Ubuntu 服务器服务器内部防火墙是未启用的,只需在安全组中放开相应端口。

开始部署

Step1

SSH  连接服务器(我的主机是系统版本是 Ubuntu22.04,如果不一样可以参考思路,但方式都是类似的)下载所需依赖软件包

# 更新软件包列表,如果权限不够 命令前加sudo 
apt update

#升级系统,如果权限不够 命令前加sudo
apt upgrade -y

# 安装依赖软件包,wget git openssl curl
apt install -y wget git openssl curl

Step2

安装go,使用wget直接从go官网下载安装包

# 下载Golang
wget https://go.dev/dl/go1.25.5.linux-amd64.tar.gz

如果wget下载安装包报错,是因为尝试通过 SSL/TLS 加密协议连接目标服务器时失败了,无法建立安全的网络连接,可以使用--no-check-certificate  跳过证书验证环节,如果第一步可以下载忽略这一步,如果这一步还无法下载可以直接在https://go.dev/dl/ 寻找go1.25.5.linux-amd64.tar.gz 这个安装包下载。

# 下载Golang,跳过证书验证环节
wget --no-check-certificate https://go.dev/dl/go1.25.5.linux-amd64.tar.gz

Step3

配置go 环境

# 删除旧的Golang
rm -rf /usr/local/go

#解压新的内容
tar -C /usr/local -xzf go1.25.5.linux-amd64.tar.gz

# 配置环境变量
export PATH=$PATH:/usr/local/go/bin

# 检查Golang是否安装成功
go version

# 配置Golang环境(国外服务器可跳过)
go env -w GO111MODULE=on
go env -w GOPROXY=https://goproxy.cn,direct

Step4

安装Tailscale Derper

# 安装Tailscale Derper
go install tailscale.com/cmd/derper@main

# 创建 /etc/derp 文件夹
mkdir -p /etc/derp/

#赋予777权限
chmod 777 /etc/derp/

# 进入下载目录
 cd /root/go/pkg/mod/tailscale.com@v1.93.0-pre.0.20260108021206-522a6e385ef2/cmd/derper/

需修改cert.go文件,进入目录后使用 vi cert.go,找到红框中的代码,然后将绿框的三行内容注释掉(golang 是双斜线 「//」)

找到对应行之后输入 i 进入 insert 模式,然后双斜线注释后再按 esc 键输入:wq (保存并退出编辑)

注意:也许这个文件保存时会报错说它是只读文件,所以你可以强制退出来(esc 键之后 :q!)之后 sudo chmod 777 ./cert.go也可以输入:wq! (强制保存并退出编辑)

修改完成后,继续执行命令

# 编译文件到之前创建的文件夹
go build -o /etc/derp/derper

# 生成SSL证书
openssl req -x509 -newkey rsa:4096 -sha256 -days 3650 -nodes -keyout /etc/derp/derp.myself.com.key -out /etc/derp/derp.myself.com.crt -subj "/CN=derp.myself.com" -addext "subjectAltName=DNS:derp.myself.com"

# 创建derp.service
sudo sh -c "cat > /etc/systemd/system/derp.service <<EOF
[Unit]
Description=TS Derper
After=network.target
Wants=network.target
[Service]
User=root
Restart=always
ExecStart=/etc/derp/derper -hostname derp.myself.com -a :33445 -http-port 33446 -certmode manual -certdir /etc/derp
RestartPreventExitStatus=1
[Install]
WantedBy=multi-user.target
EOF
"

# 启动服务
systemctl enable derp
systemctl start derp

目前没有启用参数 -verify-clients ,增加验证环节,只有服务器上登陆的Tailscale账号可以使用此derper节点

修改 derp.service文件,vi /etc/systemd/system/derp.service

[Unit]
Description=TS Derper
After=network.target
Wants=network.target
[Service]
User=root
Restart=always
ExecStart=/etc/derp/derper -verify-clients -hostname derp.myself.com -a :33445 -http-port 33446 -certmode manual -certdir /etc/derp
RestartPreventExitStatus=1
[Install]
WantedBy=multi-user.target

检查是否设置成功

在启动derp后可以在浏览器中进入https://IP:PORT,如果看到以下网页则说明成功。其中IP是第一步中记录的服务器公网IP,PORT是derp.service中设置的,默认为33445

Step5

在服务器上安装Tailscale

#运行自动安装脚本
curl -fsSL https://tailscale.com/install.sh | sh

#启动tailscale并登陆
tailscale up

进入登陆网页登陆Tailscale账号,登录完成后重启derp服务

#重新加载 systemd 守护进程配置
systemctl daemon-reload

#重启derp服务
systemctl restart derp

Step6

Tailscale ACL修改

前往Tailscale管理端的https://sspai.com/link?target=https%3A%2F%2Flogin.tailscale.com%2Fadmin%2Facls%2Ffile页面,进行修改在access control里的'ssh'之前粘贴以下内容:

"derpMap": {
		//"OmitDefaultRegions": true,
		"Regions": {
			"900": {
				"RegionID":   900,
				"RegionCode": "test",
				"RegionName": "Test Derper",
				"Nodes": [
					{
						"Name":             "900a",
						"RegionID":         900,
						"DERPPort":         33445, //更换为自己的PORT
						"IPv4":             "IP", //这里更换为自己的PI
						"InsecureForTests": true,
					},
				],
			},
			"1":  null,
			"2":  null,
			"3":  null,
			"4":  null,
			"5":  null,
			"6":  null,
			"7":  null,
			"8":  null,
			"9":  null,
			"10": null,
			"11": null,
			"12": null,
			"13": null,
			"14": null,
			"15": null,
			"16": null,
			"17": null,
			"18": null,
			"19": null,
			//"20": null,
			"21": null,
			"22": null,
			"23": null,
			"24": null,
			"25": null,
		},
	},

检查是否配置成功

#检查状态
tailscale netcheck

如果在DERP latency中出现自己刚才设置的服务器Test Derper,即为安装成功。

ALL DONE!!!