西廂計劃

“西廂計劃”是今天聽到的最振奮人心的消息, 穿越GFW這麼多年, 基本上各種類型的方法都用過, 每每穿牆都有一種莫名的快感, 想著GFW同學被無數人一次又一次地虐待. 作為新世紀的有志青年, 翻牆已經成了一種必須掌握的技能. 俗話說得好, “不會翻牆的線民不是好公民.” 看到這裏你應該已經知道”西廂計劃”到底是個什麼東西了, 但它不同於以往的所有翻牆技術, 算是翻牆界的最新研究成果吧. “西廂計劃”的優勢在於可以用最直接的方式訪問網站, 比如平時用的代理、VPN都是先到另一個地方繞一圈, 而按照作者的說法, “西廂計劃”直接注入GFW系統, 這樣當你訪問敏感詞網站時, GFW就變得像個傻子一樣, 根本不會進行重置操作, 從而以最快的速度訪問網站.

目前還只能在Linux系統中進行使用, 且要求內核版本大於等於2.6.17, 下面是我在Ubuntu中安裝配置的全過程.

安裝

這裏下載安裝檔, 解壓進入目錄. 先安裝一些依賴軟體:

$ sudo apt-get install autoconf automake libtool aptitude xtables-addons-common iptables-dev

接下來開始編譯加安裝:

$ ./autogen.sh

$ CFLAGS=”” ./configure –prefix=/usr –libexecdir=/lib

$ make

$ sudo make install

配置

在安裝檔的”examples”目錄中有一些已經設定好的ipset規則, 這些規則用來過濾那些特定的網路訪問, 先導入所有規則:

$ sudo ipset -R < CHINA

$ sudo ipset -R < GOOGLE

$ sudo ipset -R < YOUTUBE

$ sudo ipset -R < NOCLIP

再使用iptables設定具體的過濾規則:

$ sudo iptables -A INPUT -p tcp –sport 80 –tcp-flags FIN,SYN,RST,ACK SYN,ACK -m state –state ESTABLISHED -m set –match-set NOCLIP src -j ZHANG -m comment –comment “client-side connection obfuscation”

$ sudo iptables -A INPUT -p tcp –dport 80 –tcp-flags FIN,SYN,RST,ACK SYN -m state –state NEW -j CUI -m set –match-set CHINA src -m comment –comment “server-side connection obfuscation”

$ sudo iptables -A INPUT -p tcp –sport 80 -m state –state ESTABLISHED -m gfw -j LOG –log-level info –log-prefix “gfw: ” -m comment –comment “log gfw tcp resets”

$ sudo iptables -A INPUT -p udp –sport 53 -m state –state ESTABLISHED -m gfw -j DROP -m comment –comment “drop gfw dns hijacks”

最後修改主DNS, 在”/etc/dhcp3/dhclient.conf”檔中找到”prepend domain-name-servers”, 將後面的IP替換為沒有被感染的DNS位址, 比如”8.8.8.8″, 重啟網卡:

$ sudo ifconfig eth0 down

$ sudo ifconfig eth0 up

大功告成! 打開流覽器試試吧, YouTube、Blogger、Picasa、Google Groups、Google Docs的Spreadsheet這些都已是暢通無阻, 不過目前Twitter、Facebook還無法訪問, 但相信”西廂計劃”以後將會越來越強大.

2010.3.13更新:

以上配置在重啟之後都會消失, 這就麻煩了, 總不能每次開機都先輸這麼一長串命令吧. 在參考了Ubuntu官方Wiki之後, 有了一個很好的解決辦法.

首先確定你已經設定好了上面的所有規則, 接著將當前規則導出並放到”/etc”目錄中:

$ sudo ipset -S > ipset.rules

$ sudo iptables-save > iptables.rules

$ sudo mv ipset.rules iptables.rules /etc

其實我們需要做的就是讓系統在每次開機的時候自動讀取這些規則, 這可以有很多種方法, 比如寫成腳本, 放到rc目錄中, 但我覺得下面的方法更加靈活一點. 這裏又要分成兩種方法, 如果你使用了NetworkManager, 請看第一種, 否則看第二種. 之所以要這樣分開討論, 是因為第二種方法會導致NetworkManager不能正常工作.

  1. 這裏下載NetworkManager的配置腳本, 加上可執行許可權, 最後放到”/etc/NetworkManager/dispatcher.d”目錄中.
  2. 在”/etc/network/interfaces”文件中添加如下幾行:
  3. auto eth0
  4. iface eth0 inet dhcp
  5. pre-up ipset -R < /etc/ipset.rules
  6. pre-up iptables-restore < /etc/iptables.rules
  7. post-down ipset -S > /etc/ipset.rules
  8. post-down iptables-save > /etc/iptables.rules

P.S. 我終於又可以直接在Blogger裏寫博客了, 淚牛滿面啊~~~

One Reply to “西廂計劃”

Comments are closed.