1
heiher 2014-05-09 22:06:43 +08:00
有国外的服务器,装个 dnsmasq 跑都服务就行了。
|
2
LazyZhu 2014-05-09 22:12:41 +08:00
你要的其实是递归DNS服务器,推荐使用MaraDNS
|
5
LazyZhu 2014-05-09 22:17:03 +08:00
|
6
Shieffan 2014-05-09 22:22:57 +08:00
楼上都说啦,就是dnsmasq。
dnsmasq.conf里可以配置server=208.67.220.220#5353,然后就能避免dns污染了。 或者iptables过滤掉那几个投毒ip |
8
dianso 2014-05-09 22:29:55 +08:00
bind dns就是一套完整的解决方案
|
9
ShunYea OP @Shieffan 再请教下,我怎么知道那些是污染的IP呢?你这个写法:server=208.67.220.220#5353就是屏蔽这个污染IP的意思吧?
|
10
Shieffan 2014-05-09 22:50:51 +08:00 via iPhone 1
@ShunYea 这个表示你的上游递归服务器地址,这里写的是opendns,gfw目前只监听53端口的请求,所以如果你向上游的5353端口请求解析,就能逃过gfw的dns污染。
投毒ip表 http://zh.wikipedia.org/zh-cn/%E5%9F%9F%E5%90%8D%E6%9C%8D%E5%8A%A1%E5%99%A8%E7%BC%93%E5%AD%98%E6%B1%A1%E6%9F%93 可以用iptables过滤,自己google吧 |
14
sandtears 2014-05-09 23:08:43 +08:00
直接加密转发 Open-dns 的就是了,具体工具自己查,就是 DNS 解析慢点。
|
15
leavic 2014-05-09 23:22:39 +08:00
我又要来推AutoDDVPN了,其中提到很重要的一点是,DNS服务器的访问也要走VPN,不是说你用8.8.8.8解析的就是对的,不走VPN,用哪家的DNS都有可能被污染,不信你挂VPN和不挂VPN用同样的DNS解析twitter试试
|
16
phuslu 2014-05-09 23:26:58 +08:00 1
|
17
mywaiting 2014-05-09 23:59:57 +08:00
要是在自己的电脑上,装个 DNSCrypt 本地DNS设置成 127.0.0.1 不用自建DNS server这么麻烦吧
什么缓存污染直接忽视吧,DNS query都提交到OpenDNS去解析了~ |
18
ShunYea OP 谢谢各位,已经自建好一台服务器开始运行了,目前基本功能实现了,正在不断完善/etc/dnsmasq.conf
|
19
ShunYea OP @mywaiting 我是要在家里设置到路由器上用,然后多个设备就正常运行了,包括我办公室电脑等都可以共享了。每台都装的方式不方便,而且安卓、苹果等还不通用。所以自建DNS服务器是最佳方案。
|
21
ShunYea OP @Shieffan 具体命令是什么呢?我现在上游设置的4个8,这个是否有开放5353呢?感觉国外的DNS就4个8做的好点,其他感觉CDN路由解析会无法判断,反而访问国内网站会更慢。很久以前感觉4个8在国内有镜像一样,ping值只在50ms左右,现在都是180ms以上了,感觉又移除国内了?
|
27
slixurd 2014-05-10 00:30:55 +08:00
检测端口有没有开放自己nmap一下就完了
slixurd@slixurd-pc:~$ nmap -v -Pn -p 5353 8.8.8.8 Starting Nmap 6.40 ( http://nmap.org ) at 2014-05-10 00:29 CST Initiating Parallel DNS resolution of 1 host. at 00:29 Completed Parallel DNS resolution of 1 host. at 00:29, 0.00s elapsed Initiating Connect Scan at 00:29 Scanning google-public-dns-a.google.com (8.8.8.8) [1 port] Completed Connect Scan at 00:29, 2.00s elapsed (1 total ports) Nmap scan report for google-public-dns-a.google.com (8.8.8.8) Host is up. PORT STATE SERVICE 5353/tcp filtered mdns |
29
GPU 2014-05-10 03:04:58 +08:00
搞一台国外服务器A 查询4个8 的dns 记录 。然后一台国内的去获取服务器A的记录 。这样效率会不会很低呢?
|
30
tywtyw2002 2014-05-10 07:50:03 +08:00
dns没啥难度
比如bind,先搞个acl只允许自己想要的ip访问。然后把请求forward刀8.8.8.8里面留好了。 国内的话起个ipsec隧道到国外。 |
31
phyng 2014-05-10 10:02:47 +08:00
|
33
leavic 2014-05-10 10:44:29 +08:00 via iPad
@GPU 搜一下 autoddvpn和autoddvpn for openwrt就有了,iPad上不方便找链接粘贴过来。本质就是通过VPN连接和断开时间触发路由器上的脚本,添加路由表让被封的IP和DNS走VPN。
|
34
JoeyChan 2014-05-10 12:46:41 +08:00
unbound转发就可以了,简单,有国外服务器的话可以用国外服务器转发,没有的话用openwrt路由+unbound转发8.8.8.8的tcp解析也可以。
|
35
sandtears 2014-05-10 13:45:24 +08:00
@ShunYea 可以啊,一台设备配置好转发之后将53端口监听在 0.0.0.0 上,其他设备的 DNS 写那台设备的 IP 地址就好。
至于简单的问题——难道下一个软件你觉得麻烦,而装 bind 再配置一大堆才不觉得麻烦? |
36
princeofwales 2014-05-10 15:25:49 +08:00
原来我刷的tomato路由器,里面自带dnsmasq,不过没配置成功
将pppoe的DNS直接改成opendns5353,都OK了 但家里还有人只上国内网站,看国内视频,路由器上改了DNS,对CDN不友好 虽然dnsmasq里配置了部分域名直接国内DNS,但这种需手工维护的列表,很累,很麻烦 算了,又改回SS了 |
37
ShunYea OP |
38
ShunYea OP @streamgo
@yanwen 我目前是参照这个教程来的: http://www.myhack58.com/Article/54/93/2014/43249.htm 基本做法也就这样,还不会高级命令,正在研究,还有他那个不同域名不同DNS解析的表还得考虑怎么完善才最佳。 |
39
ShunYea OP @GPU 感觉这个dnsmasq是个缓存,不是每次都先到自建DNS又到上游DNS查。查过一次后就缓存到自建DNS,下次就直接调用了,然后是定期再去上游读回最新的DNS,所以不应该很慢,首次可能慢点。
不知道我理解对不对,高手请指点。 |
40
ShunYea OP @Shieffan 你的意思就是,我的电脑先到自建DNS是靠53端口,然后自建DNS到上游比如4个8就转成5353端口,就跳过了gfw,然后返回的就是正确的IP,然后就可以上了?就这么简单?
PS:能给几个上游可靠DNS和可用端口吗?刚才使用server=8.8.8.8#5353直接无法解析了。新手懂的命令不是很多,你执行的这个结果我也看不懂,哪里提示可用哪里提示不可用。谢谢。 |
41
ShunYea OP @princeofwales 嗯,就是这个手工列表麻烦。我参照这个弄了几个简单站点。http://www.myhack58.com/Article/54/93/2014/43249.htm
|
43
AntiGameZ 2014-05-10 16:11:57 +08:00
最傻瓜的我觉得就是PowerDNS REcursor了
|
45
ShunYea OP |
46
ShunYea OP |
49
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 |
51
princeofwales 2014-05-10 22:23:05 +08:00 via Android
@Shieffan 我只知道,用了opendns后,访问QQ,给了我北京网通的IP,而我用的是深圳电信啊
|
52
Shieffan 2014-05-10 23:26:32 +08:00 via iPhone
说了这要取决于CDN服务商是否支持edns,据我的测试,网宿,蓝汛,阿里云等一些比较大的CDN提供商是支持edns的,你可以dig一下七牛自己阿里云等的cdn。而腾讯,新浪这些主要服务于自己公司的自建CDN是否支持edns就看厂商心情了。
|
53
wanghui 2014-05-10 23:38:43 +08:00
搭车问一下,想把大量域名(数万)在本机被解析为127.0.0.1,应该怎么做比较有效?可以让dns解析去调用某个脚本判断是否绑定到本机吗?
|
55
zjgood 2014-05-11 09:11:00 +08:00 via Android
@Shieffan 搭车问下,我可以把某些pac里的国内网站域名全部添加到dnsmasq的配置里,用114来解析,这样来实现国内外分流,可行吗?
|
56
Shieffan 2014-05-11 09:24:39 +08:00 via iPhone
@zjgood 可以的,dnsmasq.conf里可以配置针对不同域名使用不同的上游dns服务器,你甚至可以配置对所有cn域名指定上游dns服务器。具体你可以搜索或者看下dnsmasq的文档。
|
57
librehat 2014-05-11 09:57:42 +08:00
还有更加轻量级的unbound,上游tcp查询就能解决DNS污染了。弄大一点缓存,多个线程,就足以应对大量的DNS请求了。
|
58
ShunYea OP @Shieffan 我已经将4个8换opendns了。谢谢,你说阿里的DNS被照顾的不轻,我反倒觉得114也被照顾得不轻。现在国内不知道还有哪个DNS靠谱点,前几天发现个DNS派,不知道靠谱吗?感觉还没怎么照顾过。
|
62
zjgood 2014-05-11 14:00:55 +08:00 via Android
@ShunYea 我已经弄好了,国内域名交给114,其余全部走opendns#5353,你可以试试我的dns,地址是t.izj.pw的ip,第二个你设成8.8.8.8吧~
|
63
Shieffan 2014-05-11 14:15:48 +08:00 via iPhone
我这里用114dns访问京东经常会出现http会话劫持跳转到返利链接,dig后发现访问的是京东位于江苏机房的cdn服务器,初步怀疑是江苏某路由节点上存在会话监听劫持。
|
64
ShunYea OP @zjgood 我跟你反着来,重点指定几个域名走opendns,其余均走国内DNS,否则你那个方式,大部分域名得手动指定来走114,太累了。管少不管多。
|
65
anyfc 2014-05-24 17:43:33 +08:00
@ShunYea 请问你搭建的dns是在路由器上还是vps上?
@zjgood 我也想搭建dns在我的vps上,请问是否有详细教程? 我在vps上安装了dnsmasq,按照下面的格式设置了 no-resolv no-poll server=114.114.114.114 server=114.114.115.115 server=/google.com/8.8.8.8 server=/youtube.com/8.8.8.8 在重启了dnsmasq后,电脑上设置了vps的ip作dns,发现上不了网。。。请问是哪里没有设置后? |
66
zjgood 2014-05-24 17:53:25 +08:00 via Android
@anyfc 你确定你的vps不是azure?azure的话还需要去开放UDP 53端口。另外你使用114.114.114.114还有什么必要搭建dns呢。。
|
68
anyfc 2014-05-24 18:53:31 +08:00
@zjgood 呃~我的vps 是debian 7.0 刚刚安装好dnsmasq的时候,服务商发邮件说帮我关了udp 53端口,但是我已经手动开启了呀。。。大部分解析用114,部分指定域名用4个8或者其他干净的dns,我是这么想的。。
|
71
anyfc 2014-05-26 13:51:40 +08:00
|
73
lovehigh 2014-06-28 15:21:52 +08:00
@zjgood 你好,我新手第一次折腾这个。我买了个RamNode的西雅图线路,我网上查了下教程,目前我是在dnsmasq.conf里添加server=opendns的两个地址。然后启用dnsmasq.d,将felixonmars维护的dnsmasq list放到该文件夹下,然后将电脑上的dns改成Ramnode分配给我的IP就可以了?另外我server=opendns那里需不需要添加#5353?
|
76
tvvocold 2014-12-11 16:50:36 +08:00
http://maxexcloo.github.io/DNS-Tunnel/
user设置为自己的ip,只给自己用(不要建在digitalocean上,会被封) |
85
ShunYea OP @jarodvip 是的,有时候会无法解析,有时候又正常,实在搞不懂。不过配置了 IP 列表还是不错的,自动走番羽土啬的线路。可能是我技术不到家吧。你就照我上面的方法试试,就这么多教程了。
|
89
ShunYea OP @jarodvip 差不多类似,不过是配置在 DNS 服务器上,让 DNS 解析时候就自动判断了。
|
90
jarodvip 2015-10-16 17:46:05 +08:00
那还是要建 DNS 缓存服务器
|
91
lxj12328 2015-11-02 14:55:53 +08:00
关于 dnsmasq.conf 配置问题想咨询你一下,服务已经启动了,设置在笔记本上不能正常的解析,是为什么嘛?
|
92
danili 2016-09-16 13:28:44 +08:00
我的 Openwrt 就是使用的 DNSmasq 的,国内的几万个域名都是用 223.5.5.5 或者 114.114.114.114.国外的通过 udp 转发到国外的 vps 再解析 8.8.8.8 获得 IP 。然后昨天发现 PS4 下载游戏特别慢,结果发现 223.5.5.5 把 CDN 服务器解析道了汕头,而我在杭州地区, 114.114.114.114 在解析到上海的 CDN 应该更符合我的需要才对。所以楼主需要自建 dns 要考虑到国内解析的准确性~
|