结论:证书链不对
得从 https://whatsmychaincert.com/?<your_domain_here>:14433 获取可用于转发流量的证书。
发文记录一下折腾一下午的结果,避免后来人踩坑。
绝大部分教程都差不多,从 acme.sh 申请证书然后启动 tailscale (这里直接用套件,不用重复映射 tailscaled.sock)
derp 部分也差不多,直接 docker 或者 go install 跑起来
docker run -d \
--restart=always \
--name derper \
-p 14433:14433 \
-p 3478:3478/udp \
-v /volume1/docker/derper:/app/certs \
-v /volume1/@appdata/Tailscale/tailscaled.sock:/var/run/tailscale/tailscaled.sock \
-e DERP_CERT_MODE=manual \
-e DERP_ADDR=:14433 \
-e DERP_DOMAIN=<your_domain_here> \
-e DERP_VERIFY_CLIENTS=true \
fredliang/derper:latest
然后很大概率遇到:
magicsock: [0xc0025c05a0] derp.Recv(derp-903): derphttp.Client.Recv connect to region 903 (Nas): x509: certificate signed by unknown authority
即便你移除验证:DERP_VERIFY_CLIENTS=false ,强制添加 "OmitDefaultRegions": true
参数也无法通过 derp 服务器中继流量,具体体现在 tailscale ping <node> 超时。
"derpMap": {
// "OmitDefaultRegions": true,
"Regions": {
"903": {
"RegionID": 903,
"RegionCode": "Nas",
"RegionName": "Guangzhou",
"Nodes": [
{
"Name": "Nas",
"RegionID": 903,
"DERPPort": 14433,
"HostName": <your_domain_here>",
},
],
},
},
},
百思不得其解,翻 issue 区还能见到境内未备案域名会遇到 TLS 阻断的问题。
终于翻到这个: https://forum.tailscale.com/t/ipados-unable-to-connect-to-custom-derp-tls-bad-certificate/1107/8 ,搞定!
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.