Total Pageviews

Tuesday 24 July 2012

用DD-WRT做代理突破公司对网络的封锁

如果你现在的网络情况满足下面几个情况,你应该会对本文感兴趣:
1. 家里有一个运行DD-WRT固件,或者可以刷DD-WRT固件的路由
2. 公司的防火墙封锁非正常端口,只留了一个80端口作为网页浏览
3. 公司的防火墙对关键字进行过滤,带bbs,game等字符串的网址都禁止访问 针对以上公司的网络情况,本着节约型社会的精神……本文分享一下如何用家用路由作一个代理,突破公司的网络封锁(用电脑作代理费电…)
该代理的原理是利用ssh的tunnel功能,将本机的数据通过ssh转发到远程主机,并接收ssh转发的远程主机回应的数据,这种通过ssh加密,并且做代理的方法不少人知道,也有不少教程,本文针对特殊端口(80)的ssh作一个说明。
DD-WRT(v24 RC-5 (11/22/07) std)设置:
1. 首先打开DD-WRT的ssh功能 (DD-WRT是用dropbear这个ssh服务端作为ssh daemon服务)
方法:登陆路由web管理界面 -> 服务(Services)-> 找到Secure Shell(安全外壳)->选择启用->密码登录也选择启用->端口填入80


2. 允许从Internet进行ssh登录 (第一步只是开启了内网的ssh登录)
方法:管理->找到“远程管理”->启用ssh管理->ssh端口填入80


3. 如果你不是使用80作为ssh端口,那么可以跳过此步设置。由于web管理界面是要用到80端口作为http服务的,所以刚才设置好ssh端口,重启后端 口冲突,会导致ssh服务(dropbear进程)启动失败,所以我们必须把web管理界面的http服务端口改到其它端口
方法:管理->选择下面一排的”诊断”(Diagnose)标签,在”命令”中粘贴以下命令:
代码:
killall httpd
cd /www
httpd -p 81 -h /www
dropbear -b /tmp/loginprompt -r /tmp/root/.ssh/ssh_host_rsa_key -d /tmp/root/.ssh/ssh_host_dss_key -p 80
之后点击”保存启动命令”,再重启就可以了
注意设置好后应该会显示成这样。

原理就是让路由在启动后自动先杀掉httpd服务,再把该服务重新启动到81端口,最后再启动ssh服务(dropbear)到80端口
(补充:还可以telnet到路由,用nvram命令更改httpd以及ssh服务的端口,满足对命令行有癖好的同学,呵呵
具体方法是:
代码:
# telnet 192.168.1.1
# nvram set rc_startup="
> killall httpd
> cd /www
> httpd -p 81 -h /www
> dropbear -b /tmp/loginprompt -r /tmp/root/.ssh/ssh_host_rsa_key -d /tmp/root/.ssh/ssh_host_dss_key -p 80
> "
# nvram commit
输入第二行(nvram set rc_startup=”)后,提示符会从#变成>,这时候再输入需要自动执行的命令,最后输入双引号回车结束
nvram commit是把刚才需要执行的命令保存到路由的flash,这样掉电重启才有用
另外可以用nvram get rc_startup查看输入的命令是否正确) 4.设置一个动态域名,DD-WRT支持3322的动态域名
方法:设置->DDNS(动态DNS)->DDNS服务中选择3322.org,用户名密码和主机名可以到www.3322.org免费注册->类型选择动态
(主机名填你申请好的完整域名:xxxx.3322.org)
 5. 路由设置已经完成,下面在你公司的电脑上,需要用ssh登录你的路由,然后在本机开一个代理供你自己使用(以翻越公司的防火墙) 软件推荐两个,一个是MyEntunnel(http://nemesis2.qx.net/software-myentunnel.php),另一个就是putty了
怎么设置转发和代理的教程已经比较多,我这里顺便简单说明一下吧,上图说明(红框的是要注意的地方,其它根据自己需要选择):
MyEntunnel (比较简洁,代理专用,比putty的好的地方是不用输入用户名密码,并且可以最小化到托盘)
填入路由动态域名和端口,下面的SOCKS Port随便自己喜欢填,注意不要跟本机已使用端口冲突就行(不了解就用我这个端口好了,应该没其它软件会用这个端口吧….)


putty (比较知名,比起MyEntunnel来有命令行,功能比较多):
填入路由动态域名和端口。

设置本地代理的端口,注意要选择Dynamic,端口一样随便自己喜欢。


上两步设置好后选择open,填入用户名密码登录后即可:


(注意putty不可以最小化到托盘,可以用”Minimize To Tray”这个软件将窗口最小化到右下角任务托盘)
6. 可以上网了,设置IE或者其它浏览器的代理,该代理为socks5代理,以IE6为例
Internet选项->连接->局域网设置->勾上为LAN使用代理服务器->高级:


在IE设置好后,MyIE,GreenBrowser可以选择使用IE代理,或者直接添加一个socks5代理,就不再细说这样不管公司封锁端口, 如何封 锁关键字,只要开放80端口,我们都能像在家里上网一样,访问互联网了,当然,有机会你可以把路由放到国外,这样就能突破我们伟大的墙了。

from https://bbs.et8.net/bbs/showthread.php?t=930137