Chnroutes:為VPN提供的路由腳本(20140406)

Chnroutes是一個為中國牆內網友提供最新路由的項目,路由表信息將每24小時自動更新一次。因為一些眾所周知的原因, 來自中國大陸的網民想要訪問非本國資源時總會那麼的不方便, 這促使了海外VPN供應商在中國的繁榮. 使用海外vpn訪問已經成為一些需要經常訪問海外資源的中國網民的必要裝備. 但通常這些vpn都是有流量限制的, 除此之外一些中國內部的資源也限制海外的ip訪問. 本項目目的就是提供一些啟動腳本給vpn用戶, 在vpn撥號之後經過路由表,讓他們在使用vpn訪問國外資源的同時, 能用非vpn線路高速訪問本國資源.

最新路由表下載地址在: https://chnroutes-dl.appspot.com/

2014-04-06更新:(網友請根據自己的系統選擇)

項目頁面:https://code.google.com/p/chnroutes/

代碼庫網址:https://github.com/fivesheep/chnroutes

官方介紹的使用方法:

介紹

這幾個腳本主要利用來自 https://ftp.apnic.net/apnic/stats/apnic/delegated-apnic-latest 的數據生成路由命令腳本, 讓vpn客戶端在進行連接的時候自動執行. 通過這些路由腳本, 可以讓用戶在使用vpn作為默認網路網關的時候, 不使用vpn進行對中國國內ip的訪問, 從而減輕vpn的負擔, 和增加訪問國區域網路站的速度.

基本約定

在使用這些腳本之前, 請確保你在自己的電腦上已經成功配置好一個vpn連接(pptp 或者 openvpn), 並且讓之以默認網路網關的方式運行, 這通常也是默認配置, 即vpn接入之後所有網路流量都通過vpn進行.

Openvpn

使用此法之前, 請確認openvpn版本是否為 v2.1 或者以上, 如果不是請參看下方不同系統關於openvpn部分的描述

客戶端設置

本 方法適用於使用openvpn v2.1或更高版本的用戶. 因為openvpn v2.1比之前版本增加了一個名為max-routes的新參數, 通過設置該參數, 我們可以在配置文件里(服務端, 客戶端)直接添加超過100條以上的路由信息. 具體設置步驟如下:

  1. 下載 chnroutes.py 文件
  2. 在命令行里執行 python chnroutes.py, 這將生成一個名為 routes.txt 的純文字檔案. 對於不想安裝python的用戶, 可以直接從項目下來列表裡下載該文件. 它將會每月更新一次.
  3. 使用你喜歡的文本編輯器打開上述文件, 並把內容複製粘貼到openvpn配置文件的末尾
  4. 同 時在openvpn配置文件的頭部添加一句 max-routes num, 其中num是一個不小於文件routes.txt的行數的數字, 實際上因為還有一些伺服器端push過來的路由信息, 所以保險起見可以用 routes.txt的行數加上50, 比如目前得到的routes.txt的行數是940, 你可以把數字設置為1000: max-routes 1000
  5. 修改完之後, 重新進行openvpn連接, 你可以用之前描述過的方法進行測試是否成功

以 上方法在Mac OSX, Linux 和 Windows上測試通過. 但需要注意的是, 這裡用到一個net_gateway的變數表示未連接openvpn前的網關地址, 但openvpn的文檔里有說明這個不是所有系統都支持的, 如果發生這個情況, 可以修改一下生成腳本, 把net_gateway修改為你的區域網路的網關地址. 對於windows 7 和 vista, OpenVPN的windows客戶端可能需要設置Windows XP兼容模式才能使用, 安裝文件要在屬性選擇中的兼容性選擇Windows XP和以管理員的身份運行,安裝好的運行文件也同樣選擇這兩個選項。如果還是不能連接到VPN的網路,可以嘗試在配置文件中加入:
route-method exe
route-delay 2

注意事項

  • 因為這些ip數據不是固定不變的, 儘管變化不大, 但還是建議每隔兩三個月更新一次
  • 使 用此法之後, 可能會導致google music無法訪問, 這個其實是因為連上vpn之後, 使用的dns也是國外的, 國外dns對google.cn 解析出來的是國外的ip, 所以一個簡單的解決方法是修改本機的hosts文件, 把國內dns解析出來的google.cn的地址寫上去: 203.208.39.99 www.google.cn google.cn

PPTP

