我尝试过各种翻墙的方法,花两千块买终身免费的 VPN 服务、购买年费使用的红杏 Chrome 插件、改 hosts 等等,都是希望稳定的网络能让我顺利的访问国外资源来给工作带来便利,但是不能如愿以偿,两千块块的终身服务连官网都找不到了、红杏在两会期间被彻底屏蔽无法使用、hosts 只不过是指向了一些国内还没停止掉的 google 的服务器。这些方法都泡汤了,直到最近在工作时用上了 shadowsocks,让我彻底摆脱了这些烦恼。shadowsocks 的好处我没办法一一列举,这里只能把搭建它的环境写的劲量清楚,帮助更多人可以顺利访问国外的资源。 参考资料:Shadowsocks Windows 使用说明

目标

  • 可以访问所有被屏蔽的域名
  • 可以在国内访问的域名不经过服务器,国内访问不了的网络才走服务器转接
  • 自己管理服务器
  • 流量自己控制
  • 可以分享给朋友使用

如何实现

  • 要实现以上需求,需要自己有一台国外的服务器。
  • 你需要在你购买的服务器上安装 shadowsocks server 并启动。
  • 最后你只需要下载 shadowsoaks 客户端连接你的服务器即可实现访问各种被墙的资源了。

购买服务器

前段时间 aliyun 提供了美国硅谷、和新加坡的服务器购买,拿硅谷的服务器举例,一台 1核、1G、根据流量峰值计费(0.05元/GB)的服务器来说,一个月只需 45 元。如果你只单纯用 Google 查查资料、看一看国外的网站,那一个月多说花费 5 块的流量费用,加起来也不过 50 元,但这换来的将是超级稳定和可控的翻墙服务器,你还可以分享给你熟悉的人一起使用。 屏幕快照 2015-11-29 下午3.12.01 购买时最好买 Ubuntu 系统,这样可以快速方便的搭建我们的环境,一定要记得你设置的密码,我们可以使用 Mac OS X 自带的 ssh 或者一些连接 ssh 服务器的工具来连接,比较有名的有 SecureCRT、Xshell 等。通过 aliyun 给出的公网 IP,我们就可以连接到你购买的服务器了。 屏幕快照 2015-11-29 下午3.31.50 我直接使用 Mac 下再带的 ssh 连接到服务器上。 屏幕快照 2015-11-29 下午3.34.18 接下来我们来安装 shadowsocks server。

安装 shadowsocks

在 Ubuntu 上安装 shadowsocks 非常简单,只需两条命令

1
2
apt-get install python-pip
pip install shadowsocks

启动服务端,443 是端口,建议自己换一下,这个端口在连接的时候会用到。password 是连接的密码,需要你自定义。rc4-md5 是加密方式。

1
ssserver -p 443 -k password -m rc4-md5

如果想在后台运行。

1
sudo ssserver -p 443 -k password -m rc4-md5 --user nobody -d start

如果要停止服务端

1
sudo ssserver -d stop

如果要查看日志

1
sudo less /var/log/shadowsocks.log

客户端连接

Windows客户端下载:https://github.com/shadowsocks/shadowsocks-windows/releases Mac OS X 客户端下载:https://github.com/shadowsocks/shadowsocks-iOS/releases 下载完成后首次运行会提示你添加服务器信息。根据你启动 shadowsocks 时设定的信息进行添加。 屏幕快照 2015-11-29 下午3.53.01

  • 地址:你阿里云服务器的IP地址
  • 加密:启动服务器指定的加密方式,我使用的是rc4-md5
  • 密码:启动服务器指定的密码
  • 备注:随便写一个方便添加了多个服务器时区分

点击确定后服务器就添加好了。此时如果是 Windows 在桌面右下角就能看到一个小飞机的图标,在 Mac 上桌面的右上角。右键小飞机选择 服务器->aliyun 硅谷,并选择 自动代理模式Shadowsocks: 打开。这样我们就成功开启代理并连接上我们的服务器了。不出意外的话此时你打开浏览器访问 google、youtube、gmail 等都可以正常访问了。 屏幕快照 2015-11-29 下午3.58.08

更新 PAC

PAC 全称 Proxy auto-config,自动代理配置,里面包含了大量收集起来的被国内屏蔽的域名和 IP 地址,因为被屏蔽的地址在不断的增加,如果你发现某些域名无法访问,首先你要想到的就是更新 PAC。右键小飞机选择 从 GFWList 更新 PAC屏幕快照 2015-11-29 下午4.05.03 如果 PAC 更新后依然不能访问你需要访问的域名,那也不难,你可以自己手动自定义指定某些域名从你的服务器走。但到目前为止,我还没用这样的功能,如果你真的发现有些域名并没有被加入到 PAC 配置列表,可以参考 Shadowsocks 的 wiki 自定义添加。

全局模式和自动代理模式

自动代理模式就不多说了,就是根据 PAC 列表判断如果某域名在 PAC 列表中则使用代理服务器访问,而如果不在 PAC 列表则不经过服务器访问。全局模式则忽略 PAC 列表,所有都经过代理服务器,此时你访问任何网站都会从你硅谷的服务器跑一圈再回来。比如我们使用全局模式打开 www.ip138.com 看到的就是硅谷的 IP 地址。 屏幕快照 2015-11-29 下午4.11.58

总结

至此服务器的搭建和客户端的链接方法都介绍完毕了,关于 Shadowsoaks 的问题可以到 Shadowsocks 的 github issues 中提问,前提是先把 wiki 看一遍哦!