有没有能够实现 dns 查询转 httpdns 查询的程序?

2016-01-14 08:54:20 +08:00
 bingal

现在 dnspod 和阿里都推出了 httpdns 解析服务,简单说就是通过 http 请求的方式来获取 dns 的解析结果,可以提供加密方式查询,而且是基于 80 端口,好处还是很明显的。目前适用场景主要是用于 app 等完全可自己写代码实现网络请求的情况,从而避免被劫持。

我在想日常使用的时候,是否有什么方案,可以本地架设一个 dns 服务,但是实际上把 dns 查询转换成加密的 http 请求,去 dnspod 或者阿里的 httpdns 服务查询,查询到结果之后再以正常 dns 响应返回。

4460 次点击
所在节点    DNS
17 条回复
fangdingjun
2016-01-14 09:08:40 +08:00
自己写吧,使用 golang 半个小时就能实现这个需求
tdifg
2016-01-14 09:51:52 +08:00
链接量不大的话还是很简单的
思路不错,以后做一个
MiguelValentine
2016-01-14 11:35:29 +08:00
ttl 上去了。。哪怕是 30ms 都是很难受的。
MiguelValentine
2016-01-14 11:36:19 +08:00
写错了。。不应该叫 ttl 不要纠结细节
paw
2016-01-14 12:47:01 +08:00
个人使用不考虑性能的话 太简单了
楼主想法我用 python 做过,客户端+服务端总计不到 50 行代码
Strikeactor
2016-01-14 13:02:35 +08:00
不做缓存绝对会卡哭
bingal
2016-01-15 11:28:10 +08:00
@paw 有代码分享一个吗?或者给个思路?对性能要求不高,就是想平时自己用。
bingal
2016-01-15 11:29:24 +08:00
@Strikeactor 跟缓存本身并不冲突,完全可以考虑把 httpdns 查询到到结果缓存到本地,必要可以增加 ttl 的值
bingal
2016-01-15 11:30:22 +08:00
@fangdingjun 有没有例子?很想学习下。或者具体的思路。如果实现了,开源出来。
bingal
2016-01-15 11:31:07 +08:00
@MiguelValentine 如果本地把查询结果缓存下来,主动增加 ttl ,应该也 ok 吧?
fangdingjun
2016-01-15 12:54:42 +08:00
思路很简单, 接收 dns 请求,然后转成 http 请求,把 http 的结果转成 dns 格式发回客户端

这里是一个 golang 的简单例子
https://gist.github.com/fangdingjun/d8c0679ffeddd21b7821
bingal
2016-01-16 16:13:37 +08:00
@fangdingjun 太感谢了,研究下
Lentin
2016-01-20 10:49:12 +08:00
bingal
2016-01-20 15:27:11 +08:00
@Lentin 好项目,收藏先
suikator
2016-01-22 17:22:27 +08:00
@Lentin 已 start
Lentin
2016-01-23 15:21:16 +08:00
@suikator 这个不是我写的 orz
Lentin
2016-01-23 15:22:30 +08:00
@bingal
@suikator
还有一个老外改进了这个程序
https://github.com/fantuz/DNSProxy

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/250611

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX