找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 7079|回复: 0

利用DNSMASQ获得正确DNS解析

[复制链接]
发表于 2012-11-19 17:30:10 | 显示全部楼层 |阅读模式
至于DNS在中国被污染的这回事,不用多解释了,正确的DNS解析对于使用squid透明代理进行翻墙极为重要,因为在squid在收

到http请求前,域名已经在客户端先解析了。

以下说明如何获得正确的dns解析。首先,你必须要有一台境外服务器,笔者用的是一台境外VPS。在这台VPS上,安装isc bind。

(当然dnsmasq也应该可以。)

配置 /etc/named.conf options部分

options {
        listen-on port 3722 { any; };  // 要点,必须绑定非标准端口(non 53 UDP)
        directory       "/var/named";
        dump-file       "/var/named/data/cache_dump.db";
        statistics-file "/var/named/data/named_stats.txt";
        memstatistics-file "/var/named/data/named_mem_stats.txt";
        allow-query     { any; };
        recursion yes;        forward only;
        forwarders { 208.67.222.222; 208.67.220.220; }; // 这里选取VPS访问最快的DNS服务器,笔者选得是OpenDNS,毫秒级。
        max-cache-size 32M;
        cleaning-interval 480;
        lame-ttl 1800;
        max-ncache-ttl 166000;
        max-cache-ttl 86400;
        edns-udp-size 512;
        max-udp-size 512;
};

在网关上,安装dnsmasq,配置/etc/dnsmasq.conf

no-resolv
server=VPS的IP#3722  // 配置这里访问非标准端口!
bogus-priv
domain-needed
filterwin2k
no-hosts
cache-size=8192
stop-dns-rebind
neg-ttl=3600

~好了,现在你的dnsmasq应该能解析出正确的dns了。看来GFW对DNS只做了UDP 53端口的干扰。

最后,以彼之道,施彼之身。利用iptables劫持局域网用户的DNS访问,以保证解析到正确的IP。iptables -t nat -A PREROUTING -p

udp -m udp --dport 53 -j REDIRECT --to-ports 53用dig 实验:

第一次,用google dns解析,得出被污染的解析记录

第二次,用DNSMASQ解析,得出正确的解析记录

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|第一站论坛 ( 蜀ICP备06004864号-6 )

GMT+8, 2025-4-12 16:02 , Processed in 0.090287 second(s), 19 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表