DD-WRT突破網絡限制
一,DD-WRT固件的傳統應用:
一般來說DD-WRT固件都是針對無線路由器進行刷新的,很多家庭用戶和中小企業都將購買來的無線路由器進行了刷新DD-WRT固件的操作,通過刷新DD-WRT固件可以讓我們更加淋漓盡致的發揮無線路由器自身性能,在一些額外功能方面DD-WRT固件比無線設備自身攜帶的固件表現更好,而且在諸如QOS以及路由策略等方面的設置可以更好的為網絡和無線應用服務。
二,用DD-WRT突破網絡限制:
然而今天筆者為各位介紹的則不是針對DD-WRT的強大功能來說的,我們要利用刷新了DD-WRT固件的無線路由器來建立一個傳輸通道,從而讓我們的內網應用可以有效的突破網絡限制。
(1)用DD-WRT突破網絡限制的用武之地:
首先我們要確實了解什么情況下我們能夠通過DD-WRT固件來突破內網網絡限制,大多數情況下企業內網為了限制員工網絡應用會在防火墻上封鎖非正常端口,例如只保留80端口作為網頁瀏覽,而諸如3389,21等端口都進行了封殺。另外公司為了提高安全性會在防火墻上通過關鍵字進行過濾,諸如BBS論壇字眼以及GAME游戲字樣的字符串網絡地址都禁止訪問。
如果我們遇到的問題正是由以上種種設置造成的話,那么我們就可以通過DD-WRT來突破網絡限制,通過DD-WRT建立一個代理,突破公司網絡封鎖。而傳統的解決方式是利用一臺電腦作代理,性能占用比較大而且單獨設備做代理比較費電。
(2)用DD-WRT突破網絡限制的原理:
我們通過DD-WRT突破網絡應用,端口封鎖以及關鍵字過濾等網絡限制的原理是利用SSH的tunnel功能,將本機的數據通過ssh轉發到遠程主機,并接收ssh轉發的遠程主機回應的數據,這種通過ssh加密并且做代理的方法在實際使用中效果很好,本文針對特殊端口(80)的ssh作一個說明。畢竟80端口在很多防火墻上都是容許訪問的,不會出現封鎖的麻煩。(如圖1)
(3)用DD-WRT突破網絡限制的步驟:
下面我們就來看看如何通過DD-WRT突破網絡限制。首先我們需要在家中具備一臺運行了DD-WRT固件的無線路由器,如果沒有可以參考我們之前介紹的刷新DD-WRT固件的文章來實現。筆者以DD-WRTv24版本為例進行介紹。
第一步:首先打開DD-WRT的ssh功能(DD-WRT是用dropbear這個ssh服務端作為sshdaemon服務),方法是登陸路由web管理界面->服務(Services)->找到SecureShell(安全外殼)->選擇啟用->密碼登錄也選擇啟用->端口填入80。
第二步:通過管理->找到“遠程管理”->啟用ssh管理->ssh端口填入80來允許從Internet進行ssh登錄(第一步只是開啟了內網的ssh登錄)。(如圖2)
第三步:如果你不是使用80作為ssh端口,那么可以跳過此步設置。由于web管理界面是要用到80端口作為http服務的,所以剛才設置好ssh端口,重啟后端口沖突,會導致ssh服務(dropbear進程)啟動失敗,因此我們必須把web管理界面的http服務端口改到其它端口。具體命令為通過管理->選擇下面一排的"診斷"(Diagnose)標簽,在"命令"中粘貼以下命令。之后點擊"保存啟動命令",再重啟就可以了。
- killallhttpd
- cd/www
- httpd-p81-h/www
- dropbear-b/tmp/loginprompt-r/tmp/root/.ssh/ssh_host_rsa_key-d/tmp/root/.ssh/ssh_host_dss_key-p80
小提示:
以上代碼實現的原理就是讓路由在啟動后自動先殺掉httpd服務,再把該服務重新啟動到81端口,最后再啟動ssh服務(dropbear)到80端口。當然我們還可以telnet到路由,用nvram命令更改httpd以及ssh服務的端口,然后輸入以下指令來實現。
- #telnet192.168.1.1
- #nvramsetrc_startup="
- >killallhttpd
- >cd/www
- >httpd-p81-h/www
- >dropbear-b/tmp/loginprompt-r/tmp/root/.ssh/ssh_host_rsa_key-d/tmp/root/.ssh/ssh_host_dss_key-p80
- >"
- #nvramcommit
輸入第二行(nvramsetrc_startup=")后,提示符會從#變成>,這時候再輸入需要自動執行的命令,最后輸入雙引號回車結束,而nvramcommit是把剛才需要執行的命令保存到路由的flash,這樣掉電重啟才有用另外可以用nvramgetrc_startup查看輸入的命令是否正確)
第四步:設置一個動態域名,DD-WRT支持3322的動態域名,方法是設置->DDNS(動態DNS)->DDNS服務中選擇3322.org,用戶名密碼和主機名可以到www.3322.org免費注冊->類型選擇動態(主機名填你申請好的完整域名:xxxx.3322.org)。
第五步:路由設置已經完成,下面在你公司的電腦上,需要用ssh登錄你的路由,然后在本機開一個代理供你自己使用(以翻越公司的防火墻)。我們可以通過兩個軟件來實現連接功能。一個是MyEntunnel(http://nemesis2.qx.net/software-myentunnel.php),另一個就是putty了。由于篇幅關系我們主要講解putty的使用。填入路由動態域名和端口,設置本地代理的端口,注意要選擇Dynamic,端口一樣隨便自己喜歡,上兩步設置好后選擇open,填入用戶名密碼登錄后即可。(如圖3)
小提示:
putty不可以最小化到托盤,可以用"MinimizeToTray"這個軟件將窗口最小化到右下角任務托盤。
第六步:設置IE或者其它瀏覽器的代理,該代理為socks5代理,以IE6為例打開IE瀏覽器找到菜單中的“Internet選項->連接->局域網設置->勾上為LAN使用代理服務器->高級”。在IE設置好后,MyIE,GreenBrowser可以選擇使用IE代理,或者直接添加一個socks5代理。這樣不管公司封鎖端口,如何封鎖關鍵字,只要開放80端口,我們都能像在家里上網一樣,訪問互聯網了。有機會你可以把路由放到國外,這樣就能突破更多的網絡限制了。(4)其他方法來實現突破網絡限制:
通過DD-WRT突破網絡限制的方法還很多,我們完全可以將dd-wrt中的jfs去掉,利用空出來的空間放一個tinyproxy,瀏覽器上就可以直接設置代理,不用再裝其它軟件了。不過這樣的方法建立的代理只是普通代理,沒有加密,如果碰到上文說到的第三種情況,公司封了關鍵字,這種代理就沒辦法了。
(5)觸類旁通TOMATO固件也能行:
當然不光是DD-WRT固件有此突破限制功能,我們如果刷新的固件是tomato也能實現,在TOMATO固件中也有SSHDaemon服務,我們可以通過管理界面的administration>adminaccess找到。
三,DD-WRT突破網絡限制總結:
DD-WRT突破網絡限制的方法實際上是在家中建立一個代理,然后在單位連接此代理,讓單位的網絡應用可以和家中一樣沒有限制沒有封鎖,畢竟傳統意義上單位防火墻上進行了限制我們的員工計算機網絡訪問只能夠瀏覽80端口的網站了,而通過此方法我們可以化繁為簡讓80端口也可以更好的為我們服務,在單位與家中建立一條網絡應用網絡傳輸的城際列車。