使用白嫖的阿里云9年服务器(alpine,免域名)搭建Tailscale Derp
使用白嫖的阿里云9年服务器(alpine,免域名)搭建Tailscale Derp
参考
在满足一定条件(比如双方都拥有公网 IPV6 地址)的情况下, Tailscale 负责打洞实现 P2P 直连,否则将走官方提供的中转节点(称为 Derp 服务器)。 但是大部分情况下,官方的 Derp 服务延迟很高(最近的是 HongKong 和 Tokyo 节点),此时就需要一个自建 Derp 中转服务。
-
使用 Tailscale 的机器环境变量中一定不要设置全局代理
-
不推荐 Derp 节点加入 Tailscle 网络,会影响到 IPTABLES 规则
alpine部署tailscale的derp节点
编译自己的derp(推荐在性能较好的机器上编译)
这里我们对 Derp 官方的 GO 源码稍做改动,实现无需域名,直接通过公网服务器的 IP 地址来访问 Derp 服务。
安装 GO 环境(以archlinux为例)
1 | sudo pacman -S go |
然后获取 Derper 源码
1 | git clone https://github.com/tailscale/tailscale.git --depth=1 |
进入到 tailscale/cmd/derper
,修改 cert.go
文件中的 getCertificate
函数
1 | func (m *manualCertManager) getCertificate(hi *tls.ClientHelloInfo) (*tls.Certificate, error) { |
编译这个改动过的 Derper(需要静态编译,alpine用的不是glibc)
1 | CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o ./derper . |
把编译出来的,当前目录下面的derper
文件,上传到alpine机器的/usr/local/bin/
目录下面,并赋予x
权限
1 | doas a+x /usr/local/bin/derper |
配置 SSL 证书
安装 OpenSSL
1 | doas apk add openssl |
使用 OpenSSL 配置 SSL 证书
1 | mkdir /usr/local/.ssl |
其中的 derp.test.com
是你的 Derp 服务域名,可以自行替换成任意域名。
配置 Derp 服务
创建并编辑 /etc/init.d/derper
文件:
1 |
|
在阿里云控制面板设置防火墙,放行 12345
,33446
,3478
的tcp与udp协议,授权对象是所有IPv4(0.0.0.0/0)
启用并启动 Derp 服务
1 | doas rc-update add derper default |
访问 IP:12345 这个地址看是否生效,会看到一个 Derp 相关的网页
配置Tailscale
在 Tailscale 控制台管理界面 Access Control 中配置 Derp 服务的地址
直接在ssh
配置前面加上这一段配置
1 | "derpMap": { |
然后点击Save
更换derp节点需要客户端重启tailscale才能生效,不然使用的时候还是会用之前的derp节点
在客户端查询网络情况
1 | tailscale netcheck |
- 标题: 使用白嫖的阿里云9年服务器(alpine,免域名)搭建Tailscale Derp
- 作者: E= γ mc²
- 创建于 : 2024-09-06 15:00:36
- 更新于 : 2024-09-06 15:00:38
- 链接: https://redefine.ohevan.com/2024/09/06/使用白嫖的阿里云9年服务器(alpine,免域名)搭建Tailscale Derp/
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。