Clash for Ubuntu 完整安装与使用指南 – wiki基地


Clash for Ubuntu 完整安装与使用指南

引言

Clash 是一款备受欢迎的基于规则的多平台代理客户端,以其强大的功能、灵活的配置和优秀的性能而闻名。它支持多种代理协议,如 Shadowsocks(R), Vmess, Trojan, Snell 等,并允许用户根据自定义规则进行精细化的流量分流。对于 Ubuntu 用户来说,无论是需要访问特定网络资源、保护隐私,还是希望优化网络连接,Clash 都是一个强大的工具。

本指南旨在提供一个全面而详细的教程,涵盖在 Ubuntu 系统上安装、配置和使用 Clash 的完整流程。我们将从基础概念讲起,介绍多种安装方式,重点讲解配置文件的获取与管理,指导如何将 Clash 作为系统服务运行,并说明如何在不同场景下(系统全局、终端、浏览器等)使用 Clash 代理。此外,我们还将探讨一些图形化界面(GUI)客户端的使用以及常见问题的排查方法。本文力求详尽,希望能帮助您顺利地在 Ubuntu 上部署和使用 Clash。

本指南主要内容:

  1. Clash 简介与核心概念
  2. 安装 Clash 核心程序
    • 方法一:直接下载官方预编译二进制文件(推荐)
    • 方法二:(可选) 通过包管理器(若有可靠来源)
  3. 获取与配置 Clash
    • 理解 config.yaml 配置文件
    • 获取配置文件(订阅链接是关键)
    • 下载和管理 GeoIP 和 GeoSite 数据库
    • 验证配置文件
  4. 运行 Clash
    • 前台运行(用于测试)
    • 后台运行:设置为 Systemd 服务(推荐)
  5. 配置系统与应用使用 Clash 代理
    • 配置 Ubuntu 系统全局代理
    • 配置终端(Shell)代理
    • 配置浏览器代理(推荐使用扩展)
    • 配置特定应用程序代理
  6. 使用 Clash GUI 客户端(可选但方便)
    • Clash Verge 简介与安装
    • 使用 GUI 管理 Clash
  7. Clash Web UI (Yacd / Razord)
    • 访问与使用 Web 控制面板
  8. 进阶话题
    • 理解 Clash 代理模式(Rule / Global / Direct)
    • 更新 Clash 核心与配置文件
  9. 常见问题与故障排查
  10. 总结与注意事项

1. Clash 简介与核心概念

  • Clash Core: 这是 Clash 的核心命令行程序,负责处理所有的代理逻辑、规则匹配和流量转发。它是运行 Clash 的基础。
  • config.yaml: Clash 的主配置文件,采用 YAML 格式。它定义了代理服务器信息、代理组(策略组)、路由规则等。Clash 的行为完全由这个文件控制。
  • 代理协议 (Proxies): Clash 支持多种代理协议,如 SS, SSR, VMess, Trojan, Snell 等。您需要在配置文件中提供具体服务器的连接信息。
  • 代理组 (Proxy Groups): 允许将多个代理服务器组合在一起,并定义选择策略,如 select (手动选择), url-test (自动选择延迟最低), fallback (故障转移), load-balance (负载均衡)。
  • 规则 (Rules): Clash 的核心功能之一。规则定义了哪些流量应该走哪个代理组(或直连 DIRECT,或阻止 REJECT)。规则可以基于域名、IP CIDR、地理位置 (GeoIP)、进程名等。规则按顺序匹配,第一个匹配到的规则生效。
  • 模式 (Mode): 通常指配置文件中预设的顶级代理组(如 Proxy, Global),用户可以通过切换模式快速改变整体的代理策略。常见的模式有:
    • Rule (规则模式): 根据 rules 列表进行智能分流。这是最常用也是推荐的模式。
    • Global (全局模式): 所有(或大部分)流量都通过选定的代理服务器。
    • Direct (直连模式): 所有(或大部分)流量都直接连接,不通过代理。
  • Web UI: Clash Core 内建了一个 HTTP 服务,可以通过浏览器访问一个控制面板(如 Yacd 或 Razord),用于实时查看连接、切换策略组节点、查看日志等。

2. 安装 Clash 核心程序

