Shadowsocks介绍以及配置

毕业了回国过年,而且要呆挺长一段时间。回去之前就想到 “墙”这东西我是无法避免的,而且会给我带来很大的困扰。对于一个搞网络安全的人说,花钱买vpn翻墙实在是有点丢人的。前前后后也想到过几种简单方法,比如Web proxy, SSH tunnel,也在自己的Server上搭了OpenVPN的服务器,最后发现都不能绕过去。

墙越来越高,越来越厚, 这些简单的方法已经没办法躲过墙的DPI(Deep packet inspection). 曾经读过一篇博客介绍了博主与墙之间的斗争: http://blog.zorinaq.com/my-experience-with-the-great-firewall-of-china/,里面介绍了博主各种尝试绕过的方法以及效果. 自己也尝试写了个流量转发+sock5 的工具,最终也只是能在Terminal里curl 一个墙外网站 – -… 真正用起来还是不太现实。好在虽然墙越来越厉害,但总有人愿意站出来与之抗争,后来我发现一个强大的一个工具: Shadowsocks. 在这里和大家分享一下,觉得至少MSSI的同学以后会有这个需求,也有能力去使用这个工具。

 

 

什么是Shadowsocks:

附上Shadowsocks的技术白皮书,感兴趣的同学可以去了解一下它的技术原理,还是挺通俗易懂的: https://www.wispwisp.com/wp-content/uploads/2019/01/whitepaper.pdf (原链接会被墙,所以我搬运过来了). 这是项目源码的releases: https://github.com/shadowsocks/shadowsocks/releases

 

服务器端:

首先你需要一个有root权限的VPS,国外的VPS还是很便宜的(一个月5$~10$),在百度也能搜索购买国外的VPS。推荐用在香港的VPS,和国内距离近连接速度比较快,系统用ubuntu 14/16都可以。

这里有详细介绍如何在VPS上设置shadowsocks的Server: https://github.com/shadowsocksr-backup/shadowsocks-rss/wiki/Server-Setup

这是目前我服务器上所用的启动命令:

python server.py -p 12345 -k password -m aes-256-cfb -O auth_sha1_v4 -o http_simple -d start
#说明:-p 端口 -k 密码 -m 加密方式 -O 协议插件 -o 混淆插件

 

电脑客户端:

这是ShadowsocksX-NG-R Github的链接: https://github.com/qinyuhang/ShadowsocksX-NG-R/releases 国内可以直接访问,但是好像不能下载。我把最新的MacOS 的客户端也搬运过来了,可在这里下载:https://www.wispwisp.com/wp-content/uploads/2019/01/ShadowsocksX-NG-R8.dmg

在客户端添加想连接的Server:

客户端的设置需要与之前提到的服务器端的设置相匹配:

 

手机iOS端:

我在用的是NetShuttle, 可以在App store下载

 

电脑端可以生成当前配置的二维码,手机端扫描一下二维码就可以导入配置,用起来非常方便。

 

手机App扫描二维码:

 

 

 

最后在这里感谢Shadowsocks的原作者clowwindy: https://github.com/clowwindy

 

附上关于Shadowsocks的一些故事:https://chinadigitaltimes.net/chinese/2016/08/gfw-blog%EF%BD%9Cshadowsocks-%E7%9A%84%E5%89%8D%E4%B8%96%E5%90%8E%E7%94%9F/