重磅,Tailscale的Derp服务器原生支持自签发证书
重磅,Tailscale 的 Derp 服务器原生支持自签发证书
最近比较忙,鸽了很久 😄。如题的功能已经出了比较长的时间了。本篇文章简单讲讲有啥新的调整。
背景
在官方支持之前,大家普遍通过修改源码来支持的,也有不少大佬提供相关镜像。可能大家会有疑问,为啥会有这类需求?受限于部分网络环境下 LetsEncrypt 是被禁用的;还有一些场景,使用域名的方式需要 ICP 许可,跨云 IDC 会比较麻烦。
开源作者讨论 tailscale#issues/11776
相关 PR tailscale#pull/15208
新版本好处
- • 不需要域名
- • 不需要 ICP 许可/接入
- • 不需要证书
新版本部署
编译或下载二进制
如果你有 Go 的环境,可以使用如下命令
go install tailscale.com/cmd/derper@latest
当然也可以使用我编译好的二进制文件
wget https://c.ysicing.net/oss/tiga/linux/amd64/derper
将相关二进制复制到 /usr/bin/derper
, 并赋予执行权限
cp -a derper /usr/bin/derper
chmod +x /usr/bin/derper
手动签发 IP 证书
示例是你的 derper 公网 ip
export DERP_IP="1.1.1.1"
mkdir /etc/derper
openssl req -x509 -newkey rsa:4096 -sha256 -days 3650 -nodes -keyout /etc/derper/${DERP_IP}.key -out /etc/derper/${DERP_IP}.crt -subj "/CN=${DERP_IP}" -addext "subjectAltName=IP:${DERP_IP}"
手动启动 derper
derper --hostname="1.1.1.1" -certmode manual -certdir /etc/derper
启动完成会提示如下信息
2025/04/05 20:00:25 Using self-signed certificate for IP address "1.1.1.1". Configure it in DERPMap using: (https://tailscale.com/s/custom-derp)
{"Name":"custom","RegionID":900,"HostName":"1.1.1.1","CertName":"sha256-raw:970d3fae5ccd1480ad5e1017597c91f33d4bf0ef5bbeb5f54a2c20c0156ca081"}
然后可以打开浏览器访问这个网址看看,需要放行 80
,443
,3478
, 其中 3478 是 UDP 端口。
配置 ACL
方便显示,格式化如下:
{
"RegionID": 910,
"RegionCode": "yxvm",
"RegionName": "yxvm",
"Nodes": [
{
"Name": "yxvm",
"RegionID": 910,
"HostName": "46.x.x.x",
"IPv4": "46.x.x.x",
"CertName":"sha256-raw:8a81f6658a7e1830fbaf363b72427f975d1f033d1616bf603cec3defa7e52391",
"InsecureForTests": true
}
]
}
保存之后,使用 tailscale netcheck
测试
* DERP latency:
- yxvm: 118.8ms (yxvm)
总结
如果你之前就使用自签证书的话,更新一下二进制就行