在 Ubuntu 上安装 Clash Core 最可靠、最通用的方法是直接从 Clash 的官方 GitHub Releases 页面下载预编译的二进制文件。

方法一:直接下载官方预编译二进制文件(推荐)

  1. 确定系统架构:
    首先,确定您的 Ubuntu 系统架构。在终端中运行:
    bash
    uname -m

    常见的输出有 x86_64 (表示 64 位 Intel/AMD) 或 aarch64 / arm64 (表示 64 位 ARM,如树莓派或某些服务器)。

  2. 访问 Clash GitHub Releases:
    打开浏览器,访问 Clash 核心项目的 GitHub Releases 页面。通常是 https://github.com/Dreamacro/clash/releases。请注意查找 Clash Core 项目,而不是 Premium 内核或其他 GUI 项目的 Releases。

  3. 下载对应版本的压缩包:
    在最新的 Release 版本中,找到与您系统架构匹配的文件。通常文件名格式类似 clash-linux-amd64-vX.Y.Z.gz (对应 x86_64) 或 clash-linux-arm64-vX.Y.Z.gz (对应 aarch64)。
    您可以使用浏览器下载,也可以在终端中使用 wget 命令下载(请将下面的 URL 替换为您找到的实际下载链接):
    bash
    # 示例:下载 amd64 版本的 v1.18.0 (请替换为最新版链接)
    wget https://github.com/Dreamacro/clash/releases/download/v1.18.0/clash-linux-amd64-v1.18.0.gz

  4. 解压文件:
    下载完成后,使用 gzip 命令解压:
    bash
    # 示例:解压下载的文件 (文件名会对应您下载的版本)
    gzip -d clash-linux-amd64-v1.18.0.gz

    解压后,您会得到一个名为 clash-linux-amd64-v1.18.0 (或类似名称) 的可执行文件。

  5. 重命名并赋予执行权限:
    为了方便使用,将其重命名为 clash,并添加执行权限:
    “`bash
    # 示例:重命名 (文件名会对应您下载的版本)
    mv clash-linux-amd64-v1.18.0 clash

    添加执行权限

    chmod +x clash
    “`

  6. 移动到系统路径 (推荐):
    clash 可执行文件移动到系统的 PATH 环境变量包含的目录中,这样您就可以在任何位置直接运行 clash 命令。推荐使用 /usr/local/bin
    bash
    sudo mv clash /usr/local/bin/

    您需要输入管理员密码。

  7. 验证安装:
    在终端中运行以下命令,检查 Clash 是否成功安装并查看版本号:
    bash
    clash -v

    如果看到类似 Clash vX.Y.Z ... 的输出,说明 Clash Core 已成功安装。

方法二:通过包管理器(谨慎使用)

有时,非官方的源或 Snap/Flatpak 包可能提供 Clash。但这些包可能不是最新的,或者维护者不可靠。除非您确信来源的安全性和及时性,否则不推荐使用这种方法安装 Clash Core。直接从官方 GitHub 下载通常是最好、最安全的选择。


3. 获取与配置 Clash

Clash 的行为完全由其配置文件 config.yaml 决定。您需要获取一个有效的配置文件才能使用 Clash。

理解 config.yaml 配置文件

这是一个 YAML 格式的文件,包含了以下关键部分:

  • port: HTTP 代理端口 (默认 7890)
  • socks-port: SOCKS5 代理端口 (默认 7891)
  • redir-port: 透明代理端口 (Linux TProxy / Redirect,需要 root 权限,不常用)
  • allow-lan: 是否允许局域网连接 (设为 true 可让同一局域网其他设备连接)
  • mode: 默认模式 (Rule / Global / Direct)
  • log-level: 日志级别 (info / warning / error / debug / silent)
  • external-controller: Web UI 的访问地址和端口 (默认 127.0.0.1:9090)
  • external-ui: 指定 Web UI (Yacd / Razord) 所在的目录或 URL (可选)
  • secret: (可选) 为 external-controller 设置访问密码,增强安全性。
  • proxies: 定义所有可用的代理服务器列表(节点信息)。
  • proxy-groups: 定义策略组,组合 proxies 并设置选择策略。
  • rules: 定义流量分流规则列表。

获取配置文件(订阅链接是关键)

