Shadowsocks + cow 代理方案

首先搭建Shadowsocks,参见官方使用指南:

官方使用指南(英文) / 官方使用指南(中文)

这里选择了SS的python版本,事实上,cow本身提供了代理方案,但是Shadowsocks的操作空间更大。

官方指南使用 pip 安装SS环境,在一些没有安装pip的vps,需要先安装一下,ubuntu系的是

sudo apt-get install python-pip

接着就新建一个SS的配置文件 config.json 。可以新建一个 SS 目录,用来存放,方便寻找。

{
"server":"my_server_ip",
"server_port":8388,
"local_port":1080,
"password":"barfoo!",
"timeout":600,
"method":"table" //加密方案推荐 aes-256-cfb ,需安装 m2crypto
}

如果是单IP VPS,推荐使用 0.0.0.0 作为 server 的值。

加密方案使用 aes-256-cfb ,安装 m2crypto 。ubuntu 系

sudo apt-get install python-m2crypto

安装 gevent 可以提高 Shadowsocks 的性能:

sudo apt-get install python-gevent

SS 可以使用命令行参数覆盖默认配置,具体参见 命令行参数 。

:以上安装命令需要管理员权限。

接下来在配置文件(config.json) 文件所在目录使用

nohup ssserver > log &

这样可以在后台运行SS,断开SSH连接之后依旧可以使用SS,调试情况下,可以使用 ssserver 启动 SS,可以看到信息记录。

然后配置 cow 。官方文档: cow github 以 windows 版本为例 。

下载:cow 。也可以从 go 源码编译。

windows 版本的 cow 配置文件为目录下 rc.txt 。实际情况下,我们需要的部分很少。

#开头的行是注释,会被忽略
# 本地 HTTP 代理地址
# 配置 HTTP 和 HTTPS 代理时请填入该地址
# 或者在自动代理配置中填入 http://127.0.0.1:7777/pac
listen = http://127.0.0.1:7777
# SOCKS5 二级代理
# proxy = socks5://127.0.0.1:1080
# HTTP 二级代理
# proxy = http://127.0.0.1:8080
# proxy = http://user:password@127.0.0.1:8080
# shadowsocks 二级代理
proxy = ss://aes-256-cfb:password@1.2.3.4:8388
# cow 二级代理
# proxy = cow://aes-128-cfb:password@1.2.3.4:8388

由于这里使用SS作为二级代理,因此将其他二级代理的配置都注释了,可以根据自己的情况自行配制。

需要修改的有两个地方,首先是 listen 的端口,选一个好记又不冲突的吧。

另外是配置 SS 的参数。在 shadowsocks 二级代理处。

此处我已经使用了 aes-256-cfb 作为样例,可以根据自己的情况修改。冒号后填入SS密码,[code]@[/code]后填入服务器完整地址。

运行 cow-taskbar.exe 或者 cow-hide.exe 启动 cow 。前者会自动缩小到系统托盘,后者则是完全后台。不需要再额外运行 SS 本地程序。

配合浏览器端的代理扩展。例如 Chrome 上的 Proxy SwitchySharp 。在 HTTP/HTTPS 中填入 listen 参数。或者直接使用 pac 。

接来下就可以开始体验了。实际使用下,cow 的作用非常明显,相当于一个实时更新的 list ,无需再担心切换问题。

SS 和 cow 的代码、原理、其他使用方式都可以参照它们的 github 主页。其中SS还提供了 nodejs 及源码 等其他服务器版本,以及多平台的本地版本,可以在不同情况下使用。