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

2015-08-22 13:20:54 +08:00
 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 以上包

6337 次点击
所在节点    分享创造
13 条回复
aspirin2d
2015-08-22 14:15:17 +08:00
超赞!回家就去 star
invite
2015-08-22 16:56:04 +08:00
url=http://zheng-ji.info
"targetip":"http://106.185.48.24",

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

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

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

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

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

© 2021 V2EX