首先鄙视一些公司,设置严格的防火墙策略,严重影响工作效率,本来就在 gfw 的封锁之下,再加上一层防火墙,整个思想就被囚禁了,那还有创新的灵感,思想都没法交流了,如果自己在不争取真的就成码奴了。
在 ruby 的世界里没有网络真是寸步难行
准备工作:
一台可以自由访问网络的 vps,并开启 ssh 服务
用 nmap 扫描公司的开放的端口,用来设置 obfstunnel 的 server 端的监听端口
一台可以用装 linux 虚拟机的本地 pc
所需要的软件 obfstunnel,ssh,privoxy
privoxy 下载地址:http://sourceforge.net/projects/ijbswa/?source=typ_redirect
obfstunnel 下载地址:https://github.com/greensea/obfstunnel
ssh 用 linux 自带的包管理工具自行安装或下载源代码编译安装
obfstunnel
一。架设 obfstunnel
1.obfstunnel 用处
obfstunnel 可以通过端口转发的方式将数据包进行混淆处理,以绕过防火墙。目前支持的方法有 xor 和 random。
obfstunnel 需要运行在客户端和服务器两边。假设客户端和服务器之间有一个防火墙,
用户可以在客户端处以 CLIENT 模式运行 obfstunnel,同时在服务器端以 SERVER 模式运行 obfstunnel。
以 CLIENT 模式运行的 obfstunnel 需要知道服务器端 obfstunnel 监听的端口。
以 SERVER 模式运行的 obfstunnel 需要知道远程主机的地址以及想要连接到的端口。
obfstunnel 会把用户发送的数据转发到远程主机上。
简单的说 obfstunnel 可以躲过防火墙的对某些网络协议的封锁。
可以从https://github.com/greensea/obfstunnel 获取 obfstunnel 及详细的使用说明。
2.架设 obfstunel
在我们 vps 上运行 obfstunel 的 server 端,
运行命令:obfstunnel -s 8080 -t localhost:22 -m xor
参数解释:
-s 以 server 模式运行,8080 为 server 要监听的端口号,
-t 后面跟转发的目标地址和端口号,也就是从 8080 端口来的数据都会 forward 到 localhost:8080
-m 是数据混淆的模式
运行上面的命令就可以把 server 端其起来了
- 启动 client 端
在本地运行 client 端
命令:obfstunnel -c 8091 -t serverip:8080 -m xor
参数解释:
-c 以 client 的模式运行
把本地端口的数据转发的 remote 端的 serverip:8080 上
二。启动 ssh 端口转发
如果 obfstunel 的 server 端和 client 端的都架设成功,
在本地运行是 ssh 登录命令:ssh user@localhost -p 8091 .就可以登录上远程服务器了,
如果登录失败重新检查 obfstunel 的架设是否正确。
- 开启本地 ssh 端口转发
运行命令:ssh -qTfnNg -D 7070 localhost -p 8091
就可以开启端口转发服务,如果成功开启就可以在浏览器中设置 socket5 的代理。
在浏览器中添加 socket5 代理,server:127.0.0.1 port:7070
设置完成之后浏览器能打开 google 说明 ssh 的端口转发已经成功。
在完成以上步骤之后 pc 通过 socket5 的带来已经能够实现翻墙,但是移动设备还是没法通过 socket5 代理上网。
下一步我们要把 socket5 的代理映射成标准的 http 代理
三。安装 privoxy 代理服务器
可以从http://sourceforge.net/projects/ijbswa/?source=typ_redirect 获取 privoxy 的代码
按照代码里面的 INSTALL 文档说明编译并安装 privoxy
配置 privoxy
1.修改软件的配置文件,找到找到 listen-address 这一行修改为
listen-address yourself_ip:8118
2.找到“forward-socks5”这一行,去掉前面的注释标记#,将这一行修改为
forward-socks5t / 127.0.0.1:7070 .
四。总结
所有都配置完之后,设置浏览器里面的代理设置,server 为 privoxy 中的 yourself_ip, 端口号为 8118
在 ipad,iphone 中的代理设置的参数和浏览器中的参数一样,
通过此种方式翻墙可以突破 GFW 的防火墙的封锁,更能突破公司防火墙的封锁,利用 obfstunnel 用处
obfstunnel 可以通过端口转发的方式将数据包进行混淆处理,以绕过防火墙。目前支持的方法有 xor 和 random。
obfstunnel 需要运行在客户端和服务器两边。假设客户端和服务器之间有一个防火墙,
用户可以在客户端处以 CLIENT 模式运行 obfstunnel,同时在服务器端以 SERVER 模式运行 obfstunnel。
以 CLIENT 模式运行的 obfstunnel 需要知道服务器端 obfstunnel 监听的端口。
以 SERVER 模式运行的 obfstunnel 需要知道远程主机的地址以及想要连接到的端口。
obfstunnel 会把用户发送的数据转发到远程主机上。
如果发现什么问题欢迎指出