對於網速不給力又喜歡玩游戲的朋友來說,網絡加速器是最好的選擇,netpas網絡加速器就是其中的一種,而在Linux系統中運行netpas網絡加速器似乎有些困難,下面小編就給大家介紹下如何在Linux系統中安裝配置netpas網絡加速器。
對於在教育網內的同學來說,最大的痛苦就是教育網不能出國和訪問公網速度 慢了(有錢買流量的不用看本文),所以通常有些需求的就必須購買像教育網 直通車之類的加速服務,當然還有另一種選擇那就是花錢買專門的VPN。但這裡 都有一個問題,那就是所有的網絡加速服務都只有windows下的客戶端,在 linux就都沒有官方的使用方法了。對有些加速服務,有人想出了一些非官方的 辦法,比如在知道服務器地址的前提下,教育網直通車可以用PPPoE來連。據說,BrigeWan也可以用類似的方法,但上次在一個論壇裡看到因為官網對協議作了點小修改,結果就是必須修改原來寫好的連接腳本,而這又要聽包,調試 等。另外,有人還想用netpas吧,這個是我看到的最便宜的,費用標准也最靈活,除了p2p限制的厲害(會被卡在20KB/S下,而且幾乎不浏覽網頁)外,一般 速度還是不錯的。現在我用的就是這個。但是因為netpas用的協議比較特殊,PPPoE的方法就不能用了,網上也沒有查到有用的資料,唯一搭得上邊的也就是linuxdic上的這篇文章了(估計不是原出處),但那是2007年的了,老得 幾乎沒有參考價值。 可見,在linux下使用加速器,要麼缺乏官方支持不穩定,要麼是沒有比較新的指導。所以寫這篇文章很重要。
好了,廢話不說了,下面介紹方法,可能有點長,但內容很豐富;)
2 准備工作
2.1 好點的機器配置。
既然是用虛擬機跑代理,當然機子內存要大,這點最重要。512M估計是會卡 的,1G應該就行,2G以上就很理想了,再小的話可能就要采用些非常手段了,下面也會稍微提到下。
2.2 安裝VirtualBox
至少3.0以上吧,最好是3.1以上的。VirtualBox這幾年開發進度很快,很多特 性都加了進去,合理運用能有效減少工作量。Ubuntu下是有的,其它的Linux 發行版的源裡一般也都有,而且既然你都用Linux了,那麼就至少現在能裝軟 件,不知道的話,搜下吧。我用的是Arch64(Archlinux 64位)。
2.3 安裝winxp虛擬機。
VirtualBox怎麼用就不說了,VirtualBox本身的文檔很詳細,網上這方面的 介紹也很多。這裡提下,windows可以用98的,如果你機器內存小的話,但可 能會遇到一些小問題。最好是winxp了,最好不要用一些網上流傳的鏡像和 Deepin啥的,這些都是修改版,難保後面配置時沒問題。重新安裝個新 的,winxp professional的,不會用太多時間。最後記得安裝VirtualBox Addition,這個副加包可以提高虛擬機的運行效率,另外還提供不少好用的 額外功能。
2.4 虛擬機windows中,下載,安裝《nat32e》。
NAT32是一個我目前看到的最先進的NAT類軟件(一般也叫共享網絡 連接), 我也試過許多其它的,但是要麼是沒辦法滿足要求,要麼就是不穩定少功能。 這個軟件是免安裝的,但是要安裝一個驅動,這個可以手動作。圖省事的, 就直接點setup就好了。軟件是共享的,功能不設限,程序每次只能連續運行 2小時,但可以無限制地重新運行,所以這不是個問題,後面有個簡單的腳 本,能讓這個軟件幾乎總是在運行(無需人為干預)。
2.5 可選:虛擬機windows中,下載《3proxy》
3proxy是一個非常非常小的proxy軟件,功能很全也很強 大,windows和linux 下都可以使用。配置的時候是直接修改配置文件的,典型的unix風格。有人 喜歡用ccproxy的話,就自己到網上搜下如何使用吧。 3proxydownloadsection中 有各個版本(包括windows64位的)下載。
3 配置與使用 3.1 設置虛擬機
你這時候應該已經安裝好了netpas,並且在linux主機聯網的情況下,netpas 能聯上,然後在虛擬機中能正常上外網。
3.1.1 設置網卡
主要是安裝完windows後,設置虛擬機的網卡。默認是只有一個NAT網卡,地 址是10.0.*.*(*表示任意,當然具體只能是確定的)。這個是VirtualBox自 己配置的,後面也要用,但無需額外配置。在網卡配置裡啟動第二個網卡, 選擇Host-only(中文應該是主機網絡吧?),底下有個連接網線的選項,選 中。你還可以把虛擬機中別的不用的設備選項都關掉。圖形裡的2D圖形加速 可以選上。啟動虛擬機,這時候可以看到,有兩個網絡連接,找到那個 192.168.56.101(大致類似這個的),記下它現在的IP信息,然後修改IP屬 性,把DHCP改為靜態地址,並把剛才記下的都填上,沒多填。這步之所以重 要是因為,這個網絡連接,過會兒會作為linux主機的網關,所以我不希望它 的地址有任何變化,這點尤為重要如果你像我一樣經常用到兩個虛擬機同時 運行的話,這時候DHCP分配的地址會根據虛擬機啟動順序不同而不同。
注:不少學校的網絡比較無聊,linux下沒有對應的聯網客戶端,好像有個 叫銳捷的網絡登錄系統就是這樣。這時候,推薦你到網上搜一下,有人作過 一個linux下的銳捷認證軟件,如果還是不行,那麼這裡你可以用虛擬機聯 網,不過虛擬機要用一個網橋連接的網卡。這方面網上也有不少資料,這裡 就不多說了。
3.2 虛擬機windows下
3.2.1 獲取netpas的路由表
必須先啟動netpas。 開始菜單-運行-輸入“cmd”-命令行窗口-輸入“route PRINT” 這時候可以看到,屏幕上輸出在netpas啟動後的路由表。把這個輸出復制到 文本文件中,編輯刪除所有目標地址為保留地址(0.*.*.*, 192.*.*.*, 10.*.*.*等)的行,刪除那些注釋用行,最後文件中每一行都是路由表中的 一項,保存並傳到linux主機中(用網絡傳,或是用共享文件夾,這個推薦 吧,方便)。
3.2.2 配置nat32e
注:因為後面用到了NAT的功能,據說在windows 2003 server版中有相應的 工具進行設置,比較方便可靠。但一來是虛擬機裡跑,資源比較緊;二來也懶 得再去整另一個系統了,有知道的歡迎留言。另外,我知道有個netsh的命令 可以用來配置NAT,但整了挺長時間,沒辦法找到netpas虛擬網卡的名稱 (netsh中需要這個),也不想浪費時間去學windows裡這個怪怪的命令(用 過你就知道了,留著時間學linux吧:),所以放棄了。知道的也歡迎留言。
如果配置過共享上網的機器,在每一個網絡聯接屬性的高級選項裡都有一個 共享該連接的選項,這其實就是初等的NAT了。但因為netpas的連接比較特 殊,這種簡單高效的方法不能用了。這裡用nat32e來解決這個問題。
先連接上netpas吧,便於後面配置。 安裝好net32e後,桌面上會有幾個圖標,第一次用需要用NAT32CFG這個功 能進行配置。配置過程本身很簡單,基本上都是下一個(next/continue)。 只有一個頁面需要介入,就是選擇內網和外網時。 (人懶,就不截圖了,相信用linux的都至少有一定的英文基礎吧,不過有 需要的可以留言,我再作個截圖重新說下,這裡簡單講)頁面上,方框裡有 一些網卡供選擇,一般有三個,每選中一個其下有IP地址,名稱等說明。選 擇框右而有幾個單選按鈕,Private(內網),Internet(外網)。選上名 稱為Unknown Name Netpas Adapter的網卡,然後選上Internet按鈕,這時 候網卡前標記為I,然後選另一個網卡,地址是192的那個,再選上Private 按鈕。那個網卡前出現個P。好了,下一步直到完成。
配置完成後,以後每次運行時只要點桌面上的NET32RUN就可以了。 現在你還不可以通過NAT上網,需要在linux下作一些配置。
3.2.3 可選,配置3proxy
注:這個是可選的,就是對那些更喜歡用代理的人來說,或是那些想省事的人,設置代理可要簡單得多,而NAT還有不少配置要做,但堅持到最後的人是會有回報的:)
3proxy的功能是非常強大的,有興趣的或需求可以花時間讀一下文檔,這裡給一個比較通用的配置文件。 ================================================================ ================3proxy.cfg Starts ==============================
#!/usr/local/bin/3proxy
# Yes, 3proxy.cfg can be executable, in this case you should place
# something like
#config /usr/local/3proxy/3proxy.cfg
# to show which configuration 3proxy should re-read on realod.
system “echo 3proxy is running.。。!”
# you may use system to execute some external command if proxy starts
# We can configure nservers to avoid unsafe gethostbyname() usage
####! maybe useful, but dont understand
#nserver 10.1.2.1
#nserver 10.2.2.2
# nscache is good to save speed, traffic and bandwidth
nscache 65536
# in log file we want to have underscores instead of spaces
logformat “- +_L%t.%. %N.%p %E %U %C:%c %R:%r %O %I %h %T”
rotate 30
# We will keep last 30 log files
internal 192.168.56.101
# internal is address of interface proxy will listen for incoming requests
# 127.0.0.1 means only localhost will be able to use this proxy. This is
# address you should specify for clients as proxy IP.
# You MAY use 0.0.0.0 but you shouldn‘t, because it’s a chance for you to
# have open proxy in your network in this case.
auth none
# no authentication is requires
####! maybe useful in some occassions
# dnspr
# dnsproxy listens on UDP/53 to answer client‘s DNS requests. It requires
# nserver/nscache configuration.
#external $./external.ip
#internal $./internal.ip
# this is just an alternative form fo giving external and internal address
# allows you to read this addresses from files
auth none
# We want to protect internal interface
deny * * 127.0.0.1,192.168.56.101
# and llow HTTP and HTTPS traffic.
allow * * * 80-88,8080-8088 HTTP
allow * * * 443,8443 HTTPS
proxy -n -p8090
auth none
flush
socks -p9080===============3proxy.cfg End ================================ ================================================================
這是根據3proxy給的樣例加以改造的,把它復制到文件中,並保存為 3proxy.cfg,然後放入3proxy的bin目錄下,雙擊3proxy.exe運行就可以了。 這個配置使3proxy開啟了兩個代理,一個是http代理,在8090端口;一個是 socks5代理,在9080端口。 接下來你只要在需要設置代理的程序中設置如下即可: Http: 192.168.56.101:8090 socks5: 192.168.56.101:9080 這就是配置3proxy的全部過程,現在你應該可以在firefox裡上國外網了 推薦使用foxproxy等firefox插件,這些使設置代理變得非常方便。
補充:NAT與proxy的區別
網上介紹的大部分是用代理來共享的,這是因為代理簡單,適用范圍廣。但 是,如果能夠用NAT的話,最好還是用NAT。原因很簡單,要求使用代理的程 序必須得支持代理,而且代理一般只支持特定協議如常見的http代理。當然 現在有很多socks代理,實際上可以支持任何協議,但首先程序必須能夠支 持socks代理。這一點其實通常沒有滿足,這也是為什麼像wincaps這樣的 程序非常的流行,它們可以使原來不支socks代理的程序使用socks代理, 但問題依然存在:對每一個你需要用代理的程序,你要單獨進行設置,另 外可能也有性能上的降低(這個不是很清楚)。另外,似乎linux下沒有特 別好用這類軟件(知道的,歡迎留言),tsocks的開發都停止很多年了。
而NAT雖然並非在所有場合都能用,但一旦使用,你獲得的就是從網絡底層 到高層統一一致的服務,從ping到http,無需再做設置就可直接使用所有網 絡資源,而且結合使用路由表,靈活性不比proxy差。而在性能上一般也較 好。對於在linux中,你可能有IM,需要聯網的桌面應用如桌面天氣,桌面 RSS等,新聞下載客戶端Miro,或是開源的聯網小游戲teeworlds等。這些中 許多沒有內置代理支持,而其使用的協議也各式各樣。但在NAT下都能直接 使用。
3.3 linux下配置路由表
這部分應該說是最難的,而且因為大家上網的方式不一致,所以路由表的內 容和配置也不同,可能配置上會有些差異(??)
3.3.1 導入從windows下獲得的netpas路由表(依前修改後)
這個路由表的特點是,所有表中的目標地址的訪問netpas都設為不通過 netpas加速,這其中包括所處教育網,netpas的服務器地址等等netpas認為 不應或不需通過其加速的地址段。把這些都導入到linux下的路由表,其中 網關一項全部改為你直接在linux上網時用的默認網關,具體步驟如下:
打開一個終端,以root身份執行命令(su, 然後輸入root的密碼)。命 令“route -n”, 會輸出目前系統的路由表,記住開頭為default的一項後的 IP地址,此即當前的默認網關。
用命令“route add -net 《1》 netmask 《2》 gw 《3》” 或 “route add -host 《4》 gw 《5》” 導入新的路由表項。 其中《1》為目標網段,《4》為目標地址,即netpas路由表中的第一列,結 尾為0的是目標網段,其它為目標地址。而《2》為網址掩碼,也就是 netpas路由表的第二列。《4》,《5》都是上一步得到的當前默認網關。 不要一個一個輸入這些命令執行,先把這些命令寫入一個shell腳本,然 後再一起執行。 腳本應該是類似這樣的:
================
#/bin/sh echo “NEED root authentication”
echo “The following is from Netpas in w32…”
route add -net 58.154.0.0 netmask 255.254.0.0 gw -。-。-。-
route add -net 58.192.0.0 netmask 255.240.0.0 gw -。-。-。-
route add -net 59.64.0.0 netmask 255.240.0.0 gw -。-。-。-
route add -net 121.48.0.0 netmask 255.254.0.0 gw -。-。-。-
route add -net 121.192.0.0 netmask 255.252.0.0 gw -。-。-。-
================================================================即一條命令接著一條,網關gw,“-。-。-。-”要填上你的網關。 至少如何執行,具體自己去搜吧,命令是“chmod u+x 《腳本文件名》”,“。/《腳本文件名》”。
3.3.2 進一步設置路由表
完成上面的導入,現在就是切換路由路線的時候了。正如前面所說,netpas 路由表的表項都是不通過netpas加速的,所以上面都設置為直接通過你現在 的網卡連接。而對於其它的地址,我們需要設置其通過netpas。三步:
執行,“route add default gw 192.168.56.101“,即增加一個默認網 關,這個網關就是虛擬機。這一步必須在虛擬機啟動後執行才有效,否 則。
執行,“add -net 10.0.0.0 netmask 255.0.0.0 dev eth0”,即讓所有 通過netpas加速的包都直接發送到外網端口。這裡eth0應換成是你在 linux下用來上網的網卡名稱。這一步很重要,否則需要加速的包就出不 去了。這一步可以在任何時候執行
執行,“route del default gw -。-。-。-”。即從路由表中刪除你當前的 默網關。這樣,需要加速的包就必須從虛擬機這個網關通過。
好了,如果虛擬機裡netpas和nat32都連上打開了,你現在應該可以上外網 了,無需在相應程序中設置:)
4 更好的代理
4.1 打破2小時的限制
前面說到nat32有連續2小時的限制,然後必須重啟nat32. 大家都不喜歡限 制,要麼為什麼要用Linux呢?:) 那麼我們去找破解吧!我去找過,網上的破解大多不能用了,就算能用(沒 找到,實際上,搜索結果挺多的)吧,也很老了,nat32這個軟件1.8版本在 2005年就推出了,現在還是1.8版但卻是在今年二三月份推出的,我對比了 下,差別很大,同是1.8界面功能都不太一樣。所以,沒有現成的破解。 那麼我們去寫一個破解吧!好吧,我承認,我太菜,這個任務我不能完成, 就留給聰明的讀者和強大的黑客吧。不過,俺覺得有這個時間,不如寫更好 的linux程序,這才是長久之道。看多了“破解-補丁-破解-補丁-破解……” 的惡性循環。 當然有第三種選擇,就是寫個腳本來自動重新啟動nat32,如下: ================================================================ ================ repeat_start.bat START ===================
@echo off
echo Simple script to keep a program running all the time
set program_path=C:\NAT32\nat32.exe 2
set program_name=NAT32
set count=0
set wait_seconds=30
:LOOP
set /A count=%count%+1
echo ”start %program_name% for %count% time(s)“
rem - wait it terminates
start /wait %program_path%
echo ”ooooops, it stops.。。“
echo ”wait for about %wait_seconds% seconds, then restart.。。“
rem - wait for several seconds
@ping 127.0.0.1 -n %wait_seconds% -w 1000 》 nul
@ping 127.0.0.1 -n %1% -w 1000》 nul
echo 。。。
echo ================================================================
rem - to restart an infinite loop
rem - of course, you can use a for loop to make it run limited times
goto LOOP================ repeat_start.bat END ====================== ================================================================
其中,set program_path=C:\NAT32\nat32.exe 2 這一行,= 後面的參數可以 通過看“NAT32RUN”這個桌面快捷方式找到,復制粘貼就行,一般若安裝的 NAT32就是這個參數。 這裡這個腳本,其實可以用來維持任意會中斷的程序的運行,原理很簡單,就 是啟動程序後,等待其終止,一旦中止就再啟動。一般,為了避免一些因為程 序剛關閉時的一些問題,最好等一會兒再啟動。對nat32而言,因為它用到了 驅動,所以感覺最好等久些,我設成了30秒。至於其中等待用ping來實現,則是從網上復制來(人懶,沒花時間去研究)的高人前輩的“暗黑系魔法”。2003 server裡有個sleep的程序,而xp pro裡沒有。。。 以後,每次就不再運行NAT32RUN,而是直接用這個腳本。
4.2 更好的路由
其實,netpas路由表是很有限的。現在教育網訪問公網,對有的地址其實是 很快的,像baidu,youku之類的,應該是相應的網站針對教育網進行了優化。 所以,這些也通過netpas加速的效果反而更差。所以,你可以找到這些地址,然 後用“route”來設置為直接訪問。 這裡其實有個不好的地方,就是這裡說的設置路由的方法總是要用到root權 限。當然,其實路由表是相對穩定了。不知道有沒有更好的方法。
4.3 不再用了
不用NAT了,要回到正常聯網,只需執行下面兩個命令: “route del default gw 192.168.56.101”。 “route add default gw -。-。-。-”。 其實就是,上面設置路由表最後兩步的逆過程,其它都不用改。
4.4 Some geek stuff:
對於像我一樣,覺得命令行,文本更好,並且覺得應該盡量減少windows在 linux中的出現的。介紹兩個命令,VBoxManage, VBoxHeadless。 VBoxManage,是VirtualBox的命令行,像“ VBoxManage startvm xpnet &” 這個命令,可以用來從命令行啟動虛擬機,xpnet是虛擬機的名稱。這樣就 不用每次都打開VirtualBox的圖形窗口了:) 當然,你會覺得這還不夠,為什麼要一個windows虛擬機的窗口始終在我的桌 面上呢,為什麼我只是想用它來聯網而它始終要一個顯示窗口呢?好吧,讓 它消失吧~ VBoxHeadless,原本的目的是為了在遠程服務器上啟動虛擬機用的,因為是 在遠程服務器上,所以服務器上是不應有圖形窗口的(沒人在那看),所以 由它啟動的虛擬機是沒有窗口的。為了控制由此啟動的虛擬機,它支持一個 VRDP的協議,相當於VirtualBox的遠程桌面。當然,這裡我們不用它這個功 能,因為開啟這個功能會在主機上啟動這項服務,可能會導致有人可以從網 上聯到你的虛擬機。 開啟winxp pro的遠程桌面,用“VBoxHeadless -startvm=xpnet -vrdp=off &”啟動虛擬機,用 “rdesktop -a 16 192.168.56.101 &”來連接,如果 需要手動調整配置什麼的。 如果覺得每次輸入密碼麻煩,用下面這個命令 rdesktop -a 16 -p 《passwd》 192.168.56.101 & -p 後面填上密碼明文,不用擔心,你的虛擬機在內網裡,外面聯不進來的。
文章有些長,但我覺得方法還是很好的,尤其是NAT的使用,使虛擬機整個構 成了一個支持所有協議的透明網關。另外,值得注意的是,這個方法適用於幾乎所有的加速器,因為整個設置通過虛擬機實現了對加速器是透明的。
上面就是Linux下安裝設置netpas網絡加速器的方法介紹了,netpas網絡加速器在windows上能夠完美運行,但在Linux上就得花一些功夫了,趕緊試試看吧。