Linux系统使用Clash命令行版完整配置指南

2026-08-01 阅读约 8 分钟

前言与Clash命令行版简介

在Linux环境下,尤其是无桌面环境的服务器或追求极致性能的工作站,使用图形界面客户端往往显得笨重且占用资源。Clash命令行版(如Clash Premium或目前社区主流的Clash Meta/mihomo)凭借其极低的资源消耗、强大的路由规则和灵活的RESTful API接口,成为了Linux用户的首选方案。

本文将摒弃泛泛而谈的理论,直接提供从安装、配置到进阶透明代理的完整实操指南。无论你是刚接触Linux的新手,还是希望优化服务器网络架构的老手,都能在此找到具体的参数与命令。如果你之前使用的是Windows系统,可以参考我们的Clash for Windows安装指南进行对比学习,两者的核心配置逻辑是完全一致的。

下载与安装Clash核心

步骤一:确认系统架构并下载核心

首先确认你的Linux系统架构,通常使用以下命令:

uname -m

如果是 x86_64,下载amd64版本;如果是 aarch64,下载arm64版本。以下以amd64为例,下载Clash Meta核心:

cd /tmp
wget https://github.com/MetaCubeX/mihomo/releases/download/v1.18.0/mihomo-linux-amd64-v1.18.0.gz
gunzip mihomo-linux-amd64-v1.18.0.gz
步骤二:安装到系统目录

将解压后的可执行文件移动到系统路径,并赋予执行权限:

sudo mv mihomo-linux-amd64-v1.18.0 /usr/local/bin/clash
sudo chmod +x /usr/local/bin/clash

执行 clash -v 验证是否安装成功,若输出版本号则说明安装完毕。

基础配置文件编写与导入

Clash的运行依赖于YAML格式的配置文件。我们需要在 /etc/clash/ 目录下创建配置文件。

sudo mkdir -p /etc/clash
sudo touch /etc/clash/config.yaml

一个最小可用的配置文件需要包含 mixed-portproxiesrules。关于YAML语法的详细解析,请参阅Clash YAML配置详解。以下是一个基础配置示例:

mixed-port: 7890
allow-lan: true
bind-address: '*'
mode: rule
log-level: info

dns:
  enable: true
  listen: 0.0.0.0:53
  enhanced-mode: fake-ip
  nameserver:
    - 223.5.5.5
    - 8.8.8.8

proxies:
  - name: "proxy-node-1"
    type: ss
    server: 1.2.3.4
    port: 8388
    cipher: aes-256-gcm
    password: "your_password"

proxy-groups:
  - name: "Proxy"
    type: select
    proxies:
      - proxy-node-1

rules:
  - MATCH,Proxy
注意

请务必将 proxies 中的节点信息替换为你实际购买的订阅参数。直接复制上述示例将无法连接网络。同时,确保YAML文件的缩进严格使用空格,不能使用Tab键。

配置Systemd服务实现开机自启

为了让Clash在后台稳定运行并随系统启动,我们需要配置Systemd服务。

步骤一:创建服务文件
sudo nano /etc/systemd/system/clash.service

填入以下内容:

[Unit]
Description=Clash Daemon
After=network.target

[Service]
Type=simple
User=root
ExecStart=/usr/local/bin/clash -d /etc/clash
Restart=on-failure

[Install]
WantedBy=multi-user.target
步骤二:启动并设置开机自启
sudo systemctl daemon-reload
sudo systemctl start clash
sudo systemctl enable clash
实用技巧

如果你不希望Clash以root权限运行,可以创建一个普通用户(如 clash),并将 User=root 修改为 User=clash,同时确保该用户对 /etc/clash 目录有读写权限,这符合最小权限原则。

配置系统级代理环境变量

Clash启动后,默认只监听 7890 端口。要让终端中的 curlwgetapt 等命令走代理,需要配置环境变量。

配置全局环境变量

创建 /etc/profile.d/clash.sh 文件:

sudo nano /etc/profile.d/clash.sh

写入以下内容:

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"
export no_proxy="localhost,127.0.0.1,::1"

执行 source /etc/profile.d/clash.sh 使其立即生效。此时在终端执行 curl -I https://www.google.com 即可测试代理是否生效。

开启TUN模式实现全局透明代理

环境变量只能代理支持该变量的应用。要接管系统所有流量(包括不支持代理的UDP流量和原生应用),需要开启TUN模式。

步骤一:修改配置文件

/etc/clash/config.yaml 中添加 tun 配置块:

tun:
  enable: true
  stack: system
  auto-route: true
  auto-detect-interface: true
  dns-hijack:
    - any:53
步骤二:开启内核IP转发

TUN模式依赖系统的IP转发功能,执行以下命令开启:

echo 'net.ipv4.ip_forward=1' | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
关键信息

TUN模式需要Clash以root权限运行,或者赋予可执行文件CAP_NET_ADMIN能力。配置完成后,重启Clash服务即可生效。关于更复杂的分流规则,建议参考Clash规则配置教程进行精细化调整,以实现国内外流量的完美分离。

常见问题排查与日志分析

在配置过程中,难免会遇到网络不通或配置错误的问题。掌握日志查看方法至关重要。

查看实时日志
sudo journalctl -u clash -f

通过日志,你可以清晰地看到Clash的路由决策、DNS解析状态和连接错误信息。

常见错误排查

1. 配置文件语法错误:启动前可使用 clash -t -d /etc/clash 测试配置文件的合法性,该命令会输出具体的错误行号。
2. 端口冲突:如果 7890 端口被占用,请修改 mixed-port 或使用 lsof -i:7890 停止冲突的进程。
3. TUN模式启动失败:检查是否以root权限运行,以及 auto-route 是否被正确识别。如果系统缺少 iproute2 工具包,请通过包管理器安装。
4. DNS污染问题:确保 dns.enhanced-mode 设置为 fake-ip,这能有效防止DNS污染导致的连接超时。