You deserve nice things!

You deserve nice things!
Photo by Chris Curry / Unsplash

果然, Tailnet 部起来两天就吃瘪了. 大陆网友就不配拥有美好的东西. 晚点再写 workaround 吧, 折腾了两天, 心累.


Update: 2025/07/31

总算有时间继续写了。基本问题是我忘了大陆云服务商会拦截未备案域名的访问。上一篇里随手拿闲置域名作为 Coordination Server 的访问地址,在第二天就出现了节点访问不到的情况。一开始以为是 DERP 出了问题。后来想起来,因为我的 Coordination Server 在大陆。而且用了一个没有备案过的域名。由于 TailScale 的客户端需要大量访问 Coordination Server 来获取最新的 Tailnet 中各个节点的信息,就会造成一个状况,一个未备案的域名,解析地址在大陆,又有大量来自大陆的访问。Ban 了没跑。

想起来这个限制之后,果断把 Coordination Server 挪到了东京的服务器。但是这样也会产生一个问题。TailScale 在大陆没有 DERP 节点。于是在我自建的 Tailnet 的两个节点之间,如果没办法直连的话,就必须通过 TailScale 的 DERP 节点来中转,而这个访问的延迟是不可控的。那么,自建 DERP 节点的事情就得提上日程了。但是这个时候又遇上另一个问题。当时,也是就是四月的时候,TailScale 对于自建 DERP 的连接其实是有个 bug 的。当时版本的 TailScale 有提到如果使用自建 DERP,而且没办法用域名来访问的话,需要自己生成一个基于 IP 的证书,然后把证书的指纹配置到 HeadScale 的 DERP 配置里去。但是呢,这种情况下,DERP 发送给客户端的证书会有两个。而客户端里有一段代码严格验证了只能有一个证书。然后就造成了客户端永远无法验证自建的 DERP。找解决方案的时候看到了这么一篇,定位到这个 bug 的文章。本来以为官方能很快合并这个修复,并且发布新的版本,结果拖了非常久。与此同时呢,为了起码能用,开启了 insecutrForTest。这样 TailScale 的客户端就会跳过自签证书的验证,也就跳过了检查证书数量的问题。

一直到最近,也没重新去部署和配置这一整套。究其原因一是确实没有很连贯的时间来折腾这些东西,一是即使把 Coordination Server 搬到了东京服务器,访问依然会遭受一些干扰。

为什么标题起这个名字呢。但凡 TailScale 能正常在大陆运营我也不需要自己去折腾这一大堆。但凡个人能自由建站也不会遇到访问被阻断的问题。真就是,在小破球上其他地方可以轻易部署安心用的各种好用的东西,在大陆都会遇到各种傻逼问题。