如何本地避免GFW的DNS污染

2012年8月9日 | 分类: 翻墙相关 | 标签: ,

最近看了 IGFW 上的如何不受DNS污染,讲的是做VPN服务器的VPS 配置方法。我来说下目前我知道的各平台上,本地避免DNS 污染的方法。

DNS污染的原理部分,参考这篇 深入理解GFW:DNS污染。本地避免污染,有两个思路:

  1. 通过加密方式,查询可信的DNS服务器
  2. 设置国外DNS服务器,并丢弃GFW DNS伪包

第一种思路下,目前比较靠谱的是 DNSCrypt,支持Windows (下载)和 Mac(下载)。DNSCrypt 使用很方便,把 Enable OpenDNS、Enable DNSCrypt 全勾上就好,也建议勾上 Fallback to insecure DNS。

第二种方式,Windows上不好弄。Mac 和 Linux 都有办法实现。前提是设置国外DNS,继续推荐台湾中华电信的168.95.1.1 。然后:

  • Mac:安装 kernet 内核扩展(下载),我自己做的,开机自启动,风险自负。
  • Linux:西厢计划项目做了这一部分,不过编译内核模块毕竟麻烦。2.6.33.7 以上版本的内核(不保证这是最低版本),依赖 iptables 1.4.10,都会自带u32 模块,可以用iptables 规则做丢弃GFW DNS伪包:
    iptables -I INPUT -p udp -m udp –sport 53 -m u32 –u32 “0&0x0F000000=0×05000000 && 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=0×05000000 && 22&0xFFFF@16=0x3b1803ad” -j DROP

    设置联网自动加载iptables 配置:Ubuntu下,可以把以上规则写入 /etc/network/if-pre-up.d/iptablesload 文件。其它Linux发行版应该也有类似的方法。强烈建议淘宝上卖自制路由器的同学们,把这个防火墙规则写到路由器中,也能多一个卖点。

另外,继续推荐IGFW博客。顺便推广下自己做的 IGFW墙内镜像,有点慢,日独立IP过1000我就做服务器缓存(目前已经到500)。

原文http://liruqi.info/post/28775426009/how-to-avoid-dns-hijack-locally

  1. 福音乐章
    2012年8月12日21:39

    建议博主把墙内镜像关了吧。
    这个镜像,百度之流肯定搜不到。
    如果服务提供商不像谷歌那么“正直”,想与中共合作,那么博客就可能被删了。
    而且,如果有备案,就会增加博主被跨省的危险。

    • iGFW
      2012年8月15日10:52

      那个不是我弄的,呵呵

  2. W.We
    2012年8月12日00:28

    镜像已经不是慢的问题了,是能否打开的问题了。

  3. kyon
    2012年8月11日23:28

    这个镜像好像不是一般的慢啊……

  4. @MGjiee
    2012年8月10日00:02

    DNSCrypt 不太好用啊 opendns 解析国内的网站都很慢 没电信的快。打开一个新浪网站就卡得不行。有什么其他的方法或者其他的推荐吗?

  5. Mr.Koala
    2012年8月9日23:19

    我记得以前博主是说过不愿意让别人做镜像的。是改注意了吗?

    • iGFW
      2012年8月10日13:37

      事情不是以个人意愿而改变的。

      • @MGjiee
        2012年8月10日16:00

        DNSCrypt 不太好用啊 opendns 解析国内的网站都很慢 没电信的快。打开一个新浪网站就卡得不行。有什么其他的方法或者其他的推荐吗?

        • iGFW
          2012年8月10日19:09

          解析国内网站用国内本地DNS服务器,解析国外网站使用DNSCrypt,这样怎么实现我也不知道。

          • @MGjiee
            2012年8月10日22:55

            修改hosts能够解决DNS污染吗?路由器下。

          • iGFW
            2012年8月15日10:46

            可以

          • W.We
            2012年8月12日00:25

            如果GFW屏蔽了向外发出的Header里面的关键词比如:
            Host: *igfw.net
            那么就算你修改了电脑的Hosts也不行。

          • iGFW
            2012年8月15日10:50

            是的,必须要https或ipv6

  6. Aquamarine
    2012年8月9日22:29

    似乎IGFW墙内镜像通过直连也不好访问,至少我这里是打不开。原博客无法回复,非不可访问问题,是浏览器支持问题。

  7. 本初秋子
    2012年8月9日20:05

    u32已经很不稳定了 有些域名依然会被污染