autoddvpn DD-WRT自動翻牆解決方案

HOWTO  

Introduction

這份文件說明如何設置 autoddvpn 環境

Details

只需要以下幾個steps就可以搞定

設置PPTP client

如下圖

說明:
  1. MPPE Encryption裡面輸入 mppe required,no40,no56,stateless
  2. Remote Subnet 與Remote Subnet Mask是你PPTP播上之後的子網路,請依據自己的環境設置。(注意:這兩個參數不用設定也是可以播上PPTP, 但是目前autoddvpn需要依靠pptpd_client_srvsub這個nvram變數才有辦法正確判斷是否連上VPN以及進行一連串後續動作,在這個部分優化之前,仍請設置這兩個參數)
  3. Username Password是你的PPTP撥號的帳戶密碼

設置DNS

DD- WRT使用dnsmasq來做簡易的name cache服務,因為dnsmasq只會forward到上游DNS以及cache查詢結果,並不會跟bind9一樣從Root DNS一路查詢下來,因此如果上游DNS資料被污染的話,dnsmasq的資料也會被污染。
這裡我們關閉了dnsmasq服務,強迫使用Google DNS, 因為建立VPN之後DD-WRT跟Google DNS之間就走加密VPN了,因此不用擔心被污染的問題。 (注意:所有對境外的DNS查詢如果不是走VPN通道的話,全部都有被劫持的危險)
設定方式如下:

這樣的設置的優缺點是:
優點
  1. 完全不會有DNS劫持問題
缺點
  1. DD-WRT下面的所有電腦的DNS都會被設置為Google DNS
  2. DD-WRT本身不做name cache, 因此所有查詢都會經由VPN到Google去,相對的會比較慢
  3. 國內一些CDN加速的網站,例如www.qq.com, 很可能Google查詢的結果並不會是最優化的結果,可能訪問會比較慢一點,實際要看每個人的感受。

設置rc_firewall腳本

在輸入框裡面輸入
test -f /tmp/rc_fw_done || wget http://autoddvpn.googlecode.com/svn/trunk/run.sh -O - | /bin/sh
然後按下Save Firewall, 這個腳本會在網路連上之後進行,實際是存在DD-WRT nvram的rc_firewall變數裡面。

測試

以上都設置好之後,機器重開就搞定了!
但 請注意,DD-WRT重開機之後,到PPTP VPN自動撥上,通常需要一兩分鍾甚至更久的時間,建議可以在電腦下面試著ping 8.8.8.8看看網路通不通,或是用traceroute指令對8.8.8.8查詢,通常路由表的第一個hop就是你的DD-WRT private IP, 而第二跳就是你的VPN gateway 私有IP了,如果你的第二跳不是VPN IP, 那也別擔心, autoddvpn正在修改你的路由表,可能需要30秒的等待時間。如果等了很久還是不行,請查看這個DEBUG說明。

没有评论: