Ubuntu 系统安装 Clash 详细指南 – wiki基地


Ubuntu 系统安装 Clash 详细指南:一步步带你玩转网络代理

随着网络环境的日益复杂,许多用户在 Linux 系统上需要一个强大、灵活且易于管理的代理工具。Clash 应运而生,它是一个基于 Go 语言开发的多平台代理客户端,以其规则丰富、功能强大、跨平台兼容性好而受到青睐。本文将为你提供一份超详细的 Ubuntu 系统安装和配置 Clash 的指南,涵盖命令行核心版和带 GUI 的版本,并详细讲解如何进行基础配置和系统代理设置,帮助你轻松驾越网络边界。

我们将从零开始,手把手教你完成整个过程。无论你是终端命令行爱好者,还是偏爱直观的图形界面,本文都能为你找到合适的安装路径。

文章目录

  1. 引言:什么是 Clash?为什么在 Ubuntu 上使用 Clash?
  2. 准备工作:开始安装前你需要知道和准备什么?
  3. 方法一:安装 Clash Core (命令行版本)
    • 下载 Clash Core 二进制文件
    • 赋予执行权限并移动到 PATH 目录
    • 验证安装
  4. 方法二:安装带 GUI 的 Clash (以 Clash Verge 或 Clash for Linux 为例)
    • 了解 GUI 版本
    • 下载 GUI 客户端 (AppImage 或 .deb 包)
    • 安装与运行 GUI 客户端
  5. 配置 Clash:获取并设置你的代理配置文件
    • 代理配置文件的格式 (YAML)
    • 获取配置文件 (订阅链接或本地文件)
    • 将配置文件放入正确位置
    • 简要介绍配置文件的关键部分 (Proxies, Proxy Groups, Rules)
  6. 运行 Clash
    • 运行 Clash Core
    • 运行 GUI 客户端
    • 访问 Clash Web UI (控制面板)
  7. 设置系统代理:让你的应用通过 Clash 访问网络
    • 通过 Ubuntu 系统设置手动配置代理
    • 通过 Clash GUI 客户端一键设置系统代理
    • 为命令行工具设置代理 (使用 proxychains)
  8. Clash 的管理与维护
    • 启动、停止与重启
    • 更新 Clash
    • 通过 Web UI 管理配置和查看日志
    • 设置开机自启 (使用 systemd – 进阶)
  9. 常见问题与故障排除
    • Clash 无法启动
    • 网络不通或速度慢
    • 配置文件错误 (YAML 语法)
    • 端口冲突
    • 防火墙问题
    • Clash Web UI 无法访问
  10. 进阶使用提示 (简述)
    • 自定义规则
    • TUN 模式
  11. 总结与展望

1. 引言:什么是 Clash?为什么在 Ubuntu 上使用 Clash?

Clash 是一个采用 Go 语言开发的多平台规则型代理客户端。它的核心优势在于其强大的规则引擎,能够根据你预设的规则,自动判断哪些流量走代理,哪些流量直连,或者走不同的代理节点。这种灵活性使得 Cl ash 在应对复杂的网络环境时游刃有余。

为什么在 Ubuntu 上使用 Clash?

  • 跨平台支持: Clash 原生支持 Linux,提供稳定可靠的运行环境。
  • 规则丰富: 支持多种代理协议 (Shadowsocks, VMess, Trojan, HTTP, SOCKS5 等),并能根据域名、IP、进程等多种条件制定精细化的流量分发规则。
  • 统一管理: 可以通过一个配置文件管理多个代理节点,并通过策略组实现负载均衡、故障转移或手动切换节点。
  • 易于控制: 提供了方便的 Web UI 或 GUI 客户端,方便用户查看状态、切换节点、查看日志等。
  • 社区活跃: 拥有庞大的用户社区,资源丰富,遇到问题容易找到解决方案。

对于 Ubuntu 用户而言,Clash 提供了图形界面或命令行两种使用方式,满足不同用户的需求。

2. 准备工作:开始安装前你需要知道和准备什么?

