再谈科学上网

By | 2018年10月15日

转载请注明文章出处:https://tlanyan.me/on-fuck-gfw-again/

近日,一条关于VPN的新闻引起了大范围的讨论,也提醒了部分人:VPN有风险,F墙需谨慎。

从早期的免费代理,自X门,到GoAgent,SSH隧道,再到如今使用的SS,本人算得上科学上网的老司机。但如果不谨慎驾驶,老司机难免有翻车的时候。所以一直以来,本人的首要目标是自己能顺利获取信息,顺道帮助有需求的朋友。大肆宣扬某种技术的牛逼,或高调的秀优越感,只会让以后F墙更艰难。

某工具本人一直未用过,原因是其太过高调。我们国家实行社会主义制度,对资本主义那一套东西的打击向来毫不手软。不知道该工具是否如宣传般牛逼,但个人觉得再厉害的网络工具,在金正恩将军的物理断网、肉身封锁下也会无效,更何况金将军还有犬决、炮决、核决等小手段可使用。我不认为其网站所谓的“大杀器”能与社会主义制度的优越性抗衡。在目前新时代的环境下,在这方面越高调只会越快的堵死以后的路。

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

SS现状

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

SSR是SS的一个分支,由breakwa11创建。据加入了混淆/伪装的特性,本人未使用过。但从Github上看,SSR似乎已经黄了?还是说觉得已经足够成熟,无需更新?

使用上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目录下。Linux命令是:

    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":"#[email protected]#ASD",
    "timeout":60,
    "method":"aes-256-cfb",
    "fastopen": true
}

关于加密算法的选择,个人建议使用AES-256-CFB或。原因之一是加密强度足够高,其次几乎所有的客户端都支持。始终不应该使用的算法是table和RC4(这两种算法已被废弃)。

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

nohup ss-server -c /etc/shadowsocks-libev/config.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. 安卓:官方支持的Github地址:https://github.com/shadowsocks/shadowsocks-android,编译好的APK地址:https://github.com/shadowsocks/shadowsocks-android/releases
  4. 跨平台:libQtShadowsocks或者shadowsocks-qt5,有可能需要自行编译。

主流系统中,比较尴尬的是iOS,也就是iPhone/iPad这些设备的SS客户端。非iOS系统,某个人有客户端,可以将安装包发送分享给其他人。但iOS不一样,软件都要从App Store里安装。一台设备安装了,因为被下架、系统不支持旧程序等原因,新设备也可能无法安装和使用。

虽然苹果爸爸在应用审核等多方面很强势,但我们的祖国母亲更强硬。苹果在国内不至于头埋进土里,但头至少弯到膝盖。苹果的应用商店上,代理相关应用被下架是常有的事。另外iOS上可用的开源客户端貌似只有Potasto,且作者的最新版本已经不再开源。下架搜不到,没有开源的替代,iOS用户需要换区/付费等才能保证客户端可用。鉴于iOS客户端的不稳定性,本人之前写了构建自己iOS客户端的博文,详情请点击:构建自己的iOS网络代理客户端

下载安装好客户端后,首先配置服务器信息,接着建议更新PAC信息。网上的图文文章教你配置服务器信息,本文不再详述。安装包自带的PAC文件较旧,新加入的被屏蔽网址需要全局模式或者修改本地PAC文件才能正常访问。所以安装好后在线更新PAC,及时获取最新被屏蔽的网址列表,本人认为非常必要。具体操作为:

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

配置好服务器信息,更新PAC后,勾选“启用系统代理”即可让(几乎)所有的应用都能顺畅的访问网络。启用系统代理后,浏览器无需再安装Switchy Omega等插件,绝大部分软件也能无需任何特殊设置便能访问外网,非常方便。

由于Github客户端的下载链接可能指向被封的AWS服务器,本站提供了最新版的下载地址:点击进入客户端下载

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

延伸阅读

  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)

相关文章

发表评论

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