手动编写 config.yaml 非常复杂且耗时。绝大多数用户通过 订阅链接 来获取配置文件。

  1. 什么是订阅链接?
    它是一个 URL,由您的代理服务提供商提供。访问这个 URL 会返回一个符合 Clash 规范的 config.yaml 文件内容(或者是需要转换的基础配置文件)。

    • 重要提示: 请从 可信赖的 代理服务提供商获取订阅链接。自行承担使用代理服务的风险和法律责任。本指南不提供或推荐任何具体的服务商。
  2. 下载配置文件:
    假设您已经获得了一个 Clash 订阅链接 YOUR_SUBSCRIPTION_URL。您需要将这个链接的内容保存为 config.yaml 文件。Clash 默认会查找以下位置的配置文件:

    • $HOME/.config/clash/config.yaml (推荐)
    • 当前工作目录下的 config.yaml

    使用 wgetcurl 下载并保存到推荐位置:
    “`bash

    创建配置目录 (如果不存在)

    mkdir -p $HOME/.config/clash

    使用 wget 下载并保存 (将 YOUR_SUBSCRIPTION_URL 替换为真实链接)

    wget -O $HOME/.config/clash/config.yaml “YOUR_SUBSCRIPTION_URL”

    或者使用 curl 下载并保存

    curl -L -o $HOME/.config/clash/config.yaml “YOUR_SUBSCRIPTION_URL”

    ``
    *
    -O(wget) 或-o(curl) 指定输出文件名。
    *
    -L` (curl) 跟随重定向。
    * URL 通常需要用引号括起来,以防特殊字符干扰。

下载和管理 GeoIP 和 GeoSite 数据库

Clash 的规则可以使用 GEOIPGEOSITE 条件进行匹配,这需要相应的数据库文件。

  • Country.mmdb: GeoIP 数据库,用于根据 IP 地址判断地理位置(国家)。
  • GeoSite.dat: GeoSite 数据库,包含常见的网站域名分类列表。

您需要下载这两个文件并将它们放置在 Clash 配置目录下 ($HOME/.config/clash/)。

  1. 下载 Country.mmdb:
    推荐使用 Loyalsoldier 维护的版本(更新较勤):
    bash
    wget -O $HOME/.config/clash/Country.mmdb https://github.com/Loyalsoldier/v2ray-rules-dat/releases/latest/download/Country.mmdb

  2. 下载 GeoSite.dat:
    同样推荐 Loyalsoldier 的版本:
    bash
    wget -O $HOME/.config/clash/GeoSite.dat https://github.com/Loyalsoldier/v2ray-rules-dat/releases/latest/download/geosite.dat

    注意: Clash Premium 内核可能需要不同的 Geo 数据库(如 geoip.dat),请根据您使用的内核和配置文件要求进行调整。标准开源版 Clash Core 使用 Country.mmdb。文件名也需注意大小写,确保与配置文件中的 geoip-databasegeosite-database (如果显式指定了的话) 或默认约定匹配。通常 Country.mmdbgeosite.dat 是标准 Clash Core 的约定。

验证配置文件

在运行 Clash 之前,强烈建议先验证配置文件的语法是否正确。Clash 提供了 -t 选项用于测试配置文件。

“`bash

指定配置目录,并测试配置文件

clash -t -d $HOME/.config/clash
“`

  • -d $HOME/.config/clash: 指定配置文件的所在目录。Clash 会在该目录下查找 config.yaml, Country.mmdb, GeoSite.dat 等。
  • -t: 测试模式,只检查配置语法,不启动代理服务。

如果配置文件没有语法错误,您会看到类似 Configuration file XXX test is successful 的信息。如果存在错误,Clash 会指出错误的位置和原因,您需要根据提示修改 config.yaml 文件。


4. 运行 Clash

配置文件准备好之后,就可以运行 Clash 了。

前台运行(用于测试)

直接在终端运行 clash 命令,可以查看实时日志输出,方便调试。

“`bash

指定配置目录,在前台启动 Clash

clash -d $HOME/.config/clash
“`

Clash 会加载配置文件,启动 HTTP 和 SOCKS5 代理监听端口,并开始处理网络请求。您会在终端看到详细的日志信息。按 Ctrl + C 可以停止 Clash。