在开始安装 Clash 之前,请确保你已经完成以下准备:

  • 一台安装了 Ubuntu 系统的电脑: 本文以 Ubuntu Desktop 为主,部分命令行操作同样适用于 Ubuntu Server。
  • 互联网连接: 需要连接到互联网以下载 Clash 安装包和配置文件。
  • 终端访问: 你需要使用终端 (Terminal) 执行命令。可以通过应用菜单找到 “终端” 或使用快捷键 Ctrl + Alt + T 打开。
  • sudo 权限: 安装和配置过程中可能需要管理员权限,确保你的用户拥有 sudo 权限。
  • 代理服务订阅或配置文件: Clash 本身只是一个客户端,它需要连接到你的代理服务提供商 (V2Ray, Shadowsocks, Trojan 等) 才能工作。你通常会从服务提供商那里获得一个订阅链接或一个 .yaml 格式的配置文件。这是使用 Clash 的前提! 如果你还没有,你需要先获取一个有效的订阅或配置文件。

准备就绪后,我们就可以选择适合你的安装方法了。

3. 方法一:安装 Clash Core (命令行版本)

Clash Core 是 Clash 的核心引擎,没有图形界面,完全通过命令行运行和配置。它资源占用低,适合服务器或喜欢终端操作的用户。

3.1 下载 Clash Core 二进制文件

Clash Core 的最新版本通常发布在 GitHub 的 Releases 页面:https://github.com/Dreamacro/clash/releases

访问该页面,找到最新发布的版本 (通常是顶部的那个)。在 “Assets” 部分,你会看到针对不同操作系统和架构的二进制文件。我们需要下载适用于 Linux 系统的版本。

Ubuntu 通常是 x64 (AMD64) 架构,所以你需要找到形如 clash-linux-amd64-vX.Y.Z.gz 的文件 (其中 X.Y.Z 是版本号)。

我们可以使用 wgetcurl 命令在终端中直接下载。假设最新版本是 1.17.0,并且文件名为 clash-linux-amd64-v1.17.0.gz,下载链接为 https://github.com/Dreamacro/clash/releases/download/v1.17.0/clash-linux-amd64-v1.17.0.gz

打开终端,执行以下命令下载:

“`bash

使用 wget 下载

wget https://github.com/Dreamacro/clash/releases/download/v1.17.0/clash-linux-amd64-v1.17.0.gz

或者使用 curl 下载

curl -LO https://github.com/Dreamacro/clash/releases/download/v1.17.0/clash-linux-amd64-v1.17.0.gz
“`

请将命令中的版本号和文件名替换为你实际下载的版本。-L 参数让 curl 跟随重定向,-O 参数让 curl 将文件保存为远程文件的原始文件名。

下载完成后,文件是一个 .gz 压缩包,需要解压:

bash
gzip -d clash-linux-amd64-v1.17.0.gz

解压后,你会得到一个名为 clash-linux-amd64-v1.17.0 的可执行文件(文件名可能因版本而异,通常就是去掉 .gz 后缀)。为了方便,我们可以将它重命名为更简洁的 clash

bash
mv clash-linux-amd64-v1.17.0 clash

3.2 赋予执行权限并移动到 PATH 目录

下载并解压后的 clash 文件还没有执行权限,需要通过 chmod 命令赋予。

bash
chmod +x clash

现在,这个 clash 文件就可以在当前目录执行了 (./clash)。为了能在任何地方直接输入 clash 命令运行,我们可以将它移动到一个系统 PATH 目录中,例如 /usr/local/bin

bash
sudo mv clash /usr/local/bin/

输入你的用户密码并按回车确认。

3.3 验证安装

安装完成后,打开一个新的终端窗口(或者在当前终端中运行 exec bash 使 PATH 生效),输入 clash -v 命令,如果能看到 Clash 的版本信息,说明 Clash Core 已经成功安装并添加到系统 PATH 中了。

bash
clash -v

输出示例:

Clash X.Y.Z <commit hash> linux_amd64

至此,Clash Core 的安装就完成了。接下来,我们需要配置它。

4. 方法二:安装带 GUI 的 Clash (以 Clash Verge 或 Clash for Linux 为例)

如果你不习惯命令行,或者希望通过图形界面更方便地管理节点和规则,可以选择安装带 GUI 的 Clash 客户端。目前比较流行的 Ubuntu 上的 GUI 客户端有 Clash Verge 和 Clash for Linux。它们的安装方式类似,这里我们以一种通用的方式讲解。

4.1 了解 GUI 版本

GUI 版本客户端通常是在 Clash Core 的基础上,增加了一个用户友好的图形界面。它们的功能强大,通常集成了系统代理设置、订阅管理、节点切换、流量监控、日志查看等功能,极大地简化了 Clash 的使用门槛。

