再谈Shadowsocks的部署和使用

作者 | 2018年10月15日

随着封锁的严重,通往外面世界的路越来越少。从另一角度看,封锁推动了相关技术的发展。目前流行的开源相关技术包括Shadowsocks(SS、酸酸)ShadowsocksR(SSR、酸酸乳)V2Ray`WireGuard等,直接服务终端用户的VPN和代理产品更是数不胜数。

对于有技术基础的同学,我一直建议且践行自行搭建服务器这条路,主要出于以下几点考虑:

  1. ExpressVPN, NordVPN等产品并不比自建便宜,速度上也无太多优势;
  2. 国内许多产品常有跑路或不可用的情况发生,相比之下vps厂商跑路更少;
  3. 万一对方服务器记录访问日志,请喝茶一请一个准;
  4. 自建服务器能全方面锻炼你的网络、系统管理、英文等多方面能力。

大体上看,自建服务器分为三步:1. 购买海外服务器;2. 部署服务端;3. 下载客户端,连接上网。第一步本人写过“一些vps商家整理”可供参考;客户端下载可从本站托管下载:Shadowsocks/SS客户端ShadowsocksR/SSR客户端 以及 V2Ray客户端

本文讨论第二步:部署Shadowsocks服务端。SS支持多平台,是近几年来一直有效的技术。无论客户端还是服务端,部署和使用都非常方便。鉴于其开源、简单易用且稳定的特点,从项目诞生以来本人一直在用且推荐。

SS现状

SS的原作者是clowwindy,每一位使用SS技术的人都不应该忘记。原作者2015年被有关部门请去喝茶,然后删除了GitHub上的项目。目前的SS由社区维护,社区官网是https://shadowsocks.org。SS相关的各个项目的代码库坐标可参见官方的GitHub主页:https://github.com/shadowsocks

ShadowSocksR(SSR)是SS的一个分支,由breakwa11创建。加入了混淆/伪装的特性。本人未曾使用过,但其Github的各个项目基本已不再更新。就目前来看,最新版的SSR基本上满足科学上网的需要。因为ss一直在发展和改进,故而是本人推荐的方式。

SS分服务端和客户端,接下来分两部分讨论。

服务端

可以从某些渠道获取免费或者付费账号,省去自行部署的麻烦。如果对隐私比较在意或者动手能力强,建议自行购买服务器搭建。就本人的使用体验而言,仅供个人常规使用、流量较小的服务器,被封ip的可能性很小(使用至今,没有被封过的IP)。

clowwindy写的Python服务端版本已经停止更新,不建议使用。目前仍处于活跃开发的服务端版本有libev(C语言)go(两个)和rust。相对于原版,这几个版本占用资源少,性能更好,推荐使用。

下文以libev版(目前最广泛使用的版本)说一下服务器端的部署,前提是你有一台境外服务器。CentOS/Fedora/RHEL系统建议从librehat维护的官方源安装SS。librehat是SS多个项目的核心贡献者,其中文博客:https://www.librehat.com/。其他系统的安装和使用请参考libev项目:https://github.com/shadowsocks/shadowsocks-libev

在CentOS 7下安装libev版的步骤是:

  1. https://copr.fedorainfracloud.org/coprs/librehat/shadowsocks/下载软件源配置文件放到/etc/yum.repos.d目录下:

    wget -O /etc/yum.repos.d/librehat-shadowsocks-epel-7.repo 'https://copr.fedorainfracloud.org/coprs/librehat/shadowsocks/repo/epel-7/librehat-shadowsocks-epel-7.repo'
    
  2. yum安装libev版的SS:

    yum install -y shadowsocks-libev
    

接下来编辑/etc/shadowsocks-libev/config.json配置文件,主要是填写端口号和密码。单用户配置文件为:

{
    "server":"0.0.0.0",
    "server_port":35697,
    "local_port":1080,
    "password":"#SADFas890as@#ASD",
    "timeout":60,
    "method":"aes-256-cfb",
    "fastopen": true
}

关于加密算法的选择,个人建议使用AES-256-CFBAHEAD系列算法。原因是加密强度足够高,并且几乎所有的客户端都支持(许多客户端不支持gcm类算法)。始终不应该使用的算法是table和RC4(这两种算法已被废弃)。

配置好后,将其放入后台执行即可(为避免不必要的麻烦,我们将日志清空):

nohup ss-server -c /etc/shadowsocks-libev/config.json > /dev/null 2>&1 &

注意:多用户配置应该使用ss-manager命令(ss-server不会识别多用户的配置),对应的配置文件是/etc/shadowsocks-libev/manager.json。一个多用户的配置示例:

{
    "server":"0.0.0.0",
    "local_port":1080,
    "timeout":60,
    "port_password": {
        "8080":"mima1",
        "8081":"mima2"
    },
    "method":"aes-256-cfb",
    "fastopen": true
}

后台执行的命令是:nohup ss-manager -c /etc/shadowsocks-libev/manager.json > /dev/null 2>&1 &

如果开启了防火墙,记得将SS的端口放行。

客户端

根据操作系统不同,各个平台的客户端下载地址如下:

  1. Windows(PC版),官方支持的Github地址:https://github.com/shadowsocks/shadowsocks-windows,编译好的exe下载地址:https://github.com/shadowsocks/shadowsocks-windows/releases
  2. MacOS: 官方支持的Github地址:https://github.com/shadowsocks/ShadowsocksX-NG,编译好的安装包下载地址:https://github.com/shadowsocks/ShadowsocksX-NG/releases
  3. android(安卓):官方支持的Github地址:https://github.com/shadowsocks/shadowsocks-android,编译好的APK地址:https://github.com/shadowsocks/shadowsocks-android/releases
  4. 跨平台libQtShadowsocks或者shadowsocks-qt5,有可能需要自行编译。

由于Github客户端的下载链接可能指向被封的AWS服务器,本站提供了最新版的国内下载地址:shadowsocks/ss客户端。针对ios无法下载的问题,请参考“获取科学上网客户端

下载安装好客户端后,首先配置服务器信息,测试与服务端连接是否正常。因安装包自带的PAC文件较旧,新加入的被屏蔽网址需要全局模式或者修改本地PAC文件才能正常访问。所以安装好后建议更新PAC信息,及时获取最新被屏蔽的网址列表。具体操作为:

右键SS客户端->PAC->从GFWList更新本地PAC

接着勾选“启用系统代理”,浏览器无需安装Switchy Omega等插件,使用系统代理的应绝大部分软件也能无需任何特殊设置,便能顺畅的访问外网,非常方便。

本文到此该结束了。如有疑问或建议欢迎指出,感谢阅读!

延伸阅读

  1. https://victor-notes.blogspot.com/2016/05/blog-post.html
  2. https://studymakesmehappy.blogspot.com/2018/06/2018.html
  3. https://wiki.archlinux.org/index.php/Shadowsocks_(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87)
打赏 赞(84)
微信
支付宝
微信二维码图片

微信扫描二维码打赏

支付宝二维码图片

支付宝扫描二维码打赏

再谈Shadowsocks的部署和使用” 有 8 条评论

  1. 头像吾心归去

    不需要太高调,用的人太多自然会被墙,最近真是越来越难了

    回复
  2. 头像忘了远方

    编辑/etc/shadowsocks-libev/config.json配置文件

    这步该咋配置啊。。应该输啥指令?直接把大括号粘进去显示这个

    -bash: server:207.148.97.184,: command not found之类的

    回复
    1. tlanyantlanyan 作者

      马上十一敏感时期,这几天又封了很多,属于正常现象。目前没有明显证据表明ss流量被识别出来了

      回复

发表评论

电子邮件地址不会被公开。 必填项已用*标注