使用obfsproxy插件混淆Shadowsocks流量特征的好处在于可以伪装成正常上网流量进而增加隐蔽性,还可以进一步保障Shadowsocks服务器不被干扰,增强稳定性。关于Shadowsocks的介绍请看这里,obfsproxy插件是从Tor中提取的一个独立的流量混淆程序,关于Tor的介绍在这里,obfsproxy的介绍在这里。另外,在服务器和客户端配置好obfsproxy后,不仅可用于Shadowsocks,同样可以适用于SSH、GoAgent、赛风、自由门等等代理上网工具。
配置过程:
1、配置服务端Shadowsocks
2、配置客户端Shadowsocks
3、配置服务器端obfsproxy
4、配置客户端obfsproxy
5、重新配置客户端Shadowsocks完成obfsproxy应用
配置后的上网过程:
入口节点(本机)== 客户端Shadowsocks == 客户端obfsproxy == 服务器端obfsproxy == 服务端Shadowsocks == 出口节点(目标网站)
(需要注意的是出口节点(目标网站)仍会看到你的Shadowsocks服务器IP。)
服务器环境及IP(举例):
服务器环境:Linux Debian 6 32位
服务器IP:888.888.888.888
Shadowsocks服务端端口:8989
Shadowsocks客户端端口:1080
obfsproxy服务端端口:89899
obfsproxy客户端端口:10800
本地操作系统:Windows 7
配置步骤:
1、配置服务端Shadowsocks
配置服务端Shadowsocks可采用出自秋水逸冰博客的:Shadowsocks Python版一键安装脚本 (具体步骤见文章详情)如果你觉得安装脚本简单易用,钱包又不太吝啬的话,就果断向作者发起捐赠吧!
也可根据官方安装文档自己搭建:https://shadowsocks.org/en/download/servers.html
2、配置客户端
官方下载页面:https://shadowsocks.org/en/download/clients.html
或者直接猛撮官网Windows ZIP包下载地址:点此下载
运行Shadowsocks.exe,填入对应的服务端Shadowsocks配置信息。
配置好服务端Shadowsocks,再对浏览器进行相应设置,测试Shadowsocks是否配置成功,能访问Twitter和www.google.com.hk,说明配置成功。
此时你已经可以通过Shadowsocks顺利爬墙了,当然IE配置只是个演示,最经典的爬墙上网方案个人认为应该是Chrome浏览器 + Proxy SwitchyOmega拓展。 而且Shadowsocks的一键安装脚本和客户端配置都是很简单的,只要自己有VPS,几分钟就可以搭建自己的Shadowsocks代理上网环境。如 果你连这一步都没成功,下面的文章也就不用看了,重要的步骤看三遍,确保你已经可以通过Shadowsocks顺利爬墙了!本文的重点是 obfsproxy插件混淆Shadowsocks流量特征,下面开始。
3、配置服务器端obfsproxy
安装obfsproxy
apt-get install gcc python-pip python-dev pip install obfsproxy
运行obfsproxy服务端
/usr/local/bin/obfsproxy --data-dir=/tmp/scramblesuit-server scramblesuit --password=FANGBINXINGFUCKYOURMOTHERSASS444 --dest=127.0.0.1:8989 server 0.0.0.0:89899
scramblesuit是obfs3的加强版,是一种安全性稍高的加密工作方式,scramblesuit的密码必须为BASE32字符,即大写字母加数字共32位的字符串。
password=FANGBINXINGFUCKYOURMOTHERSASS444是为scramblesuit设置的加密密码,这个密码不会再后面的配置中用到,所以不用管它,当然,也许细心的你已经察觉到密码的含义了。。。。当然,你在配置的时候有必要更改一下这个密码。
dest=127.0.0.1:8989是要混淆的Shadowsocks服务端地址和端口。
server 0.0.0.0:89899是混淆后的地址和端口,0.0.0.0 表示允许所有网段地址连接。
运行后出现如下提示,说明作为一个执着的追求者,你成功了!!!
不要问我 2015-11-20 15:54:30,853 [ERROR] 这句是什么意思,我不会回答你的,因为我也不知道。
4、配置客户端obfsproxy
文章开头提到过obfsproxy插件是从Tor中提取的一个独立的流量混淆程序,我已经从Tor安装目录提取出整个obfsproxy文件夹并打包,你可以直接下载这个包解压后进行下一步配置。
扫扫更健康。。
点此下载obfsproxy(解压密码:bynss.com)
当然了,鉴于此时你已经可以顺利通过Shadowsocks爬墙,所以你也可以自己去下载安装一个Tor,把obfsproxy拿出来,官网下载页面在这里,或者直接点此从官网下载(Windows),安装挺简单的,官网下载页面上也有教程。obfsproxy文件夹在:安装目录\Browser\TorBrowser\Tor\PluggableTransports\下。
拿到obfsproxy以后,运行obfsproxy客户端,比如我把obfsproxy放在D:\Program Files\Shadowsocks下,运行cmd,定位到该目录,运行命令:
obfsproxy\obfsproxy.exe scramblesuit --password=FANGBINXINGFUCKYOURMOTHERSASS444 --dest=888.888.888.888:89899 client 127.0.0.1:10800
–dest=888.888.888.888:89899是混淆后的obfsproxy服务端地址和端口。(注意,这一步是你在电脑上连接obfsproxy服务端,所以IP地址就是服务器IP 888.888.888.888了,而不是上一步的0.0.0.0)
client 127.0.0.1:10800是obfsproxy客户端地址和端口。
成功只属于敢于实践和探索的人,所以一不小心又成功了。。
obfsproxy已在运行:
此时obfsproxy客户端已和obfsproxy服务端建立连接,就差一步,即可大功告成。
5、重新配置客户端Shadowsocks完成obfsproxy应用
再次打开Shadowsocks的客户端配置,编辑服务器,将IP地址改成127.0.0.1,服务器端口改成10800,代理端口不用改。此时 Shadowsocks客户端将通过obfsproxy客户端连接上网。需要注意的是,此时如果关闭cmd窗口,连接就会断开,后面的文章会提到一个折中 的解决方法。
Enjoy it !
后续优化部分:
1、将服务端obfsproxy添加到服务器启动项
vi /etc/rc.local
按a进入编辑模式,将下面的命令添加进去
(/usr/local/bin/obfsproxy --data-dir=/tmp/scramblesuit-server scramblesuit --password=FANGBINXINGFUCKYOURMOTHERSASS444 --dest=127.0.0.1:8989 server 0.0.0.0:89899 >/dev/null 2>&1 &)
按esc,输入:wq,回车。
2、客户端隐藏cmd窗口并开机自启动obfsproxy
前文提到的本地cmd运行obfsproxy的步骤,可以创建一个批处理文件来完成,然后用VBS脚本隐藏cmd窗口,再将VBS文件添加到开机启动项。
创建批处理,新建记事本,输入如下命令,另存为ss.bat,保存类型选择“所有文件”,以我的obfsproxy所在目录为例:
d: cd Program Files\Shadowsocks\obfsproxy obfsproxy\obfsproxy.exe scramblesuit --password=FANGBINXINGFUCKYOURMOTHERSASS444 --dest=888.888.888.888:89899 client 127.0.0.1:10800
bat文件存放路径为:C:\Users\admin\ss.bat
创建VBS文件,新建记事本,输入如下命令,另存为ss.vbs,保存类型选择“所有文件”。
DIM objShell set objShell=wscript.createObject("wscript.shell") iReturn=objShell.Run("cmd.exe /C C:\Users\admin\ss.bat", 0, TRUE)
将ss.vbs文件放到启动项目录,实现开机自启动。Windows 7下目录为:C:\Users\用户名\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
写在最后:
时间不早,洗洗睡了。