这种方式适合临时使用或调试,但不适合长期运行,因为关闭终端窗口会导致 Clash 停止。

后台运行:设置为 Systemd 服务(推荐)

为了让 Clash 在后台稳定运行,并且能在系统启动时自动启动,推荐将其设置为 Systemd 服务。

  1. 创建 Systemd 服务文件:
    使用文本编辑器(如 nanovim)创建一个服务文件。需要 sudo 权限:
    bash
    sudo nano /etc/systemd/system/clash.service

  2. 编辑服务文件内容:
    将以下内容粘贴到文件中。请务必将 User=Group= 后面的 your_username 替换为您自己的 Ubuntu 用户名! 这是为了让 Clash 以普通用户权限运行,更安全。

    “`ini
    [Unit]
    Description=Clash daemon service
    After=network.target NetworkManager.service systemd-networkd.service iwd.service

    [Service]
    Type=simple
    User=your_username # !!!替换为你自己的用户名!!!
    Group=your_username # !!!替换为你自己的用户名!!!
    WorkingDirectory=/home/your_username/.config/clash # !!!替换为你自己的用户主目录!!!
    ExecStart=/usr/local/bin/clash -d /home/your_username/.config/clash # !!!替换为你自己的用户主目录!!!
    Restart=on-failure
    RestartSec=10
    LimitNPROC=500
    LimitNOFILE=1000000

    [Install]
    WantedBy=multi-user.target
    “`

    • Description: 服务的描述。
    • After: 确保在网络服务启动后才启动 Clash。
    • User/Group: 极其重要,指定运行 Clash 的用户和组。不要使用 root 除非您有特殊需求且了解风险。
    • WorkingDirectory: 设置 Clash 的工作目录,确保它能找到配置文件和数据库文件。请务必将路径中的 your_username 替换为实际用户名。
    • ExecStart: 指定启动 Clash 的命令,包括可执行文件路径和 -d 参数指定的配置目录。同样需要替换路径中的 your_username
    • Restart=on-failure: 如果 Clash 意外退出,Systemd 会尝试自动重启它。
    • RestartSec: 重启前的等待时间。
    • LimitNPROC/LimitNOFILE: 增加进程和文件描述符的限制,对于高并发代理可能有用。
    • WantedBy: 表示该服务应该在多用户模式下启用。
  3. 保存并关闭编辑器:
    nano 中,按 Ctrl + X,然后按 Y 确认保存,最后按 Enter 确认文件名。

  4. 重载 Systemd 配置:
    让 Systemd 读取新的服务文件:
    bash
    sudo systemctl daemon-reload

  5. 启动 Clash 服务:
    bash
    sudo systemctl start clash

  6. 检查服务状态:
    bash
    sudo systemctl status clash

    如果服务成功启动,您应该看到 active (running) 的状态信息。同时会显示最近的日志。按 q 退出状态查看。

  7. 设置开机自启 (可选但推荐):
    如果您希望每次系统启动时 Clash 都自动运行:
    bash
    sudo systemctl enable clash

    创建了一个符号链接,使得服务在启动时被加载。

  8. 管理 Clash 服务:

    • 停止服务: sudo systemctl stop clash
    • 重启服务: sudo systemctl restart clash
    • 禁用开机自启: sudo systemctl disable clash
    • 查看实时日志: sudo journalctl -u clash -f (按 Ctrl + C 退出)
    • 查看全部日志: sudo journalctl -u clash

5. 配置系统与应用使用 Clash 代理

Clash Core 运行后,它会在本地监听 HTTP 和 SOCKS5 端口(默认分别是 7890 和 7891)。您需要将系统或应用程序的代理设置指向这些端口,流量才能通过 Clash。

配置 Ubuntu 系统全局代理

