解決 GFW 的 DNS 汙染 - 大陸工作

Table of Contents

這篇比較偏技術,如果你跟我一樣使用 Macbook/Linux
可以自己動手免除 GFW DNS 汙染
http://www.v2ex.com/t/121025

使用 Windows 的人可以使用 ChinaDNS http://www.v2ex.com/t/118913
已經有人將 Python source code 包成 exe 可以直接使用

家庭式的解法就是找臺少用的電腦當主機跑 DNSmasq 或 ChinaDNS
然後將 router 的 DNS query 指向這臺主機便解決
或者你可以將這個 patched 過的 DNSmasq corss compile 到 openwrt 上執行也行
理論上可以在小米路由上跑...

使用這種方式有以下優點
1. 連線中國境內的網站時 CDN 是中國區而不是其他亂七八糟不知道那個國家的 CDN
導致速度莫名其妙的慢。例如在中國連臺灣的 Apple App store
2. 連線到被牆的網站時拿得到正確的 IP
3. 加速解析到正確域名的時間
4. 免除使用 smart host,也省去手動更新的缺點
5. 應該可以免除一些奇奇怪怪的靈異現象

這個是比較偏技術且 dark art,所以恕不提供指導
README.md 已經都寫的非常清楚了

使用 DNSMasq 的人如果看到以下類似的訊息表示你成功了
dnsmasq: reply youtube-ui-china.l.google.com is 46.82.174.68
dnsmasq: reply p04-streams.icloud.com.akadns.net is NODATA-IPv6
dnsmasq: reply p04-streams.icloud.com.akadns.net is 17.158.28.21
dnsmasq: query[AAAA] api.twitter.com from 127.0.0.1
dnsmasq: forwarded api.twitter.com to 114.114.114.114
dnsmasq: query[AAAA] 1.courier-sandbox-push-apple.com.akadns.net from 127.0.0.1
dnsmasq: cached 1.courier-sandbox-push-apple.com.akadns.net is NODATA-IPv6
dnsmasq: query[A] e3191.dscc.akamaiedge.net from 127.0.0.1
dnsmasq: cached e3191.dscc.akamaiedge.net is 23.11.125.15
dnsmasq: query[AAAA] us-courier.push-apple.com.akadns.net from 127.0.0.1
dnsmasq: cached us-courier.push-apple.com.akadns.net is NODATA-IPv6
dnsmasq: query[AAAA] youtube-ui-china.l.google.com from 127.0.0.1
dnsmasq: forwarded youtube-ui-china.l.google.com to 114.114.114.114
dnsmasq: reply api.twitter.com is NODATA-IPv6
dnsmasq: reply youtube-ui-china.l.google.com is 2404:6800:4005:804::1009
dnsmasq: query[A] ptt.cc from 127.0.0.1
dnsmasq: forwarded ptt.cc to 114.114.114.114
dnsmasq: query[AAAA] ptt.cc from 127.0.0.1
dnsmasq: forwarded ptt.cc to 114.114.114.114
dnsmasq: reply ptt.cc is 140.112.172.2
dnsmasq: reply ptt.cc is 140.112.172.1
dnsmasq: reply ptt.cc is 140.112.172.11
dnsmasq: reply ptt.cc is 140.112.172.3
dnsmasq: reply ptt.cc is 140.112.172.4
dnsmasq: reply ptt.cc is 140.112.172.5
dnsmasq: reply ptt.cc is NODATA-IPv6
dnsmasq: query[AAAA] p04-keyvalueservice.icloud.com.akadns.net from 127.0.0.1
dnsmasq: forwarded p04-keyvalueservice.icloud.com.akadns.net to 114.114.114.114
dnsmasq: query[A] p04-keyvalueservice.icloud.com.akadns.net from 127.0.0.1
dnsmasq: forwarded p04-keyvalueservice.icloud.com.akadns.net to 114.114.114.114
dnsmasq: reply p04-keyvalueservice.icloud.com.akadns.net is NODATA-IPv6
dnsmasq: reply p04-keyvalueservice.icloud.com.akadns.net is 17.158.28.25
dnsmasq: reply p04-keyvalueservice.icloud.com.akadns.net is 17.158.28.47

reference
1. https://github.com/styx-hy/dnsmasq-chinadns
2. https://www.v2ex.com/t/118885#reply7
3. http://gfwrev.blogspot.jp/2009/11/gfwdns.html

--

All Comments

Megan avatarMegan2014-07-07
直接VPN出來就好了.那有那麼多問題....
Andrew avatarAndrew2014-07-11
Good job
Franklin avatarFranklin2014-07-14
Awesome
Lucy avatarLucy2014-07-15
佛心
Christine avatarChristine2014-07-20
專業!
Harry avatarHarry2014-07-24
dnsforwarder也可以 vpn是翻牆 要用自動區分流量比較麻煩
Rosalind avatarRosalind2014-07-28
推一下解救自己人~ 哈
Isla avatarIsla2014-08-01
有辦法繞VPN的話DNS就順便改指外面的,就沒有污染的問題
Odelette avatarOdelette2014-08-05
大推、無恥的gfw爛招一堆