
现在 dnspod 和阿里都推出了 httpdns 解析服务,简单说就是通过 http 请求的方式来获取 dns 的解析结果,可以提供加密方式查询,而且是基于 80 端口,好处还是很明显的。目前适用场景主要是用于 app 等完全可自己写代码实现网络请求的情况,从而避免被劫持。
我在想日常使用的时候,是否有什么方案,可以本地架设一个 dns 服务,但是实际上把 dns 查询转换成加密的 http 请求,去 dnspod 或者阿里的 httpdns 服务查询,查询到结果之后再以正常 dns 响应返回。
1 fangdingjun 2016-01-14 09:08:40 +08:00 自己写吧,使用 golang 半个小时就能实现这个需求 |
2 tdifg 2016-01-14 09:51:52 +08:00 链接量不大的话还是很简单的 思路不错,以后做一个 |
3 MiguelValentine 2016-01-14 11:35:29 +08:00 ttl 上去了。。哪怕是 30ms 都是很难受的。 |
4 MiguelValentine 2016-01-14 11:36:19 +08:00 写错了。。不应该叫 ttl 不要纠结细节 |
5 paw 2016-01-14 12:47:01 +08:00 个人使用不考虑性能的话 太简单了 楼主想法我用 python 做过,客户端+服务端总计不到 50 行代码 |
6 Strikeactor 2016-01-14 13:02:35 +08:00 不做缓存绝对会卡哭 |
8 bingal OP @Strikeactor 跟缓存本身并不冲突,完全可以考虑把 httpdns 查询到到结果缓存到本地,必要可以增加 ttl 的值 |
9 bingal OP @fangdingjun 有没有例子?很想学习下。或者具体的思路。如果实现了,开源出来。 |
10 bingal OP @MiguelValentine 如果本地把查询结果缓存下来,主动增加 ttl ,应该也 ok 吧? |
11 fangdingjun 2016-01-15 12:54:42 +08:00 思路很简单, 接收 dns 请求,然后转成 http 请求,把 http 的结果转成 dns 格式发回客户端 这里是一个 golang 的简单例子 https://gist.github.com/fangdingjun/d8c0679ffeddd21b7821 |
12 bingal OP @fangdingjun 太感谢了,研究下 |
13 Lentin 2016-01-20 10:49:12 +08:00 |
17 Lentin 2016-01-23 15:22:30 +08:00 |