Go 写的 HttpDns 服务,抵抗运营商邪恶的 DNS 劫持污染,并带有缓存功能

2015 年 8 月 22 日
 zhengji

一个用 Go 写的 HttpDns 服务, 为了抵抗运营商邪恶的 DNS 劫持污染,并带有缓存功能 。

如何编译

cd $GOPATH;
git clone http://github.com/zheng-ji/goHttpDns;
cd src;
make

如何配置

# redis connect config
redis:
  host: 127.0.0.1:6379
  db: 0

# seelog config 
log_config: ../etc/logger.xml

# ip & port & answer cache TTL
listen: 0.0.0.0
port: 9999
ttl: 100

# DnsServer lists
dnsservers:
    - 202.96.128.86
    - 202.96.128.166
    - 8.8.8.8
    - 8.8.4.4

如何运行

执行 make操作后,在bin目录下就会生成 可执行文件 httpDns

zj@zheng-ji:$ ./httpDns --help
Usage of ./httpDns:
  -c="../etc/conf.yml": conf file , default is ../etc/conf.yml

./httpDns -c="your_conf_yaml_path"
You can also use supervisor to start your sever

如何使用

$ curl http://127.0.0.1:9999/d?url=http://zheng-ji.info

Resp:
{
    "c":0,
    "targetip":"http://106.185.48.24",
    "host":"zheng-ji.info",
    "msg":""
}

第三方依赖包

Thanks to:

* [launchpad/goyaml]( https://launchpad.net/goyaml )
* [cihub/seelog](github.com/cihub/seelog )
* [miekg/dns](github.com/miekg/dns )
* [redisgo/redis](github.com/garyburd/redigo/redis")
* [hoisie/web](github.com/hoisie/web )

我们需要go get 以上包

7417 次点击
所在节点    分享创造
13 条回复
aspirin2d
2015 年 8 月 22 日
超赞!回家就去 star
invite
2015 年 8 月 22 日
url=http://zheng-ji.info
"targetip":"http://106.185.48.24",

参数是 URL ? 这样做是怎么考虑?难道 DNS 还得看 HTTP 还是 TCP 还是 UDP ?
zhengji
2015 年 8 月 22 日
@invite 其实是为了获取该域名的真正 IP ,背景是这样的, http://www.zmke.com/i/8705.html
invite
2015 年 8 月 22 日
@zhengji 只看到关键字 域名、 IP ,那关 http 什么事?画蛇添足啊?
kofj
2015 年 8 月 22 日
先关注
ivmm
2015 年 8 月 22 日
火钳留名,拿去玩了
rrfeng
2015 年 8 月 22 日
这个首先要有超级稳定可靠的 httpDNS server
如果没有就十分鸡肋……
onlyice
2015 年 8 月 22 日
但是远程服务器解析出来的结果不一定是最优的吧?适用的场景是什么呢
twitterpig
2015 年 8 月 22 日
可惜不会!!!感谢!
zhengji
2015 年 8 月 22 日
@onlyice 比如 a.com 因为某些原因被劫持到非预期的 IP ,我们可以在每次发起请求的时候,访问这个服务解析得到 a.com 的真正 IP
hdcola
2015 年 8 月 24 日
http 的加入确实多余了, dns 时只看域名,与协议无关,不过楼主做的不错,支持
a2ex
2015 年 8 月 24 日
甄姬
RainSlide
2015 年 8 月 25 日
做 exe 吗
一文件夹杂碎我们也要

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

https://v2ex.xtra.eu.org/t/215117

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

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

© 2021 V2EX