这种方法会尝试让大部分遵守系统代理设置的应用程序通过 Clash。

  1. 打开 Ubuntu 的 设置 (Settings)
  2. 导航到 网络 (Network)
  3. 找到 网络代理 (Network Proxy) 设置,点击旁边的齿轮图标。
  4. 选择 手动 (Manual)
  5. HTTP 代理 (HTTP Proxy)HTTPS 代理 (HTTPS Proxy) 字段中,都填入 127.0.0.1 作为地址,端口填入 Clash 的 HTTP 端口(默认为 7890)。
  6. Socks 主机 (Socks Host) 字段中,填入 127.0.0.1 作为地址,端口填入 Clash 的 SOCKS5 端口(默认为 7891)。
  7. (可选)您可以在 忽略主机 (Ignored Hosts) 中添加不需要走代理的地址,例如 localhost, 127.0.0.0/8, ::1
  8. 关闭设置窗口即可生效。

注意: 系统全局代理并非对所有应用都有效。一些应用(特别是命令行工具和某些特殊网络库的应用)可能不遵守系统设置。

配置终端(Shell)代理

对于命令行工具(如 wget, curl, apt, git 等),您需要设置环境变量来使其通过代理。

  1. 临时设置 (当前终端会话有效):
    “`bash
    # 设置 HTTP 和 HTTPS 代理
    export http_proxy=”http://127.0.0.1:7890″
    export https_proxy=”http://127.0.0.1:7890″

    或者设置 SOCKS5 代理 (一些工具支持 socks5)

    export all_proxy=”socks5://127.0.0.1:7891″

    (可选)设置不走代理的主机

    export no_proxy=”localhost,127.0.0.1,::1″
    ``
    * 请根据您的 Clash 配置选择使用 HTTP 端口 (
    7890) 还是 SOCKS5 端口 (7891)。HTTP 代理通常更通用。all_proxy是一些工具(如curl`)支持的 SOCKS 代理变量。
    * 设置后,当前终端中运行的网络命令就会尝试通过代理。

  2. 永久设置 (对新打开的终端生效):
    将上述 export 命令添加到您的 Shell 配置文件中。

    • 如果是 Bash (默认 Shell): 编辑 ~/.bashrc 文件 (nano ~/.bashrc),在文件末尾添加 export 行。
    • 如果是 Zsh: 编辑 ~/.zshrc 文件 (nano ~/.zshrc),在文件末尾添加 export 行。

    添加后,保存文件,然后运行 source ~/.bashrc (或 source ~/.zshrc) 使其在当前会话生效,或者重新打开一个终端。

  3. 取消终端代理:
    bash
    unset http_proxy
    unset https_proxy
    unset all_proxy # 如果设置了的话
    unset no_proxy # 如果设置了的话

    或者直接关闭设置了代理的终端窗口。

配置浏览器代理(推荐使用扩展)

虽然可以设置系统全局代理,但浏览器使用代理的最佳实践是安装代理管理扩展,例如 SwitchyOmega (适用于 Chrome/Chromium/Firefox)。

  1. 安装 SwitchyOmega: 在您的浏览器扩展商店搜索并安装 “Proxy SwitchyOmega”。
  2. 配置 SwitchyOmega:
    • 打开 SwitchyOmega 选项。
    • 新建情景模式 (New Profile),例如命名为 “Clash”。
    • 选择代理协议为 HTTP,服务器填 127.0.0.1,端口填 7890 (Clash 的 HTTP 端口)。
    • (可选)可以再创建一个 SOCKS5 的情景模式,协议选 SOCKS5,服务器 127.0.0.1,端口 7891
    • 保存设置。
  3. 使用 SwitchyOmega:
    • 点击浏览器工具栏上的 SwitchyOmega 图标。
    • 您可以选择:
      • [直接连接] (Direct): 不使用任何代理。
      • [系统代理] (System Proxy): 跟随操作系统的代理设置。
      • Clash (或其他您命名的情景模式): 强制所有浏览器流量通过 Clash。
      • (推荐) Auto Switch (自动切换模式): 这是 SwitchyOmega 的强大功能。您可以配置规则列表(例如使用 GFWList),让访问特定网站时自动切换到 Clash 代理,访问其他网站时则直连。这通常比 Clash Core 的规则模式更灵活,因为可以在浏览器层面快速切换。

配置特定应用程序代理

一些应用程序(如 Telegram, Docker, некоторые IDE)有自己的网络代理设置选项。您需要在这些应用程序的设置中手动配置代理,通常选择 HTTP 或 SOCKS5,并填入 127.0.0.1 和对应的端口 (78907891)。


6. 使用 Clash GUI 客户端(可选但方便)