4.2 下载 GUI 客户端 (AppImage 或 .deb 包)

GUI 客户端通常也发布在 GitHub 的 Release 页面。你需要找到对应项目的 GitHub 页面。

  • Clash Verge: https://github.com/clash-verge-rev/clash-verge-rev/releases (注意这是社区维护的 Clash Verge Rev,功能更完善)
  • Clash for Linux: https://github.com/Fndroid/clash-for-windows_linux/releases (这是 Clash for Windows 的 Linux 移植版)

访问你选择的客户端的 Release 页面,找到最新版本。在 “Assets” 部分,寻找适用于 Ubuntu 的安装包。常见的格式有:

  • .AppImage: 这是一个自包含的可执行文件,下载后直接赋予执行权限即可运行,无需安装到系统目录。方便灵活,不受系统库版本影响。
  • .deb: 这是 Debian/Ubuntu 标准的软件包格式,下载后可以使用 dpkgapt 命令进行安装,会将程序安装到系统标准位置,并集成到应用菜单。

推荐使用 .AppImage,因为它最简单且兼容性最好。

以 Clash Verge Rev 的 AppImage 为例,找到形如 Clash.Verge_X.Y.Z_amd64.AppImage 的文件。使用浏览器下载,或者使用 wget/curl 下载。

“`bash

示例:下载 Clash Verge Rev AppImage

请替换为实际的下载链接和文件名

wget https://github.com/clash-verge-rev/clash-verge-rev/releases/download/v1.5.10/Clash.Verge_1.5.10_amd64.AppImage
“`

如果你选择 .deb 包 (例如 clash-for-linux_X.Y.Z_amd64.deb),下载方式类似:

“`bash

示例:下载 Clash for Linux .deb 包

请替换为实际的下载链接和文件名

wget https://github.com/Fndroid/clash-for-windows_linux/releases/download/0.20.16/clash-for-linux_0.20.16_amd64.deb
“`

4.3 安装与运行 GUI 客户端

如果下载的是 .AppImage 文件:

  1. 打开终端,进入到你下载文件的目录。
  2. 赋予文件执行权限:
    bash
    chmod +x Clash.Verge_1.5.10_amd64.AppImage

    请将文件名替换为你下载的实际文件名。
  3. 直接运行该文件:
    bash
    ./Clash.Verge_1.5.10_amd64.AppImage

    或者在文件管理器中,右键点击文件,选择 “属性” -> “权限”,勾选 “允许文件作为程序执行”,然后双击文件即可运行。

如果下载的是 .deb 文件:

  1. 打开终端,进入到你下载文件的目录。
  2. 使用 dpkg 命令安装:
    bash
    sudo dpkg -i clash-for-linux_0.20.16_amd64.deb

    请将文件名替换为你下载的实际文件名。
  3. 如果在安装过程中出现依赖问题,可以尝试修复:
    bash
    sudo apt --fix-broken install
  4. 安装完成后,Clash 客户端就会出现在你的应用菜单里了。点击图标即可启动。

GUI 客户端首次启动时,可能会进行一些初始化设置,例如下载 Clash Core (是的,很多 GUI 客户端会自己下载和管理 Clash Core,无需你手动安装),并引导你导入配置文件。

至此,带 GUI 的 Clash 客户端也安装完成了。

5. 配置 Clash:获取并设置你的代理配置文件

Clash 的核心是它的配置文件 (config.yaml)。这个文件定义了所有的代理节点、策略组、规则等。Clash 必须依赖一个有效的配置文件才能工作。

5.1 代理配置文件的格式 (YAML)

Clash 的配置文件使用 YAML 格式。YAML 是一种人类可读的数据序列化格式,使用缩进表示层级关系。YAML 对缩进非常敏感,一个小小的缩进错误都可能导致配置文件无法加载。

一个典型的 Clash 配置文件包含以下主要部分:

  • port, socks-port, redir-port, mixed-port: Clash 监听的端口设置。
  • allow-lan: 是否允许局域网内的设备连接 Clash 代理。
  • mode: Clash 的运行模式 (Global, Rule, Direct)。
  • log-level: 日志级别。
  • external-controller: 用于 Web UI 或其他外部控制器的地址和端口。
  • secret: 外部控制器的访问密码。
  • proxies: 定义所有的代理节点列表。
  • proxy-groups: 定义策略组,用于组织和管理 proxies
  • rules: 定义流量匹配规则,决定哪些流量走哪个策略组或直连。

