对我个人来说,使用代理服务器相对于 VPN 来说,最大的优点在于它的兼容性非常好,VPN 有时候会无法连接、自动断开等,但代理服务器不会出现这种情况。特别是升级到 Yosemite 或者 iOS 8 之后,有些路由器和系统的 VPN 服务有冲突,导致 VPN 无法使用,这时使用代理服务器就最好了。
搭建代理服务器需要用到两个开源库,COW 和 shadowsocks。后者是可选的,其实完全可以只使用 COW 来搭建,但对于我来说更喜欢使用它一些。
我们使用 COW 运行在本地,使用 shadowsocks 做二级代理。
如果你只需要在你当前的系统中使用代理服务器,那么你只需要一台国外的服务器即可。
如果你需要将代理服务器分享给他人用,那么你还需要另一台服务器(最好是国内的)。
无论是自己使用还是要分享给他人使用,必须先在国外的服务器搭建好二级代理。具体步骤为:
首先登录你在国外的服务器,然后根据你的系统选择使用下面的命令安装 shadowsocks。
Debian / Ubuntu
1
2
apt-get install python-pip
pip install shadowsocks
如果你添加了 Debian sid 的源,可直接 apt-get install shadowsocks.
CentOS
1
2
3
yum install python-setuptools
easy_install pip
pip install shadowsocks
Windows
下载安装 OpenSSL for Windows。然后类似 Linux 通过 easy_install 或 pip 来安装。 如果你不清楚如何使用 easy_install,也可以直接下载,然后用 python shadowsocks/server.py
代替下文的 ssserver
。
配置 shadowsocks
创建配置文件:
1
sudo mkdir -p /etc/shadowsocks && vim /etc/shadowsocks/config.json
将下面的内容粘贴进去并保存退出(密码请自行更改):
1
2
3
4
5
6
7
8
9
10
11
{
"server":"0.0.0.0",
"server_port":8388,
"local_address": "127.0.0.1",
"local_port":1080,
"password":"mypassword",
"timeout":300,
"method":"aes-256-cfb",
"fast_open": false,
"workers": 1
}
开始运行 shadowsocks
1
ssserver -c /etc/shadowsocks/config.json
如果没有错误的话,打开你电脑的终端,开始安装 COW。
OS X, Linux (x86, ARM): 执行以下命令
1
curl -L git.io/cow | bash
环境变量 COW_INSTALLDIR
可以指定安装的路径,若该环境变量不是目录则询问用户。
Windows: 点此下载 熟悉 Go 的用户可用 go get github.com/cyfdecyf/cow
从源码安装。
编辑 ~/.cow/rc
(Linux,假设你安装在主目录) 或 rc.txt
(Windows),使用下面的配置替换原有的内容并保存退出:
1
2
3
4
5
6
# 注意我将其他配置选项全部移除了,仅仅是为了更清晰,当你熟悉之后可以替换回默认的配置选项。
listen = https://127.0.0.1:7777
# 将 password 替换为你国外服务器上 shadowsocks 配置中的密码
# 将 1.2.3.4 替换为你国外服务器的公网 IP 地址
proxy = ss://aes-256-cfb:[email protected]:8388
现在启动 COW:
- Unix 系统在命令行上执行
cow &
(若 COW 不在PATH
所在目录,请执行./cow &
) - Windows
- 双击
cow-taskbar.exe
,隐藏到托盘执行 - 双击
cow-hide.exe
,隐藏为后台程序执行 - 以上两者都会启动
cow.exe
- 双击
现在你的代理服务器地址是 https://127.0.0.1:7777/pac
,为浏览器设置代理服务器之后,测试可以访问被墙网站的话,返回到国外的服务器,安装 supervisor 以便让 shadowsocks 在后台运行。