引入

SSR是一种代理软件。(如果不知道是什么也没有必要读这篇文章了。)尽管有一些声音声称SSR对信息安全是有害的,流量比较容易被识别,但是仍不能改变现在绝大多数的网络加速服务都是使用SSR作为媒介。

尽管windows端和android端都有比较简单的配置方法,在linux上还是比较困难的。尤其是有些服务商提供订阅链接,有很多节点,且一直在更新,使用命令行化的SSR很不友好,而开一个虚拟机跑又太过夸张了。因此,经过搜索,我找到了较好的解决方案。

Electron-SSR

首先需要安装electron-ssr,在AUR里面有,你可以直接yay -S electron-ssr来安装。但是需要注意的是,因为这个包里面加了130MB左右的electron,安装速度就不敢恭维了。你可以通过重新修改PKGBUILD,更换国内淘宝的cnpm源,来加快(应该是这样?我不知道,傻乎乎的安了一晚上)。

安装了之后才是这篇文章的主题。

配置

当然,你安装完之后就可以看见漂亮而且功能强大的electron-ssr了。功能比单纯的ssr-python多多了,几乎与windows端的功能相同,而且还有electron写的美观的UI。前端的大佬写的就是好看。

但是使用方法并不像windows端那样显然。我开始按照windows那样的使用方法,根本不能连上,以为这只是个中看不中用的花瓶。后来才发现是我的能力问题。

与windows端自动全局代理不同,这个版本的electron-ssr只提供一个SOCKS5转发功能,并不能修改linux自身的代理。你需要在程序的配置界面配置一个转发端口,然后将linux的代理转向这个端口。绝大多数的linux都支持系统层面的SOCKS5代理,你可以直接填 SOCKS5://127.0.0.1:XXXX

当然,像我这种用Archlinux的,每天都要pacman -Syu,滚一下就是600MB的下载,平时都挂的SJTUG源,长期系统挂着节点太奢侈了,而切换代理又比较麻烦,需要配置文件。因此就利用了默认的electron-ssr性能,即只提供SOCKS5转发,并对一些需要加速的程序进行了配置。

配置git

我不用gitee,通常链接的git是AUR和github的git。而这两个因为CDN的原因都比较慢。

你可以执行:

1
2
git config --global https.proxy socks5://127.0.0.1:1080
git config --global https.proxy socks5://127.0.0.1:1080

来配置。

当然,如果要取消,你也可以执行

1
2
git config --global --unset http.proxy
git config --global --unset https.proxy

配置MAKEPKG

MAKEPKG没有一个特定的代理配置,因此在打开了以下几个配置文件后(均可,作用域不同),需要单独对命令进行配置。

1
2
3
/etc/makepkg.conf
$XDG_CONFIG_HOME/pacman/makepkg.conf
~/.makepkg.conf

打开之后会有这样的文本:

1
2
3
4
5
6
7
8
9
10
11
12
#########################################################################
# SOURCE ACQUISITION
#########################################################################
#
#-- The download utilities that makepkg should use to acquire sources
# Format: 'protocol::agent'
DLAGENTS=('file::/usr/bin/curl -gqC - -o %o %u'
'ftp::/usr/bin/curl -gqfC - --ftp-pasv --retry 3 --retry-delay 3 -o %o %u'
'http::/usr/bin/curl -gqb "" -fLC - --retry 3 --retry-delay 3 -o %o %u'
'https::/usr/bin/curl -gqb "" -fLC - --retry 3 --retry-delay 3 -o %o %u'
'rsync::/usr/bin/rsync --no-motd -z %u %o'
'scp::/usr/bin/scp -C %u %o')

按照需要添加相应的socks5代理选项如下。比如对于curl执行的配置。(我的代理端口是127.0.0.1:1080)

1
2
3
4
5
6
7
8
9
10
11
12
#########################################################################
# SOURCE ACQUISITION
#########################################################################
#
#-- The download utilities that makepkg should use to acquire sources
# Format: 'protocol::agent'
DLAGENTS=('file::/usr/bin/curl -gqC - -o %o %u --socks5 127.0.0.1:1080'
'ftp::/usr/bin/curl -gqfC - --ftp-pasv --retry 3 --retry-delay 3 -o %o %u --socks5 127.0.0.1:1080'
'http::/usr/bin/curl -gqb "" -fLC - --retry 3 --retry-delay 3 -o %o %u --socks5 127.0.0.1:1080'
'https::/usr/bin/curl -gqb "" -fLC - --retry 3 --retry-delay 3 -o %o %u --socks5 127.0.0.1:1080'
'rsync::/usr/bin/rsync --no-motd -z %u %o'
'scp::/usr/bin/scp -C %u %o')

取消就直接删除对应的语句即可。

配置chrome

这一步需要你安装chrome的SwitchyOmega插件。

这一步在没有加速器的情况下可能比较困难。你可以先安装“谷歌访问助手”的试用版安装这个插件,再将这个试用版卸载。

然后建立一个情景模式,如下图填写。 switchyomega-config

这样就可以正常连接了。当然,SwitchyOmega的功能很多,你也可以订阅一些PAC规则,用autoswitch功能自动加速,这里就不再赘述了。