5.2 获取配置文件 (订阅链接或本地文件)

你通常会通过以下方式获取配置文件:

  • 订阅链接: 大多数代理服务提供商会给你一个以 httphttps 开头的订阅链接。这个链接实际上是一个 YAML 文件的地址,Clash 可以周期性地从这个地址更新配置文件。
  • 本地文件: 有些服务商可能直接提供一个 .yaml 文件供你下载。或者你可以手动编辑一个配置文件。

推荐使用订阅链接,方便后续更新。

5.3 将配置文件放入正确位置

配置文件需要放在 Clash 能够找到的位置。这个位置取决于你安装的是 Clash Core 还是 GUI 客户端。

对于 Clash Core (命令行版本):

Clash Core 默认会在用户主目录下的 .config/clash/ 目录寻找 config.yaml 文件。如果这个目录不存在,你需要手动创建它。

  1. 创建配置目录:
    bash
    mkdir -p ~/.config/clash

    mkdir -p 会创建目录及其父目录,如果它们不存在的话。
  2. 获取配置文件:
    • 如果你的服务商提供订阅链接: 你需要手动将订阅链接的内容下载下来,保存为 config.yaml 文件,并放在 ~/.config/clash/ 目录下。
      bash
      # 示例:使用 curl 下载订阅链接内容并保存为 config.yaml
      # 将 YOUR_SUBSCRIPTION_URL 替换为你的实际订阅链接
      curl -o ~/.config/clash/config.yaml YOUR_SUBSCRIPTION_URL

      注意: 有些订阅链接可能不是标准的 Clash 订阅格式,而是提供商自定义的格式。如果直接下载后 Clash 无法加载,你可能需要在提供商的网站上寻找 “Clash 订阅链接” 或者使用其提供的工具进行转换。
    • 如果你的服务商提供本地 .yaml 文件: 将下载的 .yaml 文件重命名为 config.yaml 并移动到 ~/.config/clash/ 目录下。
      bash
      # 假设你的文件下载在 ~/Downloads/my_proxy_config.yaml
      mv ~/Downloads/my_proxy_config.yaml ~/.config/clash/config.yaml

对于带 GUI 的 Clash 客户端:

GUI 客户端通常有内置的订阅管理功能。你无需手动处理文件,只需在 GUI 中输入订阅链接即可。

  1. 打开 GUI 客户端。
  2. 寻找 “订阅” (Subscriptions) 或 “Profiles” (配置文件) 等相关的菜单项。
  3. 点击 “添加订阅” 或类似的按钮。
  4. 粘贴你的订阅链接,并可能需要输入一个备注名称。
  5. 点击确认或下载。客户端会自动下载、解析并将配置文件保存在其管理的目录下。
  6. 下载成功后,你需要在客户端界面选择刚刚添加的配置文件使其生效。

5.4 简要介绍配置文件的关键部分 (Proxies, Proxy Groups, Rules)

了解配置文件的这几个关键部分对于后续使用和问题排查很有帮助:

  • proxies: 这是你所有可用代理节点的列表。每个节点都有一个类型 (ss, vmess, trojan 等) 和连接参数 (服务器地址, 端口, 用户ID/密码等)。
  • proxy-groups: 策略组是用来组织 proxies 的。常见的策略组类型有:
    • Select: 手动选择组内的一个节点或另一个策略组。这是最常用的类型,你的 UI 界面上看到的通常就是这些 Select 组,你可以手动切换节点。
    • URL-test: 根据 URL 测试延迟,自动选择延迟最低的节点。常用于测速组。
    • Fallback: 按顺序尝试组内节点,直到遇到一个可用的节点。常用于高可用组。
    • Load-balance: 将流量轮流分配到组内节点。
    • Direct: 一个特殊的策略组,表示直连,不走代理。
    • Reject: 一个特殊的策略组,表示拒绝连接。
  • rules: 这是 Clash 规则的核心。每条规则都定义了匹配条件 (例如,域名、IP 段、进程名称等) 和匹配成功后将流量导向的策略组。规则按顺序匹配,一旦匹配成功,流量就会按照该规则指定的策略组处理。常见的规则类型有 DOMAIN-SUFFIX, DOMAIN-KEYWORD, IP-CIDR, PROCESS-NAME, GEOIP, MATCH (兜底规则) 等。