Mac OSX

  1. 下載 chnroutes.py
  2. 從終端進入下載目錄, 執行python chnroutes.py -p mac, 執行完畢之後同一目錄下將生成兩個新文件'ip-up'和'ip-down'
  3. 把這兩個文件copy到 /etc/ppp 目錄, 並使用 sudo chmod a+x ip-up ip-down命令把它們設置為可執行
  4. 設置完畢, 重新連接vpn. 測試步驟同上.

Linux

  1. 下載 chnroutes.py
  2. 從終端進入下載目錄, 執行python chnroutes.py -p linux, 執行完畢之後同一目錄下將生成兩個新文件'ip-pre-up'和'ip-down'.
  3. 把ip-pre-up 拷貝到 /etc/ppp目錄, ip-down 拷貝到 /etc/ppp/ip-down.d 目錄. 測試步驟同上.

Windows

  1. 下載 chnroutes.py
  2. 從終端進入下載目錄, 執行python chnroutes.py -p win, 執行之後會生成vpnup.bat和vpndown.bat兩個文件.

由於windows上的pptp不支持撥號腳本, 所以也只能在進行撥號之前手動執行vpnup.bat文件以設置路由表. 而在斷開vpn之後, 如果你覺得有必要, 可以運行vpndown.bat把這些路由信息給清理掉.

如果機器上沒有安裝python, 可以直接從下載頁面上下載已經預生成的bat文件.

Android

由於沒在android上進行過測試, 無法確定上文描述的openvpn v2.1的使用方法是否也在android手機上適用, 所以保留以下內容

openvpn

    1. 下載 chnroutes.py
    2. 從終端進入下載目錄, 執行python chnroutes.py -p linux, 這將生成'vpnup.sh'和'vpndown.sh'兩個文件.
    3. 把步驟2生成的兩個文件拷貝到 android 的 /sdcard/openvpn/目錄下, 然後修改openvpn配置文件, 在文件中加上以上三句:

script-security 2
up "/system/bin/sh /sdcard/openvpn/vpnup.sh"
down "/system/bin/sh /sdcard/openvpn/vpndown.sh"

注意自行修改其中的路徑以符合你的android rom的實際路徑

另外, 這裡假定了你的android已經安裝過busybox, 否則請先安裝busybox再進行以上操作, 還需要知道的是, 這個腳本在手機上執行會花費比較長的時間, 如非必要, 就不要用了. 也許採用非redirect-gateway方式, 然後在ovpn配置文件里添加幾條需要路由的ip段是比較快捷方便的做法.

基於Linux的第三方系統的路由器

一 些基於Linux系統的第三方路由器系統如: OpenWRT, DD-WRT, Tomato 都帶有VPN(PPTP/Openvpn)客戶端的, 也就是說, 我們只需要在路由器進行VPN撥號, 並利用本項目提供的路由表腳本就可以把VPN針對性翻牆擴展到整個區域網路. 當然, 使用這個方式也是會帶來副作用, 即區域網路的任何機器都不適合使用Emule或者BT等P2P下載軟體. 但對於那些不使用P2P, 希望在路由器上設置針對性翻牆的用戶, 這方法十分有用, 因為只需要一個VPN帳號, 區域網路內的所有機器, 包括使用wifi的手機都能自動翻牆. 相信配置方式請參考: Autoddvpn 項目.

信息反饋

本 項目的腳本都是在使用路由器進行撥號的情況下測試通過的, 如果在其它撥號方式下, 腳本不能運作, 請在本頁添加comment說明. 或者添加一個新的issue. 另外, 在配合openvpn使用的時候, 可能會出現一種情況是因為網路質量不好, openvpn非主動斷開, 這時候vpndown腳本也會被自動調用, 但重新連上之後, 可能會找不到默認的路由而添加失敗, 這時候你可以通過停止openvpn重連, 並手動設置好原來的默認路由再重新進行openvpn撥號.

* * *
本文由美博園(allinfa.com)根據官方介紹整理髮布。美博園沒有對其進行安全測試,請各位網友自己把握使用。
* * *

原文鏈接:https://allinfa.com/zh-tw/chnroutes-vpn-20140406.html
原文標題:Chnroutes:為VPN提供的路由腳本(20140406) - 美博園
美博園文章均為「原創 - 首發」,請尊重辛勞撰寫,轉載請以上面完整鏈接註明來源!
軟體著作權歸原作者!個別轉載文,本站會註明為轉載。

« 前文:

這裡是你留言評論的地方


請留言


6 + 6 =
【您可以使用 Ctrl+Enter 快速發送】
Copyright © 2007 - 2026 , Design by 美博園. 著作權所有. 若有著作權問題請留言通知本站管理員. 【回到頂部】