GIScoding

虎皮猫咖

linux 系统配置 clash 代理

43
2024-11-20

linux 系统配置 clash 代理

本文解决 linux 服务器连接 Github、Huggingface 等国外网站速度过慢问题,仅演示工具配置流程。

实验室服务器为每位成员配置了一个专属 docker 容器,对于 python 的 pip、conda 等下载工具,已经替换为国内大学的下载源。但是针对 Github 类网站却没有配置加速代理,导致执行 git clone 类方式下载速度慢、连接不上等问题。上述问题可配置 Clash for Linux 解决。

Clash 是款用 Go 语言开发的软件,可以直接下载预编译的版本进行部署使用网络代理,与 Windows 不同,Linux 提供了多种架构的预编译二进制文件,下载要注意区分,演示平台的 Ubuntu 为 X86_64 架构,选择的为 Linux-amd64 文件。

下面的配置分为有 GUI桌面系统和纯命令行两种模式进行讲解:

命令行操作步骤

clash 安装

命令行操作部分大部分参考此篇博客: 《Ubuntu 使用 Clash For Linux 客户端教程》感谢原作者!

打开终端切换到超管权限,创建 Clash 文件夹,由于 Github Clash 仓库已经删库跑路了,目前只能通过本站下载地址进行 Wget 在线下载,以下只支持 X86_64 架构的系统使用,其他架构请查看《Clash(小猫咪) 全平台最新客户端下载地址

2025.04.10 更新,下述https://git.opclash.com/开头的下载地址已经失效,需要采用第二种方法,在https://github.com/Kuingsmile/clash-core/releases 下载对应架构文件

# 切换超级管理员,实验室服务器默认为root用户,可不执行此操作
su


# 创建文件夹
cd && mkdir clash
cd clash

# 下面两种架构需要依据自己电脑来设置,一般而言,intel 和 amd 的cpu 为 amd64 架构
# linux-amd64架构
wget https://git.opclash.com/kehuduan/clash/clash-linux-amd64-v1.18.0.gz

# linux-arm64架构
wget https://git.opclash.com/kehuduan/clash/clash-linux-arm64-v1.18.0.gz

image.png

另 clash 来源下载地址:https://github.com/Kuingsmile/clash-core/releases

image.png

下载 Clash 文件完成,进行解压文件,给予文件权限,并为 Clash 文件改名移入另一个文件目录中,之所以如此操作是为了后续加入开机自启做准备,可通过查看版本确认操作是否成功,如下图:

# 解压文件
gzip -d clash-linux-amd64-v1.18.0.gz

# 给予权限
chmod +x clash-linux-amd64-v1.18.0

# 移动并改名
mv clash-linux-amd64-v1.18.0 /usr/local/bin/clash

# 查看版本
clash -v

image.png

mv clash-linux-amd64-v1.18.0 /usr/bin/clash

启动 Clash 客户端生成 config.yaml 文件,进入 $HOME/.config/clash/ 目录,通过命令导入 Clash 订阅链接到 config.yaml 文件,再次执行启动 Clash For Linux 客户端,如下图:

# 首次启动
clash

# 启动 clash 提示以上错误,可直接使用 ctrl+c 跳过执行 cd $HOME/.config/clash/
# INFO[0000] Can't find config, create a initial config file 
# INFO[0000] Can't find MMDB, start download              
# ERRO[0002] create addr  127.0.0.1:7890 tcp listener error. err:listen tcp 127.0.0.1:7890:  bind: address already in use


# 进入目录
cd $HOME/.config/clash/

# 导入订阅,订阅地址需自备
wget -O config.yaml 订阅地址

# 再次启动
clash

# 如果导入订阅不行,可手动导入节点,将window中clash配置文件复制到config.yaml中
ls $HOME/.config/clash/config.yaml
vim /root/.config/clash/config.yaml

image.png

修改系统代理

运行 clash 后还需要修改系统代理,这样流量才能走 clash

  1. 运行 cd ~ 切换到 root 账户目录;
  2. 运行 vim .bashrc 编辑,将下列文本内容添加至文件中:
    image.png
# 7890为clash软件的默认代理端口,依据本机条件自主调整
export http_proxy=http://127.0.0.1:7890
export https_proxy=http://127.0.0.1:7890
export all_proxy=socks5://127.0.0.1:7890

# 配置代理开启开关
function proxy_on(){
    export all_proxy=socks5://127.0.0.1:7890  
    export http_proxy=http://127.0.0.1:7890
    export https_proxy=http://127.0.0.1:7890
    echo -e "已开启代理"
}


function proxy_off(){
    unset all_proxy
    unset http_proxy
    unset https_proxy
    echo -e "已关闭代理"
}

重新加载终端配置文件

source ~/.bashrc

使用函数

#在终端输入 proxy_on 代表使用代理 
proxy_on 
#在终端输入 proxy_off 代表关闭代理 
proxy_off

测试是否连接外网成功

# 测试链接谷歌
curl https://www.google.com

# 有返回结果即可(不能使用PING)
wget google.com

image.png

image.png

设置客户端开机自启实验室docker服务器可不配置此项

使用 systemd 来解决,先通过命令生成 systemd 配置文件,接着配置开机自启,并启动 clash 服务,为 Ubuntu 设置环境变量,如下图:

# 生成 systemd 配置文件,如果输入流没有结束,使用 Ctrl + D 手动结束输入
cat > /etc/systemd/system/clash.service <<EOF
[Unit]
Description=Clash - A rule-based tunnel in Go
Documentation=https://github.com/Dreamacro/clash/wiki
[Service]
OOMScoreAdjust=-1000
ExecStart=/usr/local/bin/clash -f /root/.config/clash/config.yaml
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
EOF

# 配置开机自启
systemctl enable clash

# 启动 clash 服务
systemctl start clash

 systemctl status clash:查看 clash 服务运行状态
systemctl stop clash :停止服务
systemctl restart clash: 重启服务
systemctl is-enabled clash: 查看服务是否正在运行
journalctl -xe:查看运行日志

GUI 操作界面

clash 下载,使用的 clash for window 版本
0.20.39 版本

老 18.09 版本

clash 安装

由于 Linux 发行版本比较多,这里无法对每一个发行版做介绍,下面以 Ubuntu 下使用为例。首先根据上方的链接获取安装包。

解压缩,注意将具体的文件名字替换为自己下载的文件名。

在解压出来的文件夹中找到 cfw 这个可执行文件。
image.png

然后在终端中进入该文件夹,执行 ./cfw 即可启动 Clash for Windows 的 GUI 版本。

然后回到 Clash for Windows 页面,在界面中点击左侧的 Profiles,然后在右侧的输入框中输入配置链接,点击 Download 即可。

订阅成功之后会在下方产生一个配置,点击配置,选中。

然后再点击左侧 Proxies,选择需要使用的代理,点击 Apply 即可。

设置系统代理


由于 Clash for Windows 的系统代理功能只在 Windows 和 macOS 下生效,所以在 Linux 下需要手动设置系统代理。

在系统设置中,找到网络代理设置。

设置网络代理。

完成设置后,即可使用代理。