GUI 客户端通常会将这些部分以更友好的方式展示,你可以通过界面查看和切换节点、查看规则列表等。

6. 运行 Clash

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

6.1 运行 Clash Core

打开终端,直接输入 clash 命令即可运行:

bash
clash

Clash 会加载 ~/.config/clash/config.yaml 文件并开始运行。如果配置文件有错误,它会在终端输出错误信息。

运行成功的标志是终端会显示 Clash 的启动日志,包括监听的端口、加载的规则等信息。例如:

INFO[0000] Parsing configuration file /home/your_user/.config/clash/config.yaml
INFO[0001] Mixed(http+socks) proxy listening at: :7890
INFO[0001] Redir proxy listening at: :7891
INFO[0001] DNS server listening at: :53
INFO[0001] RESTful API listening at: 127.0.0.1:9090
...

Mixed(http+socks) proxy listening at: :7890 表示 Clash 正在监听 7890 端口,同时支持 HTTP 和 SOCKS5 代理。RESTful API listening at: 127.0.0.1:9090 表示 Web UI (或者说控制面板) 正在监听 9090 端口。

Clash Core 在终端运行时会一直占用该终端窗口。如果你想让它在后台运行,可以使用 nohup 命令或将其作为 systemd 服务运行(见后续的高阶部分)。

6.2 运行 GUI 客户端

如果你安装的是 GUI 客户端,只需在应用菜单中找到 Clash 的图标,点击即可运行。

GUI 客户端通常会有一个主界面,显示当前的运行状态、选择的配置文件、节点列表、流量信息等。首次运行可能需要导入或选择配置文件。

运行后,GUI 客户端通常会最小化到系统托盘区域,你可以在那里找到它的图标,通过右键菜单进行快速操作,如切换节点、开启/关闭系统代理等。

6.3 访问 Clash Web UI (控制面板)

无论是 Clash Core 还是 GUI 客户端,默认都会启动一个 Web UI(也称为面板)。这是 Clash 最方便的管理工具,你可以在浏览器中访问它来:

  • 查看当前的运行状态
  • 实时查看连接和流量
  • 查看日志
  • 手动切换代理节点 (对于 Select 策略组)
  • 查看和修改部分配置 (仅部分 Web UI 支持)
  • 进行延迟测试

在浏览器中访问 http://127.0.0.1:9090 (如果你的配置文件中 external-controller 端口不是 9090,请替换为实际端口)。

如果你在配置文件中设置了 secret,访问 Web UI 时会要求输入密码。

常用的 Web UI 有:

  • Yacd: 一个功能强大且美观的 Web UI,通常默认集成在 GUI 客户端中,也可以独立部署。https://github.com/haishanh/yacd
  • Clashboard: 另一个流行的 Web UI。https://github.com/Dreamacro/clash-dashboard

通过 Web UI,你可以直观地看到各个策略组,点击策略组即可展开并切换节点。这是管理 Clash 最常用的方式。

7. 设置系统代理:让你的应用通过 Clash 访问网络

运行 Clash 只是启动了代理服务,但你的应用程序默认并不会自动使用它。你需要将系统的网络代理设置为指向 Clash 监听的地址和端口。Clash 默认监听 7890 端口作为 HTTP 和 SOCKS5 混合代理。

7.1 通过 Ubuntu 系统设置手动配置代理

这是通用的设置方法,适用于所有依赖系统代理设置的应用(如浏览器、apt 等)。

  1. 点击 Ubuntu 桌面右上角的网络图标或系统设置图标,选择 “Settings” (设置)。
  2. 在左侧菜单中找到 “Network” (网络)。
  3. 在右侧面板中,找到 “Network Proxy” (网络代理) 部分。
  4. 点击齿轮图标进行配置。
  5. 在弹出的窗口中,将 “Method” (方法) 从 “None” (无) 改为 “Manual” (手动)。
  6. 填写代理服务器地址和端口:
    • HTTP Proxy: Address: 127.0.0.1, Port: 7890
    • HTTPS Proxy: Address: 127.0.0.1, Port: 7890
    • SOCKS Host: Address: 127.0.0.1, Port: 7890 (有些系统或应用区分 SOCKS5 和 HTTP/HTTPS 代理,Clash 的混合端口 7890 同时支持这两种)
  7. 你可以在 “Ignore Hosts” 中添加不需要走代理的地址或域名,例如 localhost, 127.0.0.1, *.local 以及你的内网 IP 段。
  8. 点击右上角的 “Apply System-wide” (应用到系统) 或 “Apply” (应用) 按钮保存设置。

