ssh+privoxy组建socks转http代理服务器

来源: http://initiative.yo2.cn

这几天获得了PlanetLab在UESTC的2台node的TC权限,可以用ssh登录,所以心生邪念做了个ssh代理,可惜TheWorld2不支持socks代理(最新版已经支持了),于是用privoxy做了一个socks转http的代理。

环境

我所在的网管会办公室是202.115.22.x的网段,有一台装有debian的服务器,地址是202.11x.2x.135,准备用来做代理。

原理

Internet -> PlanetLab -> CERNET -> SSH://uestc1.6planetlab.edu.cn:22 -> HTTP://202.11x.2x.135:13500 -> 网管会的电脑
也就是从 SSH -> SOCKS代理(SSH Tunnel) -> HTTP代理(Privoxy)
Privoxy本来的作用是提供一个本机的代理来过滤广告和管理cookie,这里用到的是它的socks转http功能(Tor+Privoxy是黄金组合啊)
不清楚ssh端口转发可以去wikipedia看看。简单的说,有ssh的帐号相当于有一个准socks代理服务器(所以很多人用DreamHost的ssh来突破GFW)

准备

下载privoxy(截至est写这篇blog为止最新版本是3.0.6),用命令dpkg -i privoxy_3.0.6-0.sarge.1_i386.deb安装。

配置

用命令vim /etc/privoxy/config编辑privoxy的配置,这里逐条说明

#绑定地址202.11x.2x.135,端口13500作为HTTP代理服务器地址。如果是个人主机,不想让他人使用这个代理可以把改成127.0.0.1:13500
listen-address 202.11x.2x.135:13500

#限定只能网管会的电脑能访问这个代理
permit-access 202.115.22.128/26
#润新公寓的IP
permit-access 211.95.166.158

#使用ssh的端口转发做为二级socks代理。最后那个英文半角的点“.”表示把http请求转换为socks请求,很关键。
forward-socks4 / 127.0.0.1:13501 .

socks4和socks4a的区别:

socks4:先在本地DNS解析域名,再通过代理服务器请求页面
socks4a:在代理服务器DNS解析域名

启动代理服务

用命令ssh -CfNg -i /home/est/est_rsa -D 127.0.0.1:13501 -l site_admin uestc1.6planetlab.edu.cn后台连接到PlanetLab的节点上,各个参数的含义为:

ssh
-C 传输时压缩数据
f 输入密码登录后,ssh进入后台运行。这样我们才可以用ssh建立一个长时间不断的Tunnel
N 在ssh2协议中表示:不执行任何命令。我们需要的只是ssh的端口转发(tunnel)功能,所以并不需要一个shell
g 允许远程主机连接ssh转发的端口
-D 设置socks代理地址和端口。由于只是本机访问,所以设置为127.0.0.1:13501。如果需要在任意网络的计算机访问,可以设置成202.11x.2x.135:13501。其中13501是socks代理的端口
-l ssh登录名。
-i 指定ssh登录用的私钥

然后/etc/init.d/privoxy restart重启privoxy,好了,我们在另一台网管会电脑上试试telnet 202.11x.2x.135 13500,如果连接成功端口开放,那么我们的代理架设就离成功不远了!再在TheWord里设置代理为202.11x.2x.135:13500@HTTP#DormForce135,然后访问http://whois.ipcn.org/,显示 您的IP是: 219.243.200.81 您来自: 北京市 教育网 。我们的代理服务器架设成功了!

结束

开始享受PlanetLab在教育网访问国外网站的高速代理了,怎么一个爽字了得啊,呵呵。最开始调试SSH代理的时候发现PuTTY总是20秒断一次,很诡异,后来发现是DrCom的反代理功能,只要是socks代理就要20秒强行reset一次,晕!不过现在好了,youtubeBBCGoogleLastFM这些网站速度都十分理想,不比在润新寝室的联通速度慢哦。以后我还打算利用CERNET_UESTC Node的IP段,设计一个调用CoDeeN的程序(这个程序经开始和FourTFantanux等人筹划了,项目名字叫NetUnion CDN,主页暂时在http://code.google.com/p/nucdn/),那么我们的代理实现就是 Internet -> PlanetLab -> CoDeeN CDN -> CERNET_UESTC Node -> DormForce,不仅速度可以和一些收费VPN相比,而且完全没有CoDeeN的默认限制(例如不能POST,只能80端口等等)了,呵呵,这个跳板真是复杂~~

1 条评论:

匿名 说...

[url=http://www.23planet.com]Online casinos[/url], also known as exacting property casinos or Internet casinos, are online versions of illustrious ("buddy and mortar") casinos. Online casinos ok gamblers to brave place in and wager on casino games assiduously the Internet.
Online casinos normally submit on the securities exchange odds and payback percentages that are comparable to land-based casinos. Some online casinos administration higher payback percentages with a conclusion m‚storey implement games, and some bring up extinguished payout congruity audits on their websites. Assuming that the online casino is using an correctly programmed indefinitely auditorium troupe generator, go for games like blackjack petition an established crack aboard edge. The payout suggest after these games are established below the aegis the rules of the game.
Multitudinous online casinos wigwag on in non-performance or purchase their software from companies like Microgaming, Realtime Gaming, Playtech, Supranational Scheme Technology and CryptoLogic Inc.