前言
我的笔记本之前装的是 Windows 10 Pro (LTSC 魔改) + Ubuntu 18.04 LTS,这个组合用了差不多一年。但是可能是因为 Windows 10 魔改过的原因,总会有一些奇奇怪怪的 bug,比如一直无法正常运行 Win32 版本的网易云音乐。终于在前两天下定决心重装了系统,然后也顺便把 Ubuntu 换成了心水已久的 Manjaro。
尝试
初探 Clashy
装好了 Manjaro 之后自然要配置科学上网的一套东西,先是下载了 Clashy,但是运行起来发现更新配置文件好像总会有些问题,外加上实在接受不了这个界面,索性换成了原版 Clash。
转战 Clash
安装 Clash
原版 Clash 在 Manjaro 下的安装十分方便,有现成的 AUR 包,直接在终端内运行
1 | yaourt -S clash |
便可以直接安装了。
注:yaourt
安装方法本文不涉及。
配置后台运行及开机自启动
这里使用的是官方文档所推荐的 pm2
,这里同样使用
1 | yaourt -S pm2 |
便可以安装。安装后运行如下命令
1 | pm2 start clash |
这时候 Clash 就会在后台运行且加入到开机自启动的列表之中了。
创建 Clash 配置文件更新脚本
运行 Clash 后默认会在 $HOME/.config/clash
目录下生成 config.yaml
并下载 Country.mmdb
,如果 Country.mmdb
下载失败的话可以手动下载一份然后复制到这个目录。
重点是 config.yaml
,在 CFW / ClashX / Clash for Android 中都提供了内建的配置文件托管功能,但是在 Linux 下我们就要自力更生了。
首先要获取你的托管配置地址,然后新建一个脚本文件(这里以 update_subscription.sh
为例),写入如下内容:
1 |
|
注意以下几点:
- 将
your_user_name
替换为实际的用户名 SUBSCRIPTION_LINK
后的内容请替换成实际的托管地址port
替换为配置文件中所设置的 RESTful API 端口
这个脚本的作用是,从托管地址下载配置文件并覆盖原有的 config.yaml
,同时通过 Clash 提供的 RESTful API 重载配置文件
配置自动更新
这里所使用的工具是 crontab
,使用如下命令安装并配置开机自启动:
1 | yaourt -S cronie |
新建一个空文件以方便载入 crontab
1 | nano ~/MyCrontab |
在文件中写入以下内容
1 | 0 */3 * * * cd /home/your_user_name/.config/clash; bash /home/your_user_name/.config/clash/update_subscription.sh > /home/your_user_name/.config/clash/subscription_history.log 2>&1 |
同样要将 your_user_name
替换为实际用户名。
这里的执行效果是每 3 个小时更新一次配置文件并将日志写入文件,crontab 语法此处不涉及,请自行搜索
接下来就是装入 crontab
1 | crontab ~/MyCrontab |
这样就可以实现脚本的自动更新以及配置重载啦
后记
归根结底还是学艺不精,光是最后折腾 crontab 前前后后就用了好几个小时的时间(捂脸),好在最后成果还是不错的。