使用HTTPTunnel绕过企业封端口

年初为了享受生活,跳槽去了一家外企,选择了一个事少钱多的位置。维护着已经有11年历史的系统,做着修修补补的工作,灵活的上班时间,生活慵懒。

兴趣爱好可以得到发挥,怎么能不写写技术blog传播下知识呢!?无奈傻X微软关闭了之前的blog空间,转投Qzone继续写blog。但是公司防火墙封闭了除80,25外的所有端口,而且25端口只可访问内部Exchange邮件服务器。突破限制的思路还是有得,就是编程中的AOP,代理模式,只要你给我开了一条路,只要路上有一个朋友,那么我做什么事情都可以由这个朋友代劳,因此,肯定是可以通过代理来做所有事情的,顺着这个思路去google,发现了HTTPTunnel这个技术方案。原理如图:

客户端通过HTTPTunnel Client,将所有请求转换成HTTP请求,通过80端口发送到代理者HTTPTunnel
Server端,HTTPTunnel Server解析HTTP请求,并将其还原成原有请求发送出去,再将结果封装成HTTP响应返回HTTPTunnel
Client,然后解析后返回Client。HTTPTunnel 就是这个朋友,代理者。

我们要做的就是:
1.建立一个内部的代理,将我们的所有请求封装成正常的HTTP走唯一的出口80端口。
2.在外面建立一个朋友,接收封装后的数据包,并还原成正常请求,发送给服务器,并将服务器的结果封装后返回给内部代理。

上面是原理,步骤就是:
1.家里笔记本安装HTTPTunnel Server,作为代理服务器。
去http://sourceforge.net/projects/http-tunnel/files/

下载并安装win32版,运行HTTPTunnel
Server



web管理界面,进行相关设置即可。(需要注意的是,要关闭win7防火墙,否则客户端连不上)基本默认配置,为了安全,可以配置Miscelaneous
TAB下的Admin Interface账号密码。接下来配置路由,做NAT开放笔记本80端口,或者直接设置笔记本为DMZ主机,对外暴露。配置花生壳动态域名解析,这样可以避免动态IP代理的烦恼。

2.公司电脑安装HTTPTunnel Client(同一个软件,自带服务端,客户端),设置Tunnel Server
TAB下的服务器地址,IP或动态域名。其他根据需要设置,我修改了SOCKS proxy listen port:
2080,因为1080端口开发用掉了。然后,所有程序访问网络都采用代理访问,代理地址就是本机,即:127.0.0.1:2080

。可以先用IE做实验,事实上IE不需要代理,因为80端口本来就是开放的,设置IE代理:


如果可以上网,即连接成功,也可以去 HTTPTunnel Client/Server 管理页面看log。
对于无法设置代理服务器的软件,比如网游啥的,就需要freecap这个软件出场了,freecap可以抓取socket包并强制代理之。如图:


这样foxmail就能被代理并且正常使用突破80端口限制了。不仅foxmail,其他任何软件都是一样的。


你可能感兴趣的:(使用HTTPTunnel绕过企业封端口)