虽然 Clash Core 是命令行程序,但有许多第三方开发的图形用户界面 (GUI) 客户端,可以极大地简化 Clash 的管理和使用。这些 GUI 通常会自带或允许您指定 Clash Core,并提供友好的界面来:

  • 导入/管理配置文件(通常直接支持订阅链接)
  • 轻松切换代理模式(Rule / Global / Direct)
  • 在策略组中手动选择节点
  • 查看实时流量速度和连接信息
  • 测试节点延迟
  • 管理 Clash Core 进程(启动/停止)

Clash Verge 简介与安装

Clash Verge 是目前比较流行和活跃维护的一个跨平台 Clash GUI 客户端。

  1. 访问 Clash Verge GitHub Releases:
    打开浏览器,访问 https://github.com/zzzgydi/clash-verge/releases
  2. 下载对应 Ubuntu 的包:
    找到最新版本,下载适用于 Linux 的文件。通常有 .deb (适用于 Debian/Ubuntu) 和 .AppImage (通用 Linux 可执行包) 格式。

    • .deb 包:下载后,可以通过文件管理器双击安装,或者使用命令 sudo dpkg -i clash-verge_*.deb 安装。如果提示依赖问题,尝试运行 sudo apt --fix-broken install
    • .AppImage 包:下载后,给文件添加执行权限 chmod +x Clash.Verge_*.AppImage,然后直接运行 ./Clash.Verge_*.AppImage

使用 GUI 管理 Clash

以 Clash Verge 为例(其他 GUI 大同小异):

  1. 启动 Clash Verge: 从应用程序菜单启动,或者运行 AppImage 文件。
  2. 导入配置文件:
    • 通常在 “Profiles” (配置文件) 或类似区域。
    • 可以直接粘贴您的 Clash 订阅链接 URL,GUI 会自动下载并处理。
    • 也可以导入本地的 config.yaml 文件。
  3. 选择配置文件: 激活您想要使用的配置文件。
  4. 系统代理: 在 “Settings” (设置) -> “System Proxy” (或类似名称) 处,打开开关。GUI 会自动帮您配置 Ubuntu 的系统全局代理。您可能需要提供管理员密码。
  5. 选择模式: 在主界面或 “Proxies” (代理) 区域,通常有 Rule / Global / Direct 的切换按钮。
  6. 选择节点:
    • 进入 “Proxies” 区域,您会看到配置文件中定义的各个策略组 (Proxy Groups)。
    • 对于 select 类型的组,您可以手动点击选择要使用的节点。
    • 对于 url-test 类型的组,通常可以点击测速按钮,GUI 会测试所有节点的延迟并自动选择最优节点。
  7. 查看状态: 主界面通常会显示实时的上传/下载速度。”Connections” (连接) 区域可以查看当前的活动连接及其路由情况。

使用 GUI 客户端可以让 Clash 的日常使用变得非常简单直观,特别适合不熟悉命令行的用户。GUI 通常会管理 Clash Core 的运行,您无需再手动配置 Systemd 服务(除非您希望 Core 单独运行)。


7. Clash Web UI (Yacd / Razord)

Clash Core 内建了一个 Web 服务器,可以通过浏览器访问一个控制面板 (Web UI),用于监控和管理 Clash。默认监听地址是 http://127.0.0.1:9090(可以在 config.yamlexternal-controller 中修改)。

  1. 确保 Clash Core 正在运行。
  2. 确保 config.yaml 中配置了 external-controllerexternal-ui

    • external-controller: '127.0.0.1:9090' (这是 API 接口)
    • external-ui: dashboard (这里的 dashboard 是一个目录名,需要您下载 Yacd 或 Razord 的文件并放到这个目录下,通常是 $HOME/.config/clash/dashboard)

    更简单的方法 (推荐): 许多现代的 config.yaml 文件(尤其是通过订阅生成的)可能已经内嵌了指向在线 Web UI 的配置,或者 GUI 客户端会提供一个直接访问的入口。

    直接访问在线 Yacd: 如果您的配置文件允许,或者您只是想连接到本地运行的 Clash Core API,可以直接尝试访问公开托管的 Yacd 实例,例如 http://yacd.haishan.me。打开后,它会要求您输入 Clash API 的地址(填 http://127.0.0.1:9090)和可选的 Secret (如果您在 config.yaml 中设置了 secret)。

  3. 使用 Web UI:
    连接成功后,Web UI (如 Yacd) 会提供类似 GUI 客户端的功能:

    • 查看总体流量。
    • 切换代理模式 (Rule/Global/Direct)。
    • 查看和切换策略组中的节点。
    • 查看当前的 TCP/UDP 连接。
    • 查看 Clash 日志。
    • 进行规则匹配测试。

