现在 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 1
思路很简单, 接收 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 2
|
17
Lentin 2016-01-23 15:22:30 +08:00
|