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

推荐订阅源

Apple Machine Learning Research
Apple Machine Learning Research
Google DeepMind News
Google DeepMind News
小众软件
小众软件
GbyAI
GbyAI
酷 壳 – CoolShell
酷 壳 – CoolShell
F
Fortinet All Blogs
博客园 - 三生石上(FineUI控件)
B
Blog
量子位
B
Blog RSS Feed
Vercel News
Vercel News
Blog — PlanetScale
Blog — PlanetScale
Last Week in AI
Last Week in AI
博客园 - 叶小钗
MongoDB | Blog
MongoDB | Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
爱范儿
爱范儿
Jina AI
Jina AI
C
Check Point Blog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
IT之家
IT之家
H
Hackread – Cybersecurity News, Data Breaches, AI and More
云风的 BLOG
云风的 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