使用obfsproxy混淆shadowsocks流量的方法

Author: meteor      Publish date: 2015-09-26      Tags: 教程, shadowsocks, obfs

目的:人民日益增长的互联网自由需要同落后的虚拟高墙之间的矛盾日益深化,导致了 shadowsocks 于 2015 年 8 月 20 日停止了维护,而 github 上的项目也已经全部删除。在这个大背景下,我衷心希望 shadowsocks 能走得更长一些。


本文是我自己实践下面两位大神的方法后的产物,下面是源地址,欢迎大家都去看看原文~
Shadowsocks + obfsproxy 混淆翻墙的实现
使用 obfsproxy 混淆任意流量


搭建 Shadowsocks 服务端

我使用的是 Ubuntu,这里为了方便先介绍一下 Shadowsocks 的配置方法。

安装 shadowsocks

Debian / Ubuntu:

sudo apt-get install python-pip
sudo pip install shadowsocks

CentOS:

yum install python-setuptools && easy_install pip
pip install shadowsocks

至此服务器已经安装好了 Shadowsocks,虽然可以直接使用命令行来运行 ss 服务,但笔者建议还是使用配置文件来运行 Shadowsocks 以方便日后的修改和切换配置。

通过 Shadowsocks 配置文件来启用服务

执行下面命令来创建一个配置文件:

sudo vi /etc/shadowsocks/config.json

在文件中添加以下内容:

{
"server":"0.0.0.0",
"server_port":8888,
"local_address": "127.0.0.1",
"local_port":1080,
"password":"mypassword",
"timeout":600,
"method":"aes-256-cfb",
"fast_open": false
}

server 填写 0.0.0.0 允许所有设备连接,填写 127.0.0.1 则仅允许本机内环连接。
server_port 可以自己设定。
local_port 一般为 1080 。
method 加密方式选择目前还是比较安全的 “aes-256-cfb”。

启用 Shadowsocks 并置于后台运行:

sudo ssserver -c /etc/shadowsocks/config.json -d start 

至此 Shadowsocks 服务端就搭建好了。

配置 shadowsocks 客户端

现在就可以下载 shadowsocks for windows 客户端,填入服务器相关信息,服务器地址填服务器的 ip 地址,服务端口与 server_port 保持一致,采用 pac 方式,代理端口随意设定(这里以端口 1514 举例),但最好不要占用已使用的端口。

windows客户端配置

笔者使用的浏览器方案是经典的 Chrome+SwithyOmega 组合,SwithyOmega 配置如下:

SwithyOmega配置

测试一下,shadowsocks 是否连通。若正常就继续下面操作。

搭建 obfsproxy 服务端

安装 python-pip (已安装就忽略):

sudo apt-get install gcc python-pip python-dev

使用 pip 安装 obfsproxy:

sudo pip install obfsproxy

输入以下命令来运行 obfsproxy 服务端:

sudo /usr/local/bin/obfsproxy --data-dir=/tmp/scramblesuit-server scramblesuit --password=ZHESHIYIGEMIMAPROXYDEMIMA4444444 --dest=127.0.0.1:8888 server 0.0.0.0:12315

obfsproxy 支持多种混淆方式,scramblesuit 是 ofbs3 的增强版,其密码必须为 Base32 密码,(简单来理解)也就是由 26 个大写字母和 6 个数字组成的 32 位密码。

-–dest 后面表示的是服务器内环地址,端口号需要和 server_port 保持一致。 server 后面 0.0.0.0 表示的是服务器所有网段地址均通过 12315 这个端口来监听流量。

运行成功后会显示: 成功显示1

编辑 /etc/rc.local 文件,让服务端自动启动:(含括号)

(/usr/local/bin/obfsproxy --data-dir=/tmp/scramblesuit-server scramblesuit --password=ZHESHIYIGEMIMAPROXYDEMIMA4444444 -- dest=127.0.0.1:8888 server 0.0.0.0:12315 & >/dev/null 2>&1 &)

配置 obfsproxy 客户端

由于 obfsproxy 客户端不单独提供,就从 Tor 官网上下载 Tor Browser with obfsproxy。把下载下来的文件安装后从 TorBrowser\Tor\PluggableTransports\ 中将除了文件夹 fteproxy 外的所有文件提取至单独文件夹中。放在 C 盘根目录,方便运行。

更改 Shadowsocks 的配置为:

更新ss配置

这里的密码仍为一开始配置 shadowsocks 文件的密码,而不是 obfsproxy 的密码。

运行客户端需要使用 cmd 命令提示符:

obfsproxy scramblesuit --dest 填入服务器ip:12315 --password=ZHESHIYIGEMIMAPROXYDEMIMA4444444 client 127.0.0.1:10086

–-dest 后面的是服务器地址

运行成功的画面也是和服务端一样的(懒得再截图了,贴上图):

成功显示2

现在可以测试一下是否能连接上服务器了。(此法的 cmd 不能关闭,否则就断开连接了)

引用 Sykie Chen 在 Shadowsocks + obfsproxy 混淆翻墙的实现的方法来设置开机自启并隐藏 cmd 窗口:

新建文本文档,输入以下内容:

CreateObject("WScript.Shell").Run "obfsproxy\obfsproxy.exe scramblesuit --password=ZHESHIYIGEMIMAPROXYDEMIMA4444444 --dest=填入服务器ip:12315 client 127.0.0.1:10086",0

保存为 .vbs 格式,放到 C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp(Windows 8.1)


CC BY-NC-SA 4.0 本作品采用知识共享署名 - 非商业性使用 - 相同方式共享 4.0 国际许可协议进行许可。

comments powered by Disqus