Web UI 对于在没有安装 GUI 客户端的环境下(例如服务器上)管理 Clash 非常有用。


8. 进阶话题

理解 Clash 代理模式(Rule / Global / Direct)

这是 Clash (以及其 GUI) 最核心的切换选项之一:

  • Rule (规则模式): 这是 Clash 的精髓。流量会根据 config.yaml 文件中 rules: 部分定义的规则列表进行匹配。规则决定了特定的流量是走代理 (哪个策略组)、直连 (DIRECT) 还是被阻止 (REJECT)。这是最常用、最智能的模式。
  • Global (全局模式): 大部分流量(除了可能被规则强制直连或阻止的特定流量外)都会通过您在 “Global” 策略组中选定的那个代理节点。适合临时需要所有流量都走代理的场景。
  • Direct (直连模式): 大部分流量都会直接连接到目标服务器,不经过任何代理。适合临时需要关闭代理的场景。

切换通常通过 GUI 客户端的按钮或 Web UI 界面进行。

更新 Clash 核心与配置文件

  • 更新 Clash Core:

    1. 重复 第 2 节 (安装 Clash) 中的步骤,下载最新版本的二进制文件。
    2. 如果 Clash 正在作为 Systemd 服务运行,先停止服务: sudo systemctl stop clash
    3. 将新的 clash 可执行文件替换掉旧的 /usr/local/bin/clash 文件: sudo mv new_clash_binary /usr/local/bin/clash (确保新文件有执行权限 chmod +x)。
    4. 重新启动服务: sudo systemctl start clash
    5. 验证版本: clash -v
  • 更新配置文件 (订阅):
    如果您的配置文件来自订阅链接,服务提供商可能会更新节点信息。您需要定期更新本地的 config.yaml

    • 手动更新: 重新运行 第 3 节 中的 wgetcurl 命令下载订阅链接即可覆盖旧的 config.yaml
      bash
      wget -O $HOME/.config/clash/config.yaml "YOUR_SUBSCRIPTION_URL"
    • GUI 更新: 大部分 GUI 客户端在 “Profiles” 部分都有一个 “Update” (更新) 按钮,点击即可自动重新下载订阅。
    • 自动更新 (脚本): 您可以编写一个简单的脚本,并使用 cron 定时任务定期执行 wget 命令来自动更新配置文件。

    重要: 更新配置文件后,需要 重启 Clash Core 才能使新的配置生效。如果使用 Systemd 服务,运行 sudo systemctl restart clash。如果使用 GUI,通常 GUI 会自动检测到文件变化并提示重启 Core,或者提供重启按钮。

  • 更新 GeoIP / GeoSite 数据库:
    这两个数据库也需要定期更新以获取最新的 IP 地理信息和网站分类。重复 第 3 节 中的 wget 命令即可下载最新版本覆盖旧文件。更新数据库后,同样需要 重启 Clash Core
    bash
    wget -O $HOME/.config/clash/Country.mmdb https://github.com/Loyalsoldier/v2ray-rules-dat/releases/latest/download/Country.mmdb
    wget -O $HOME/.config/clash/GeoSite.dat https://github.com/Loyalsoldier/v2ray-rules-dat/releases/latest/download/geosite.dat
    sudo systemctl restart clash # 如果使用 Systemd


