更新了 Ubuntu 20.04 及翻墙相关
作者:郑凯
Ubuntu 20.04 发布时心想不着急,等 mysql 和 nginx 的配套官方源也有了再说,记得以前要延后个把月,没想到我隔了一周再看已经全有新的源了,实际上要更早。心想 ubuntu 如今跟各厂商的沟通真是好。
shadowsocks-libev 直接是最新的 3.3.4,都不需要自己编了。
本来 Ubuntu 20.02 最大的动力是 wireguard,但其实中国跟老外的需求不太一样,中国的问题是,需要频繁更新跳板机和规则。结果 wireguard 还没试,发现现在的各种 DNS 软件有很多,发现个人的痛点主要靠 dnscrypt-proxy 就能解决,即可选多个上游、可以快速排查是否连通,就够了。而且 stamps这个想法很不错,把各种格式配置统一成用 base64 包装的形式,方便修改。
但是这个软件目前有个很傻缺的配置思路,默认上游必须用加密 DNS,如果有些域名要例外、必须使用别的 plain DNS(Forwarding),而不能反过来,上游用 plain DNS、例外用加密 DNS。在我看来,应该所有 DNS 都必须用 stamp 做成 alias name,所有需要指定 DNS 的地方都使用 alias name。
虽然配置逻辑上有些低级问题,但能用,所以不得不加个额外的 CoreDNS 再套一层,CoreDNS 的问题在于,配置文件的设计太蠢,除了字节少没有任何优点,而没法做到其自以为的简洁优雅,不容易看懂,却很容易写错。这个软件除非推翻目前的配置文件格式并重新设计(看起来不太可能),否则是没有前途的。
但好歹自己补了写脚本后,这两个软件目前都还算用着方便,其实我想要的就是,独立的可执行文件,方便调试和更新,但之前试过的大部分 DNS server 都是以服务形式存在,用着非常麻烦,以至于我之前不愿意打 DNS 的主意。
systemd 在调试过程中给我造成了无尽的麻烦(一开始直接 apt 装的 dnscrypt,被教育了),这个邪恶的软件从繁琐的文件命名上就一眼看出这是一群彻头彻尾混乱邪恶的傻逼写的,systemd 的正确用法是熟练掌握 sudo systemctl disable
,尽可能缩小它的势力范围。