Headscale下篇-自定义中转derper
内容提要
derper是tailscale的中转服务,可以自己搭建或使用tailscale提供的节点。搭建过程需要申请域名和证书,可以使用acme.sh工具。启动derper需要使用docker命令,并修改headscale和derper的配置文件。
延伸解读
自建 derper 的适用场景与权衡
文章指出,使用 Tailscale 官方 derper 节点在晚高峰可能较卡,自建可改善体验,但配置比基础设置更复杂。自建需要域名、证书和额外服务维护,适合对网络质量有要求且愿意投入时间的技术用户。若仅偶尔使用或对延迟不敏感,官方节点可能更省事。
证书申请中的关键细节
使用 acme.sh 申请证书时,可通过 webroot 或 DNS 认证。若用 DNSPod 的 DNS 认证,需使用其原有的 API Token,而非腾讯云统一凭证。证书生成后需将 .cer 文件改为 .crt,且文件名必须与域名完全一致,如 xxx.hello.com.crt,否则 derper 可能无法识别。
安全验证机制与启动检查
derper 本身缺乏认证逻辑,因此启动时通过映射本机 tailscaled.sock 并设置 DERP_VERIFY_CLIENTS=true,让同一 headscale 服务的客户端进程验证加入中转的节点。启动后可用 docker logs 查看日志,但更直接的验证方式是访问域名加端口,若显示特定页面则代表服务正常。
headscale 配置的要点
在 headscale 配置中,需定义 regions 和 nodes。regionid 表示区域 ID,一个区域可包含多个 node,node 的 name 是唯一识别码。ipv4 可留空,有 hostname 即可。stunonly 设为 false 表示同时支持 STUN 和 DERP。最后需注释掉原有的 urls,并添加 derper 配置文件的路径。
Q&A
什么是derper,它的主要功能是什么?
derper是tailscale的中转服务,可以自建或使用tailscale提供的节点。
搭建derper需要哪些步骤?
搭建derper需要申请域名和证书,使用acme.sh工具,并通过docker命令启动服务。
如何申请证书以搭建derper?
可以通过webroot或dns认证方式申请证书,使用acme.sh工具进行操作。
使用dnspod进行dns认证时需要注意什么?
需要使用dnspod原来的api token进行验证,并将其设置为环境变量。
如何确保derper与tailscale客户端的安全连接?
需要在本机运行tailscale客户端,并将其进程映射到docker中,以验证同一headscale服务的节点。
如何检查derper服务是否正常启动?
可以通过访问域名加端口的地址来检查,如果能正常显示则代表服务已启动。