我尝试过各种翻墙的方法,花两千块买终身免费的 VPN 服务、购买年费使用的红杏 Chrome 插件、改 hosts 等等,都是希望稳定的网络能让我顺利的访问国外资源来给工作带来便利,但是不能如愿以偿,两千块块的终身服务连官网都找不到了、红杏在两会期间被彻底屏蔽无法使用、hosts 只不过是指向了一些国内还没停止掉的 google 的服务器。这些方法都泡汤了,直到最近在工作时用上了 shadowsocks,让我彻底摆脱了这些烦恼。shadowsocks 的好处我没办法一一列举,这里只能把搭建它的环境写的劲量清楚,帮助更多人可以顺利访问国外的资源。 参考资料:Shadowsocks Windows 使用说明
目标
- 可以访问所有被屏蔽的域名
- 可以在国内访问的域名不经过服务器,国内访问不了的网络才走服务器转接
- 自己管理服务器
- 流量自己控制
- 可以分享给朋友使用
如何实现
- 要实现以上需求,需要自己有一台国外的服务器。
- 你需要在你购买的服务器上安装 shadowsocks server 并启动。
- 最后你只需要下载 shadowsoaks 客户端连接你的服务器即可实现访问各种被墙的资源了。
购买服务器
前段时间 aliyun 提供了美国硅谷、和新加坡的服务器购买,拿硅谷的服务器举例,一台 1核、1G、根据流量峰值计费(0.05元/GB)的服务器来说,一个月只需 45 元。如果你只单纯用 Google 查查资料、看一看国外的网站,那一个月多说花费 5 块的流量费用,加起来也不过 50 元,但这换来的将是超级稳定和可控的翻墙服务器,你还可以分享给你熟悉的人一起使用。 购买时最好买 Ubuntu 系统,这样可以快速方便的搭建我们的环境,一定要记得你设置的密码,我们可以使用 Mac OS X 自带的 ssh 或者一些连接 ssh 服务器的工具来连接,比较有名的有 SecureCRT、Xshell 等。通过 aliyun 给出的公网 IP,我们就可以连接到你购买的服务器了。
我直接使用 Mac 下再带的 ssh 连接到服务器上。
接下来我们来安装 shadowsocks server。
安装 shadowsocks
在 Ubuntu 上安装 shadowsocks 非常简单,只需两条命令
1 | apt-get install python-pip |
启动服务端,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 时设定的信息进行添加。
- 地址:你阿里云服务器的IP地址
- 加密:启动服务器指定的加密方式,我使用的是rc4-md5
- 密码:启动服务器指定的密码
- 备注:随便写一个方便添加了多个服务器时区分
点击确定后服务器就添加好了。此时如果是 Windows 在桌面右下角就能看到一个小飞机的图标,在 Mac 上桌面的右上角。右键小飞机选择 服务器->aliyun 硅谷
,并选择 自动代理模式
、Shadowsocks: 打开
。这样我们就成功开启代理并连接上我们的服务器了。不出意外的话此时你打开浏览器访问 google、youtube、gmail 等都可以正常访问了。
更新 PAC
PAC 全称 Proxy auto-config,自动代理配置,里面包含了大量收集起来的被国内屏蔽的域名和 IP 地址,因为被屏蔽的地址在不断的增加,如果你发现某些域名无法访问,首先你要想到的就是更新 PAC。右键小飞机选择 从 GFWList 更新 PAC
。 如果 PAC 更新后依然不能访问你需要访问的域名,那也不难,你可以自己手动自定义指定某些域名从你的服务器走。但到目前为止,我还没用这样的功能,如果你真的发现有些域名并没有被加入到 PAC 配置列表,可以参考 Shadowsocks 的 wiki 自定义添加。
全局模式和自动代理模式
自动代理模式就不多说了,就是根据 PAC 列表判断如果某域名在 PAC 列表中则使用代理服务器访问,而如果不在 PAC 列表则不经过服务器访问。全局模式则忽略 PAC 列表,所有都经过代理服务器,此时你访问任何网站都会从你硅谷的服务器跑一圈再回来。比如我们使用全局模式打开 www.ip138.com 看到的就是硅谷的 IP 地址。
总结
至此服务器的搭建和客户端的链接方法都介绍完毕了,关于 Shadowsoaks 的问题可以到 Shadowsocks 的 github issues 中提问,前提是先把 wiki 看一遍哦!