2020 年的时候 OP 为了跳槽学了 go ,然后写了一个用于防止 dns 污染的小工具:ts-dns
,还在 V2EX 上发了帖子:用 Go 写了一个老少皆宜的 DNS 分流 /转发器:TS-DNS - V2EX
虽然后续迭代了一些版本、而且 OP 在使用时也发现有可改进的地方,但困于初版糟糕的代码结构,项目在 OP 跳槽到新公司后不久就停滞了。最近偶然发现有人在催更新功能,于是索性花时间整体重构了一遍,并发布了 v1.0.0 版,主要是移除了初版所谓的 [半智能污染检测] 、增加了解析重定向功能。
ts-dns 的定位是灵活快速的 DNS 分组转发器:
整体架构也是比较简单的:
查找 hosts -> 查找缓存 -> 匹配规则 -> 指定 group 处理 -> 重定向 -> 设置缓存
配置文件示例:
listen = ":53"
[groups]
[groups.clean]
dns = ["223.5.5.5", "114.114.114.114"]
concurrent = true
[groups.dirty]
dns = ["208.67.222.222:5353", "176.103.130.130:5353"]
gfwlist_file = "gfwlist.txt"
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.