9. 常见问题与故障排查

  • 无法连接网络 / 代理无效:

    1. 检查 Clash 是否运行: sudo systemctl status clash (如果使用服务) 或检查 GUI 状态。
    2. 检查代理设置: 确认系统、浏览器或应用的代理设置是否正确指向 127.0.0.1 和正确的端口 (HTTP 7890, SOCKS 7891)。
    3. 检查 Clash 模式: 确保您处于正确的模式(Rule 或 Global),而不是 Direct。
    4. 检查节点选择: 在策略组中选择一个可用的节点。尝试手动切换到不同的节点。使用 GUI 的测速功能检查节点连通性。
    5. 检查配置文件: 使用 clash -t -d $HOME/.config/clash 检查配置文件语法是否有误。
    6. 查看 Clash 日志: sudo journalctl -u clash -f (如果使用服务) 或查看 GUI/Web UI 中的日志,看是否有错误信息(如连接被拒、DNS 解析失败等)。
    7. 防火墙问题: 检查 Ubuntu 的防火墙 (ufw) 是否阻止了 Clash 的端口或出站连接。sudo ufw status
    8. 订阅过期/无效: 确认您的订阅链接是否仍然有效,尝试更新订阅。
  • Clash 服务启动失败:

    1. 检查 Systemd 服务文件: cat /etc/systemd/system/clash.service,确认 User, Group, WorkingDirectory, ExecStart 中的路径和用户名是否都正确无误。特别是 WorkingDirectory-d 参数后的路径必须是 Clash 配置文件所在的目录。
    2. 检查 Clash 可执行文件: 确认 /usr/local/bin/clash 文件存在且具有执行权限。
    3. 查看详细日志: sudo journalctl -u clash 查看具体的错误信息。可能是配置文件错误、端口被占用等。
    4. 端口冲突: 检查 7890, 7891, 9090 (或其他您配置的端口) 是否已被其他程序占用。sudo netstat -tulnp | grep -E '7890|7891|9090'。如果被占用,需要修改 Clash 配置文件的端口或停止占用端口的程序。
  • 配置文件测试失败:

    • 仔细阅读 clash -t 输出的错误信息,它会指出哪一行的哪个字段有问题。通常是 YAML 语法错误(缩进、冒号、引号等)、无效的参数值、或者缺少必要的字段。对照 Clash 官方文档或可靠的配置示例进行修改。
  • 特定网站/应用无法访问:

    • 可能是规则配置问题。检查 config.yaml 中的 rules 部分,看是否有规则错误地将该网站/应用的流量匹配到了无效的节点、REJECT 或错误的 DIRECT
    • 尝试切换到 Global 模式,看是否能访问。如果 Global 模式可以,说明是规则问题。
    • 使用 Web UI 的规则测试功能,输入域名或 IP,看它匹配到了哪条规则。

10. 总结与注意事项

Clash 是一个功能强大的代理工具,通过本指南,您应该能够在 Ubuntu 系统上成功安装、配置和使用它。无论是通过 Systemd 服务运行 Clash Core 并精细配置系统代理,还是利用方便的 GUI 客户端,Clash 都能提供灵活的网络代理体验。

关键步骤回顾:

  1. 从官方 GitHub 下载并安装 Clash Core 二进制文件。
  2. 获取可靠的 Clash 订阅链接,并下载为 config.yaml 文件。
  3. 下载 Country.mmdbGeoSite.dat 数据库文件。
  4. 验证配置文件 (clash -t)。
  5. (推荐) 配置 Systemd 服务让 Clash 在后台稳定运行并开机自启。
  6. 根据需要配置系统全局代理、终端代理或浏览器代理扩展 (SwitchyOmega)。
  7. (可选) 使用 Clash Verge 等 GUI 客户端简化管理。
  8. 定期更新 Clash Core、配置文件和 Geo 数据库。

注意事项:

  • 安全与隐私: 请务必从您信任的来源获取 Clash 软件和配置文件(订阅链接)。警惕来路不明的修改版或配置。
  • 合规性: 使用代理服务时,请遵守当地法律法规以及服务提供商的使用条款。请勿将代理用于非法目的。
  • 配置文件: 妥善保管您的订阅链接和配置文件,不要轻易泄露。
  • 资源占用: Clash Core 本身资源占用不高,但大量的并发连接或复杂的规则可能增加 CPU 和内存使用。
  • 文档: Clash 官方文档 (https://github.com/Dreamacro/clash/wiki) 是最权威的信息来源,遇到疑难问题时可查阅。

希望这篇详尽的指南能帮助您在 Ubuntu 上充分利用 Clash 的强大功能!

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注