无论是更新下载缓慢,还是从 Github clone 项目时失败,抑或是配置开发环境时久久不能成功,在 Linux 服务器上安装使用代理软件都是常见的需求。
在 Windows 中用户常使用 Clash for Windows,在 MacOS 上使用 ClashX,在 OpenWRT 上常见的是 OpenClash,借助其完善的规则分流机制,用户设置完成后无需花费太多心思去维护,可以节省大量时间和精力。
以上平台使用 UI 界面,但其实 Linux 终端也可以使用 Clash。为读者提供一条龙服务,本文将分几部分介绍 Clash for Linux 的安装、配置、自启动以及设置系统代理。
本文所需软件和文件已上传百度网盘备用,链接在文末。
一、安装 Clash
首先访问 Github 发布地址:Releases · Dreamacro/clash (github.com),下载对应 Linux 版本:

大多数时候下载 clash-linux-amd64-vxxxx.gz
即可。
# 创建一个用于存放 Clash 文件的目录
mkdir ~/Clash
# 下载文件到此处
wget https://github.com/Dreamacro/clash/releases/download/v1.10.0/clash-linux-amd64-v1.10.0.gz
如果服务器上直接下载很慢,可以在本地下载好文件,再通过 WinSCP 之类的工具传到服务器上。
# 解压文件到这个目录
gunzip clash-linux-amd64-v1.10.0.gz
# 为了方便,将解压出来的文件改名为 clash
mv clash-linux-amd64-v1.10.0 clash
# 添加执行权限
chmod +x clash
# 运行以初始化 Clash
./clash
二、配置 Clash
首次运行之后会在用户配置目录生成配置文件,例如耕读君测试时产生的目录为 /home/louis/.config/clash
,里面有 config.yaml 和 Country.mmdb 两个文件。
不过也有可能运行过程中会报错,因为 Country.mmdb 下载不下来:

值得庆幸的是,已有网友共享 Country.mmdb 文件,耕读君也已上传百度网盘备用,可访问文末链接获取。
将 Country.mmdb 放入配置文件所在目录,接下来就要修改 config.yaml 文件。有些机场本身提供了 Clash 专用配置文件,可直接使用;有些则没有提供,需要自行转换后获取。将配置文件放到此目录,删除自动生成的 config.yaml,再把自己的配置文件重命名为 config.yaml 。

接下来复制该目录下的 Country.mmdb 和 config.yaml 两个文件到之前创建好的 ~/Clash 目录下,再次运行 Clash 程序:
./clash
正常情况下就会看到它已经成功启动了。但是,还需要设置系统代理才能让流量通过 Clash。大多情况下 config.yaml 中已经写好了规则,包括 HTTP/HTTPS 代理的端口,如果不确定的话可以打开 config.yaml 查看。
执行以下命令即可临时设置系统代理:
export http_proxy=http://127.0.0.1:7890
export https_proxy=http://127.0.0.1:7890
此时 尝试 PING 国外的网址应该就可以 PING 通了,还 可以通过 wget https://www.youtube.com
这样的命令来测试实际访问情况。
三、Clash 自启动及后台运行
手动运行 Clash 会发现它是在“前台”运行的,当我们退出命令,程序也就退出了。另外如果开机后总需要手动运行的话也让人觉得繁琐,最好的办法就是将 Clash 注册为服务,并设置为开机自启动。
将以下脚本保存为 /etc/systemd/system/clash.service
:
[Unit]
Description=Clash service
After=network.target
[Service]
Type=simple
User=louis(你的用户名)
ExecStart=/home/louis/Clash/clash(Clash 程序路径)
Restart=on-failure
RestartPreventExitStatus=23
[Install]
WantedBy=multi-user.target
使用以下命令启动服务,设置开机启动,以及检查服务状态(使用方法参考:用 systemctl 管理服务:查看状态、启动/停止服务、开启/取消开机自启动):
# 重载服务
sudo systemctl daemon-reload
# 开机启动
sudo systemctl enable clash
# 启动服务
sudo systemctl start clash
# 查看服务状态
sudo systemctl status clash
四、代理设置
Clash 已经开机自启动了,如果每次都要手动设置系统代理的话也很费时,因此建议将命令写入 Bash 配置文件中。
运行 vim ~/.bashrc
,在文件末尾添加:
export http_proxy=127.0.0.1:7890
export https_proxy=127.0.0.1:7890
保存后运行 source ~/.bashrc
使配置生效。之后可以重启服务器,然后运行 sudo systemctl status clash
检查 Clash 的服务状态,再访问需要代理的网站验证是否可用。
本文所需文件已整理上传百度网盘:
感谢!成功使用! 原来注册服务后,重启就可以了。 我还纠结为什么不行… 重启后自启动,一切正常 linux mint 21.1 版本。 2023年03月18日19:42:56
不客气,有用就好😊
ping不走代理,可以用curl测试
感谢指正
问一下 slackware (unraid)里面没有这个工具
是在 rc.d 里面玩的。
——-
做 自启动的话,可能还要写到 /boot/config/go 文件里面