前言

近日Clash家族代理软件通通寄,本来以为在服务器上安装一个Clash是非常容易的一件事,没想到还是踩了两个坑,好在最后都解决了,也顺利完成了代理上网的配置。

软件下载

原本软件有github仓库的,如今已经全部被删除,仅剩下部分用户保存的发布版软件尚能使用(也可以将就一下),我从github上找了一个最新的版本保存了一下,以便将来使用。可以在仓库内找到对应的压缩包下载,并解压linux版本至对应的安装路径下,如果不在环境变量内,则需要配置环境变量。

配置文件

clash使用配置的机场文件设置代理节点,默认的机场文件是在~/.config/clash文件夹下,在订阅的网站内将该配置文件下载下来并存放至该文件夹下,记得将该文件命名为config.yaml,否则软件将无法读取到该文件。如果为了方便更新配置文件,可以在.bashrc文件内创建以下函数,可以在需要时进行手动更新,同时,默认使用clash将开启系统代理:

1
2
3
4
5
6
7
8
9
10
11
function update_clash_config {
cd ~/.config/clash
wget -O config.yaml https://xxxxx.com/xxxxx
}
function clash_proxy {
export http_proxy=http://localhost:7890
export https_proxy=http://localhost:7890
clash
}
unset http_proxy
unset https_proxy

使用代理

在命令行窗口内使用命令clash即可,期间如果文件Country.db没有找到,软件将进行自动下载,并存放在相同的路径下。

实际使用中,例如,从谷歌云盘Google Drive中下载文件至服务器上,可以使用如下的缩写命令:

1
2
3
function google {
wget $(echo "https://drive.google.com/uc?export=download&id=${1}&confirm=yes")
}

其中待输入的字段为对应文件的id,可以从分享链接中获取到。也可以使用gdown库完成下载,该库要求安装tqdm,同时输入参数与上述缩写命令中的链接是相同的。值得注意的是,满足上述要求的下载文件需要权限是“Anyone with the link”,即对所有人公开的,大部分情况下论文分享的数据集或者模型文件不满足这一条件,需要将其转存至自己的云盘内,然后调整权限,再生成新的下载链接才能完成下载。以下载CelebA数据集为例,按照以下步骤进行:

  1. 转存文件:如下图,选择Make a Copy选项:
    转存文件
  2. 调整权限:进入自己的云盘内,选择以下选项:
    选中分享
    然后在弹出的窗口中选择:
    调整权限
  3. 生成新的下载链接:就在刚才调整完毕的窗口左下角,选取“Copy link”,如下:https://drive.google.com/file/d/19tUq1dEay6DKYzKFhjHJA0ilBeYFlnZy/view?usp=sharing,将其中的`/file/d/`字段复制出来,即`19tUq1dEay6DKYzKFhjHJA0ilBeYFlnZy`,然后使用上述命令进行下载即可。