结论:证书链不对
得从 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 ,搞定!
1
mytsing520 2023-10-31 20:20:41 +08:00
踩过坑,后面看到 unknown authority 就大概率知道是证书链的问题了
也可以到 myssl.com 查找证书链 |
2
jswh 2023-10-31 22:17:03 +08:00
遇到过一样的问题,怎么都调不好。最后通过添加
1. OmitDefaultRegions": true, 2.Nodes 里面添加 "InsecureForTests": true, 直接强制跳过证书检查了。 反正自用,无所谓了。 |
3
ferock 2023-10-31 23:13:18 +08:00 via iPhone
let 下载的证书,需要再附加中间证书到同一个文本
|
5
evemoo OP 还有另外一个坑:通过 docker 部署 fredliang/derper ,即便访问域名显示正常、stun 服务器能通,但是其他需要中转的客户端就是连不上
tailscale ping pi -> timeout 而通过 go 安装的形式启动的则一切正常 #!/bin/bash killall derper sleep 1 derper -c /volume1/docker/derper/derper.conf -certmode manual -certdir /volume1/docker/derper/ -hostname <your_domain> -a :14433 -http-port -1 -verify-clients 只要 NAS 上面在有 tailscaled 服务即可,不需要挂载 sock 将脚本加入到定时任务,每天凌晨重启一次即可,目前已稳定运行一个月 |
6
evemoo OP 再补充一个,如果群晖开了 IPV6 且有公网地址,又会出现节点延迟正常(不出现 can not connect to xxx DERP )但就是无法中转的问题(坑真多啊
参考: https://github.com/tailscale/tailscale/issues/3110 ,在自建节点添加 "IPv6": "none" 即可 |