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

推荐订阅源

博客园_首页
H
Help Net Security
量子位
The Cloudflare Blog
博客园 - Franky
博客园 - 聂微东
博客园 - 司徒正美
Last Week in AI
Last Week in AI
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Apple Machine Learning Research
Apple Machine Learning Research
宝玉的分享
宝玉的分享
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
有赞技术团队
有赞技术团队
罗磊的独立博客
GbyAI
GbyAI
雷峰网
雷峰网
T
The Blog of Author Tim Ferriss
Martin Fowler
Martin Fowler
S
SegmentFault 最新的问题
美团技术团队
阮一峰的网络日志
阮一峰的网络日志
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
U
Unit 42
MongoDB | Blog
MongoDB | Blog

方永、南天紫雲

linux透明代理 技术的边界 停机问题通俗说明 Rust与oracle、redis集群的纠结 学习能力的增长 微信调试的原语 mac外接移动硬盘安装ArchLinux linux的死机问题 linux下全键盘操作 漂亮又好用的bspwm linux本机透明代理 ssh、mosh、autossh linux不能待机又一例 从WordPress切换到Hugo 折腾电脑开机 linux系统QQ新思路 Arch Linux的字体渲染 svn管理之submin OpenWrt自动fucking墙記錄 二维码(qrcode)名片的一些事儿 用lua nginx module搭建一个二维码(qr code)生成器 CentOS 7 安裝註記 php程序連接MySQL时只能127.0.0.1而localhost無法連接的問題 ThinkPad之FAN_ERROR、hi fi聲卡 jetty多端口部署 OpenWrt簡單暴力限網 linux中cron之PATH变量 OpenWrt的WDS無線橋接模式 再敘OpenWrt下的rtl8187無線中繼 sed之模擬tail
Tailscale自建DERP服务节点
zola · 2023-08-19 · via 方永、南天紫雲

Tailscale 是开源的,也很好用,就是其中转节点(DERP) 都在国外,所以速度还是慢了点。

有台闲置的国内主机,想着利用起来,搭个DERP,加快Tailscale的访问速度。

搭完后发现目前网上搭建DERP的教程过于繁琐,一些关键之处也没有说清楚,于是记录一下过程。

DERP 的工作方式

DERP 提供了中转和STUN两种服务,STUN是可选的,有配置项可以关闭,如果需要开启,就得占用一个UDP端口; 而中转服务的传输层是websocket,只需放在常见的nginx等代理服务之后即可,无需在防火墙开启端口。

建议最好开启STUN,这里观察到的现象是,如果没有开启,在tailscale netcheck里自建节点的 ping 值是不显示的。

安装、配置、运行

  1. 安装
go install tailscale.com/cmd/derper@main
cp ~/go/bin/derper /usr/local/bin
  1. 运行
/usr/local/bin/derper -a=:1234 -stun-port=12345 -c=/var/lib/derper/derper.key
  1. nginx 的部分配置
location / {
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "Upgrade";
    proxy_set_header Host $http_host;
    proxy_pass http://127.0.0.1:1234;
}

记得配好https

添加DERP节点

在浏览器打开 Tailscale 管理页面,切换到 Access Controls,添加如下配置, "derpMap" 和 "groups", "hosts" 等同一级。

"derpMap": {
		"Regions": {
			"900": {
				"RegionID":   900,
				"RegionCode": "myderp",
				"RegionName": "国内01-shanghai",
				"Nodes": [
					{
						"Name":     "1",
						"RegionID": 900,
						"HostName": "derp.xxx.com",
						"STUNPort": 12345,
					},
				],
			},
		},
	},

验证

添加完DERP后,用 tailscale netcheck 就能看到,等待片刻,或者尝试重启 tailscaled ,Tailscale 就 会自动选取ping值最低的DERP节点。

也可以使用 derpprobe 去验证,若没有报错,说明配置是正确的。

参考

  1. Custom DERP Servers