请教如何能自己建立一个私有的 DNS 服务器呢?

2014-05-09 22:03:09 +08:00
 ShunYea
如题,就像v2ex一样,建立一个:199.91.73.222或者178.79.131.110这样用途的DNS服务器?网上搜了一下,要么讲如何建立自己的域名解析服务器,要么是私网的。
我想自己建立一个自用,这几天国内大环境特殊,用运营商包括114等的DNS都无法访问app store和itunes.apple.com域名,均提示“错误,您所请求的网址(URL)无法获取”,换成4个8或者一些小众DNS就正常,但是众所周知的原因4个8不好用,经常性丢包,路由不对反而访问更慢,而小众DNS怕不安全,怕信息泄漏。
所以想到自己建立一个,不知道私人能不能做?要求就是解析大众网站要跟114等一样的高效,不说访问facebooke等能访问,但是最起码之前正常的app store能用。
请教能不能自己实现?
70328 次点击
所在节点    DNS
93 条回复
ShunYea
2014-05-10 15:47:38 +08:00
@princeofwales 嗯,就是这个手工列表麻烦。我参照这个弄了几个简单站点。http://www.myhack58.com/Article/54/93/2014/43249.htm
GPU
2014-05-10 16:09:23 +08:00
@ShunYea 4个8 是没有开启5353端口的
AntiGameZ
2014-05-10 16:11:57 +08:00
最傻瓜的我觉得就是PowerDNS REcursor了
ShunYea
2014-05-10 16:14:52 +08:00
@GPU 怪不得,我说怎么无法解析,4个8有哪个端口可用呢?
ShunYea
2014-05-10 16:29:59 +08:00
@GPU 但是为什么我找到一些教程直接就写有让用4个8的5353呢?
http://huxos.me/2013/01/18/fuck-unicom-dns-ad/
ShunYea
2014-05-10 16:33:40 +08:00
@slixurd
搞半天是不是直接不能用5353端口?得装个@JoeyChan 说的unbound来转发?参照这个?https://www.cokebar.info/archives/246
GPU
2014-05-10 19:49:21 +08:00
@ShunYea 反正我扫端口说了过滤了。
ShunYea
2014-05-10 20:47:28 +08:00
@GPU 好的,我换成opendns了。
Shieffan
2014-05-10 21:00:13 +08:00
@ShunYea opendns支持5353,而且掉包很低,8.8.8.8在我这儿包括阿里云上掉包掉的基本是没法用,被GFW照顾地不轻。

opendns跟四个8一样都支持edns,所以国内支持edns的cdn服务商能很好地适用。

如果你要使用其它国外dns的话,你也可以使用如下命令过滤掉墙的伪造响应包:
iptables -I INPUT -p udp -m udp --sport 53 -m u32 --u32 "0&0x0F000000=0x05000000 && 22&0xFFFF@16=0x5d2e0859,0xcb620741,0x0807c62d,0x4e10310f,0x2e52ae44,0xf3b9bb27,0xf3b9bb1e,0x9f6a794b,0x253d369e,0x9f1803ad" -j DROP
iptables -I INPUT -p udp -m udp --sport 53 -m u32 --u32 "0&0x0F000000=0x05000000 && 22&0xFFFF@16=0x3b1803ad" -j DROP
GPU
2014-05-10 21:19:33 +08:00
@ShunYea 嗯 。对于你不是直接用opendns 。区别是不大的。
princeofwales
2014-05-10 22:23:05 +08:00
@Shieffan 我只知道,用了opendns后,访问QQ,给了我北京网通的IP,而我用的是深圳电信啊
Shieffan
2014-05-10 23:26:32 +08:00
说了这要取决于CDN服务商是否支持edns,据我的测试,网宿,蓝汛,阿里云等一些比较大的CDN提供商是支持edns的,你可以dig一下七牛自己阿里云等的cdn。而腾讯,新浪这些主要服务于自己公司的自建CDN是否支持edns就看厂商心情了。
wanghui
2014-05-10 23:38:43 +08:00
搭车问一下,想把大量域名(数万)在本机被解析为127.0.0.1,应该怎么做比较有效?可以让dns解析去调用某个脚本判断是否绑定到本机吗?
Shieffan
2014-05-11 00:07:18 +08:00
@wanghui 如果没有特殊情况的话,写在hosts里不就行了么
zjgood
2014-05-11 09:11:00 +08:00
@Shieffan 搭车问下,我可以把某些pac里的国内网站域名全部添加到dnsmasq的配置里,用114来解析,这样来实现国内外分流,可行吗?
Shieffan
2014-05-11 09:24:39 +08:00
@zjgood 可以的,dnsmasq.conf里可以配置针对不同域名使用不同的上游dns服务器,你甚至可以配置对所有cn域名指定上游dns服务器。具体你可以搜索或者看下dnsmasq的文档。
librehat
2014-05-11 09:57:42 +08:00
还有更加轻量级的unbound,上游tcp查询就能解决DNS污染了。弄大一点缓存,多个线程,就足以应对大量的DNS请求了。
ShunYea
2014-05-11 13:36:37 +08:00
@Shieffan 我已经将4个8换opendns了。谢谢,你说阿里的DNS被照顾的不轻,我反倒觉得114也被照顾得不轻。现在国内不知道还有哪个DNS靠谱点,前几天发现个DNS派,不知道靠谱吗?感觉还没怎么照顾过。
ShunYea
2014-05-11 13:38:30 +08:00
@zjgood 我觉得是可以的。
ShunYea
2014-05-11 13:40:19 +08:00
@librehat 这个unbound我看过下,就是做端口转发用的吧?

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

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

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

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

© 2021 V2EX