现在,大多数遵循系统代理设置的应用程序 (如 Firefox 浏览器、Chrome 浏览器等) 就会通过 Clash 访问网络了。你可以打开浏览器访问一个需要代理的网站测试是否成功。

注意: 有些应用程序有自己的代理设置(例如 Telegram, 部分下载工具),这些应用可能不会遵循系统代理设置,你需要进入它们的设置中单独配置代理。

7.2 通过 Clash GUI 客户端一键设置系统代理

如果你使用的是带 GUI 的 Clash 客户端,这个过程会更简单。GUI 客户端通常提供了 “System Proxy” 或 “设置为系统代理” 的开关按钮。

  1. 打开 Clash GUI 客户端。
  2. 在主界面或设置中找到 “System Proxy” 或类似选项。
  3. 点击开关将其打开。

GUI 客户端会自动修改系统的代理设置,指向 Clash 监听的端口。当你关闭这个开关时,它会恢复之前的代理设置 (通常是 None)。这是最推荐的设置系统代理的方式,因为方便管理。

7.3 为命令行工具设置代理 (使用 proxychains)

系统代理设置通常只影响图形界面应用程序。对于终端中的命令(如 wget, curl, apt, git 等),它们默认不遵循系统代理设置。如果你想让特定的命令行工具走代理,可以使用 proxychains

  1. 安装 proxychains:
    bash
    sudo apt update
    sudo apt install proxychains4
  2. 配置 proxychains:
    编辑 proxychains 的配置文件,通常在 /etc/proxychains.conf。你需要 sudo 权限来修改这个文件。
    bash
    sudo nano /etc/proxychains.conf

    在文件中找到 [ProxyList] 部分。将原有的代理设置注释掉(在行首加 #),然后在下面添加 Clash 的 SOCKS5 代理地址和端口。Clash 默认是 SOCKS5 监听 7890 端口。
    “`ini
    # … 文件顶部内容 …

    Dynamic lookups will grow the proxy list as needed…

    plus_minus

    many_chains

    random_chain

    strict_chain # 取消 strict_chain 的注释,使用严格模式

    … 其他设置 …

    [ProxyList]

    add proxy here …

    meanwile

    defaults set to “tor”

    socks4 127.0.0.1 9050

    socks5 192.168.67.78 1080

    http 192.168.67.78 8080

    socks5 192.168.1.4 1080

    Add Clash SOCKS5 proxy

    socks5 127.0.0.1 7890

    … 文件底部内容 …

    保存并关闭文件 (nano 编辑器按 `Ctrl + X`, `Y`, 回车)。
    3. **使用 proxychains:**
    在你想要通过代理运行的命令前面加上 `proxychains4`。
    bash
    proxychains4 curl ip.gs
    proxychains4 apt update
    proxychains4 git clone your_repo_url
    ``ip.gs` 是一个显示当前公网 IP 的网站。如果输出的 IP 是你代理节点的 IP,说明 proxychains 工作正常。

注意: proxychains 有时可能与某些程序不兼容。

8. Clash 的管理与维护

8.1 启动、停止与重启

  • Clash Core (命令行):
    • 启动: 在终端运行 clash
    • 停止: 在运行 Clash 的终端窗口中按下 Ctrl + C
    • 重启: 先 Ctrl + C 停止,再重新运行 clash
    • 后台运行: 使用 nohup clash & 命令可以在后台运行。要停止后台进程,需要找到其进程ID (ps aux | grep clash) 然后使用 kill <PID> 命令杀死进程。
  • GUI 客户端:
    • 启动: 在应用菜单中点击图标。
    • 停止: 通常在系统托盘图标上右键,选择 “Quit” 或 “退出”。
    • 重启: 先退出,再重新启动应用。

8.2 更新 Clash

  • Clash Core: 需要手动下载新版本的二进制文件,然后替换掉 /usr/local/bin/clash 文件 (记得先停止正在运行的 Clash 进程)。
    bash
    # 假设新版本下载在当前目录并已解压命名为 clash_new
    sudo systemctl stop clash # 如果以 systemd 服务运行
    # 或者手动 kill 进程
    sudo mv clash_new /usr/local/bin/clash
    sudo chmod +x /usr/local/bin/clash
    # 重新启动 Clash
    clash # 或者 sudo systemctl start clash
  • GUI 客户端: 大多数 GUI 客户端都内置了更新功能。在应用设置或关于页面查找 “检查更新” 或类似选项。如果客户端是 AppImage 格式,通常需要从 GitHub 页面下载新版本的 AppImage 文件,替换旧文件并赋予执行权限。

8.3 通过 Web UI 管理配置和查看日志

Web UI 是管理 Clash 最方便的方式。通过浏览器访问 http://127.0.0.1:9090

  • Proxies/节点: 查看所有代理节点的状态和延迟。对于 Select 类型的策略组,可以直接点击切换节点。
  • Logs/日志: 实时查看 Clash 的运行日志,包括连接信息、错误信息等。这是排查问题的重要工具。
  • Config/配置: 查看当前加载的配置文件内容。部分 Web UI 允许直接在线编辑配置(谨慎操作)。
  • Connections/连接: 查看当前通过 Clash 代理的所有连接信息。

8.4 设置开机自启 (使用 systemd – 进阶)

对于 Clash Core,如果你想让它在系统启动时自动运行,可以将其配置为一个 systemd 服务。这需要创建 .service 文件。

  1. 创建服务文件:
    bash
    sudo nano /etc/systemd/system/clash.service
  2. 将以下内容复制到文件中:
    “`ini
    [Unit]
    Description=Clash proxy service
    After=network.target

    [Service]
    Type=simple
    User=your_user # 将 your_user 替换为你的实际用户名
    ExecStart=/usr/local/bin/clash -d /home/your_user/.config/clash # -d 指定配置文件目录,确保路径正确
    Restart=on-failure

    [Install]
    WantedBy=multi-user.target
    请确保 `User` 和 `ExecStart` 中的路径、用户名与你的实际情况相符。`-d` 参数告诉 Clash 在哪个目录下查找 `config.yaml` 和其他资源文件。
    3. 保存并关闭文件。
    4. 重载 systemd 配置:
    bash
    sudo systemctl daemon-reload
    5. 启用服务 (设置开机自启):bash
    sudo systemctl enable clash
    6. 启动 Clash 服务:bash
    sudo systemctl start clash
    7. 检查服务状态:bash
    sudo systemctl status clash
    ``
    如果显示
    active (running)`,说明服务启动成功。

现在,Clash Core 就会在每次系统启动时自动运行了。要停止服务,使用 sudo systemctl stop clash;要禁用开机自启,使用 sudo systemctl disable clash

对于 GUI 客户端,有些客户端自身提供了开机自启的选项,可以在客户端设置中查找。

9. 常见问题与故障排除

9.1 Clash 无法启动

  • Clash Core:
    • 权限问题: 检查 Clash 二进制文件是否有执行权限 (ls -l /usr/local/bin/clash),如果没有,使用 sudo chmod +x /usr/local/bin/clash 添加。
    • 配置文件问题: Clash 启动时会检查配置文件的语法。在终端运行 clash 查看详细错误日志。常见的错误是 YAML 格式错误 (缩进、符号错误)。可以使用在线 YAML 校验工具检查配置文件的语法。
    • 端口冲突: 检查 Clash 监听的端口 (7890, 7891, 9090, 53 等) 是否被其他程序占用。可以使用 sudo netstat -tulnp | grep <port> 命令查看端口占用情况。如果端口被占用,修改配置文件中的端口设置或关闭占用端口的程序。
  • GUI 客户端:
    • 尝试以管理员权限运行 (右键图标 -> Run as Administrator,可能需要输入密码)。
    • 检查客户端是否有完整的安装或解压(如果是绿色版)。
    • 查看客户端自身的日志或错误提示。

9.2 网络不通或速度慢

  • 检查 Clash 是否正常运行: 确认 Clash Core 终端有正常输出,或 GUI 客户端显示运行中。
  • 检查配置文件是否加载正确: 在 Web UI 或 GUI 客户端中查看当前使用的配置文件和节点列表是否正确。
  • 检查节点是否可用: 在 Web UI 或 GUI 客户端中对节点进行延迟测试。选择延迟低且稳定的节点。尝试切换不同的节点或策略组。
  • 检查系统代理设置: 确认你的系统或应用程序的代理设置指向 Clash 监听的正确地址和端口 (通常是 127.0.0.1:7890)。使用 GUI 客户端一键设置系统代理通常最不容易出错。
  • 检查防火墙: 如果你启用了防火墙 (如 UFW),确保允许流入连接到 Clash 监听的端口 (7890, 7891, 9090)。特别是如果你设置了 allow-lan: true,需要允许局域网内设备的连接。
    bash
    sudo ufw allow 7890/tcp
    sudo ufw allow 7891/tcp
    sudo ufw allow 9090/tcp # Web UI 端口
    sudo ufw allow 53/udp # DNS 端口
    sudo ufw reload
  • 检查配置文件规则: 确认你的规则设置是否正确。例如,是否将需要代理的流量导向了正确的策略组,是否将不需要代理的流量设置了直连或拒绝。可以通过 Web UI 的 Connections 面板查看连接走了哪条规则和哪个策略组。
  • 检查订阅是否过期或有问题: 确认你的代理服务订阅是有效的。尝试更新订阅。
  • 清除浏览器缓存和 DNS 缓存: 有时旧的缓存信息会导致问题。

9.3 配置文件错误 (YAML 语法)

这是最常见的 Clash Core 启动失败原因。YAML 语法对缩进、冒号、空格等非常敏感。

  • 使用在线 YAML 校验工具 (搜索 “online yaml validator”) 复制你的 config.yaml 内容进行检查。
  • 仔细检查错误日志中提到的行号,查看该行及附近的缩进和符号是否正确。
  • 确保所有的列表项 (以 - 开头) 缩进一致。
  • 确保所有的键值对 (以 : 分隔) 中,冒号后面至少有一个空格。

9.4 端口冲突

错误信息中可能会提示 address already in use 或类似的字样。

  • 使用 sudo netstat -tulnp | grep <port> 检查是哪个程序占用了 Clash 想要使用的端口。
  • 关闭占用端口的程序,或者修改 Clash 配置文件中的端口设置。

9.5 防火墙问题

即使 Clash 运行正常,系统代理设置也正确,防火墙可能阻止了连接。

  • 临时关闭防火墙测试 (sudo ufw disable),如果恢复正常,则说明是防火墙问题。
  • 如果确认是防火墙问题,根据 9.2 中的指导添加允许 Clash 端口的规则。

9.6 Clash Web UI 无法访问

  • 确认 Clash 本身正在运行。
  • 确认 Web UI 监听的端口 (external-controller 在配置文件中定义,默认为 9090) 没有被其他程序占用。
  • 确认你访问的地址是 127.0.0.1:<port>,而不是 localhost 或你的公网 IP (除非你特殊配置了)。
  • 如果配置文件设置了 secret,确保在访问 Web UI 时输入了正确的密码。

10. 进阶使用提示 (简述)

  • 自定义规则: 熟悉规则语法,可以根据自己的需求编写更精细的流量分发规则,例如特定网站直连、特定应用走代理、屏蔽广告等。这需要学习 Clash 的 Rules 语法。
  • TUN 模式: 除了通过设置系统代理或 proxychains 让应用走代理外,Clash 还支持 TUN 模式。在 TUN 模式下,Clash 会创建一个虚拟网卡,所有网络流量都可以被 Clash 捕获并根据规则处理,无需修改应用的代理设置。这对于不遵循系统代理的应用(如某些游戏、命令行工具)非常有用。但 TUN 模式配置相对复杂,可能需要额外的权限和内核模块支持。GUI 客户端通常提供一键开启 TUN 模式的选项。

11. 总结与展望

本文详细介绍了在 Ubuntu 系统上安装和配置 Clash 的两种主要方法:命令行核心版和带 GUI 的客户端。从下载、安装、配置文件设置,到运行、设置系统代理,再到日常管理和故障排除,希望这份指南能够帮助你顺利在 Ubuntu 上用上 Clash。

Clash 的强大在于其规则引擎和灵活的配置能力。通过 Web UI 或 GUI 客户端,你可以方便地管理节点和策略,实时监控网络状态。掌握基础配置后,你可以进一步学习 Clash 的规则语法,根据自己的需求定制更高级的功能。

网络环境瞬息万变,Clash 作为一个优秀的代理客户端,为你提供了一个稳定、灵活的网络访问解决方案。祝你在 Ubuntu 上使用 Clash 愉快!


发表评论

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

滚动至顶部