Skip to content

Linux 使用 Clash 代理客户端:安装、systemd 常驻与终端代理 ​

在无桌面环境的 Linux 服务器上,如果网络访问需要统一经过代理网关(例如隔离网络中只有代理机能出站),Clash 是一个常用选择:单个静态二进制、配置文件驱动、自带规则分流。本文记录从下载、配置到 systemd 服务化的完整步骤,以及让终端命令(curl、git、包管理器)走代理的环境变量写法。

仓库现状 ​

原版 Clash 仓库(Dreamacro/clash)已于 2023 年 11 月归档停止维护,目前社区活跃的接续分支是 MetaCubeX/mihomo(即 Clash.Meta),配置格式与使用方式基本兼容。下文步骤以原版 Clash 的用法为基准,对 mihomo 同样适用,新环境建议直接安装 mihomo。

安装 ​

从 release 页面下载对应架构的二进制(Ubuntu x86_64 为 clash-linux-amd64,mihomo 的命名类似):

bash
gunzip clash-linux-amd64-v1.xx.0.gz
mv clash-linux-amd64-v1.xx.0 clash
chmod u+x clash

首次启动时 Clash 会自动下载 Country.mmdb(GeoIP 数据库,用于按地理位置分流)到 ~/.config/clash。网络较慢时可从 maxmind-geoip release 手动下载后放到同一位置。

配置文件 ​

Clash 的全部行为由一个 YAML 配置决定。网络管理员提供订阅链接时,直接下载为 config.yaml:

bash
curl -o config.yaml 'https://订阅链接'

短链接服务有重定向,需加 -L:

bash
curl -L -o config.yaml 'https://短链接'

配置的核心字段:port/mixed-port 是本地代理监听端口(默认 HTTP 7890、SOCKS 7891,mixed-port 则单端口双协议);proxies 定义上游代理;rules 决定哪些目标走代理、哪些直连。

systemd 服务化 ​

登录会话退出后前台进程会被挂断,用 systemd 把 Clash 注册为系统服务实现常驻与开机自启。把可执行文件与配置归位:

bash
sudo mkdir /etc/clash
sudo cp clash /usr/local/bin
sudo cp config.yaml Country.mmdb /etc/clash/

创建 /etc/systemd/system/clash.service:

ini
[Unit]
Description=Clash daemon, A rule-based proxy in Go.
After=network.target

[Service]
Type=simple
Restart=always
ExecStart=/usr/local/bin/clash -d /etc/clash

[Install]
WantedBy=multi-user.target

-d 指定配置目录,Restart=always 保证进程异常退出后自动拉起。启用并启动:

bash
sudo systemctl enable clash
sudo systemctl start clash

查看运行状态与日志:

bash
sudo systemctl status clash
sudo journalctl -u clash -f

让终端命令走代理 ​

Clash 起来之后只是一个本地端口,命令行工具不认系统代理设置,需要环境变量:

bash
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:7891

验证:

bash
curl -v https://www.google.com 2>&1 | grep -i connected

想登录后自动生效,把上面三行写进 ~/.bashrc。临时关闭代理:

bash
unset http_proxy https_proxy all_proxy

git 若需单独配置:git config --global http.proxy http://127.0.0.1:7890(仅对 HTTP(S) 协议的远端生效,SSH 协议需另行配置 ProxyCommand)。

小结 ​

单个二进制加一份 YAML,Clash(或其接续分支 mihomo)在服务器上的部署成本很低:下载二进制、放好 config.yaml 与 GeoIP 库、写一个十行的 systemd unit,即可获得带规则分流与自动重启的常驻代理;终端侧配好三个环境变量即可让绝大多数命令行工具走代理。

参考 ​

最近更新

基于 VitePress 构建