Clash Ubuntu 教程:从入门到精通 – wiki基地


Clash Ubuntu 教程:从入门到精通

前言

在当今互联网环境下,网络代理工具扮演着越来越重要的角色。无论是为了访问区域限制的内容、保护个人隐私,还是为了提高特定网络环境下的访问速度,一款优秀的代理工具都是必不可少的。Clash 就是这样一款备受欢迎的、基于规则的跨平台代理客户端,以其强大的功能、灵活的配置和活跃的社区支持而闻名。

本教程将详细介绍如何在 Ubuntu 操作系统上安装、配置和使用 Clash 核心程序,以及如何结合图形化界面进行管理,旨在覆盖从基础设置到进阶使用的方方面面,帮助您充分利用 Clash 的强大功能。本教程假设您已具备基本的 Linux 命令行操作知识,并拥有一个可用的 Clash 订阅链接或配置文件。

第一章:Clash 简介与准备工作

1.1 什么是 Clash?

Clash 是一个使用 Go 语言开发的跨平台代理客户端,支持多种代理协议,如 Shadowsocks(R), VMess, Trojan, Snell 等。其核心特性是基于规则的路由分流:Clash 可以根据用户定义的规则,自动判断网络流量应该直连、通过代理,还是拒绝访问。这使得用户可以精细化地控制网络访问策略,实现国内外流量分离、广告屏蔽、特定网站走特定代理等复杂需求。

Clash 本身是一个命令行程序(Clash Core),但拥有丰富的第三方图形用户界面(GUI)和 Web UI,如 Clash for Windows (CFW)、ClashX (macOS)、Clash Verge、Clash Nyanpasu 以及基于 Web 的 Yacd、Razord 等 Dashboard。在 Linux 环境下,我们通常使用 Clash 核心程序配合 Web UI 或特定的 Linux GUI 进行管理。

1.2 为什么在 Ubuntu 上使用 Clash?

  • 强大的规则引擎: 实现精细化的流量控制。
  • 多协议支持: 兼容主流的代理协议。
  • 跨平台: 核心程序可在多种操作系统运行。
  • 开源与社区: 核心项目开源,社区活跃,生态丰富。
  • 性能优异: Go 语言编写,资源占用相对较低,性能良好。
  • 可定制性强: 配置文件支持高度自定义。

1.3 准备工作

在开始之前,请确保您已准备好以下内容:

  1. 一台运行 Ubuntu 的设备: 本教程基于 Ubuntu Desktop / Server 版本,大部分命令通用。
  2. 基本的命令行操作能力: 需要使用终端执行命令。
  3. Clash 配置文件或订阅链接: 这是使用 Clash 的关键。您可以从您的代理服务提供商处获取。
    • 订阅链接 (Subscription URL): 一个 URL,Clash 可以通过它下载配置文件。这是最常见且推荐的方式,方便更新。
    • 配置文件 (config.yaml): 一个 YAML 格式的文本文件,包含了代理服务器、规则等所有配置信息。
  4. 网络连接: 用于下载 Clash 程序和配置文件。
  5. (可选) wgetcurl 工具: Ubuntu 通常自带,用于从网络下载文件。若没有,可通过 sudo apt update && sudo apt install wget curl 安装。

第二章:安装 Clash 核心程序

Clash 核心程序没有官方的 PPA 或 Deb 包(虽然可能有第三方打包),最通用和推荐的安装方式是直接从其 GitHub Releases 页面下载预编译的二进制文件。

2.1 确定系统架构

首先,需要确定您的 Ubuntu 系统的 CPU 架构,以便下载正确的版本。在终端中执行:

bash
uname -m

常见的输出有:

  • x86_64: 表示 64 位 Intel/AMD 架构 (下载 amd64 版本)
  • aarch64: 表示 64 位 ARM 架构 (下载 arm64armv8 版本)
  • armv7l: 表示 32 位 ARM 架构 (下载 armv7 版本)

2.2 下载 Clash 二进制文件

  1. 访问 Clash 的 GitHub Releases 页面:https://github.com/Dreamacro/clash/releases
  2. 找到最新的稳定版本(通常不是 Pre-release)。
  3. 在 “Assets” 部分,找到与您系统架构匹配的 Linux 版本压缩包。通常文件名类似 clash-linux-amd64-vX.Y.Z.gzclash-linux-arm64-vX.Y.Z.gz
  4. 复制该文件的下载链接。

  5. 打开终端,使用 wgetcurl 下载。假设我们要下载 amd64 版本,链接(请替换为实际链接)如下:

    “`bash

    使用 wget 下载 (将下面的 URL 替换为你复制的链接)

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

    或者使用 curl 下载 (将下面的 URL 替换为你复制的链接)

    curl -Lo clash-linux-amd64.gz https://github.com/Dreamacro/clash/releases/download/v1.18.0/clash-linux-amd64-v1.18.0.gz

    “`

2.3 解压并安装 Clash

  1. 解压下载的文件:

    “`bash

    将 ‘clash-linux-amd64-vX.Y.Z.gz’ 替换为你下载的文件名

    gzip -d clash-linux-amd64-v*.gz
    “`

    解压后会得到一个名为 clash-linux-amd64-vX.Y.Z (或类似)的可执行文件。

  2. 重命名并赋予执行权限:

    “`bash

    将解压后的文件名替换为实际名称

    mv clash-linux-amd64-v* clash
    chmod +x clash
    “`

  3. 将 Clash 移动到系统路径(推荐):clash 可执行文件移动到 /usr/local/bin 目录下,这样可以在任何路径下直接调用 clash 命令。

    bash
    sudo mv clash /usr/local/bin/

  4. 验证安装:

    bash
    clash -v

    如果看到类似 Clash vX.Y.Z ... 的版本信息输出,说明 Clash 核心程序已成功安装。

第三章:配置 Clash

Clash 的所有行为都由一个名为 config.yaml 的配置文件控制。您需要获取这个文件,并将其放置在 Clash 默认的配置目录中。

3.1 获取配置文件

  • 方法一:使用订阅链接(推荐)

    如果您的服务提供商提供了 Clash 订阅链接,这是最便捷的方式。Clash 自身并不直接支持下载订阅链接并转换为 config.yaml,通常需要借助其他工具或服务,或者使用支持订阅的 Clash GUI。但我们可以先手动下载一次。

    1. 访问订阅链接转换服务(可选,但不推荐长期手动): 有些在线服务可以将订阅链接转换为 config.yaml 文件。请注意隐私风险。
    2. 使用支持订阅的工具/脚本: 例如 subconverter 等工具可以在本地或服务器上运行,将订阅链接转换为 Clash 配置。
    3. 手动下载(首次设置): 您可以在浏览器中直接打开订阅链接(有些服务商允许),或者使用 curlwget 下载。下载下来的内容通常就是 config.yaml 格式的。

      “`bash

      将 ‘YOUR_SUBSCRIPTION_URL’ 替换为你的实际订阅链接

      wget -O config.yaml “YOUR_SUBSCRIPTION_URL”

      或者

      curl -Lo config.yaml “YOUR_SUBSCRIPTION_URL”

      “`

      注意: 某些订阅链接可能需要特定的 User-Agent 或经过处理才能获取到正确的 Clash 配置。如果直接下载有问题,请咨询服务提供商或使用专门的转换工具。

  • 方法二:使用现成的 config.yaml 文件

    如果您的服务提供商直接提供了 config.yaml 文件,或者您自己编写了配置文件,直接使用该文件即可。

3.2 放置配置文件

Clash 默认会加载位于 ~/.config/clash/config.yaml 的配置文件。

  1. 创建配置目录:

    bash
    mkdir -p ~/.config/clash

  2. 将配置文件移动到该目录:

    假设您已经通过上述方法获取了 config.yaml 文件,并位于当前目录下:

    bash
    mv config.yaml ~/.config/clash/

3.3 (可选)下载 GeoIP 和 GeoSite 数据库

Clash 的规则经常依赖 GeoIP (IP 地理位置) 和 GeoSite (域名分类) 数据库来实现按区域或按网站分流。虽然 Clash 启动时可能会尝试自动下载,但手动下载可以确保其存在且为最新版本。

Clash 默认会加载 ~/.config/clash/Country.mmdb (GeoIP) 和 ~/.config/clash/GeoSite.dat

  1. 下载 GeoIP 数据库 (Country.mmdb):

    “`bash

    从 Loyalsoldier/v2ray-rules-dat 项目下载 (推荐)

    wget -O ~/.config/clash/Country.mmdb https://github.com/Loyalsoldier/v2ray-rules-dat/releases/latest/download/Country.mmdb

    或者从 MetaCubeX/meta-rules-dat 项目下载

    wget -O ~/.config/clash/Country.mmdb https://github.com/MetaCubeX/meta-rules-dat/releases/latest/download/geoip.db # 注意 Meta 可能使用 geoip.db

    ``
    *请确认您的
    config.yamlgeoip-database指向的文件名与下载的文件名一致,如果不一致,需要修改config.yaml` 或重命名下载的文件。*

  2. 下载 GeoSite 数据库 (geosite.dat):

    “`bash

    从 Loyalsoldier/v2ray-rules-dat 项目下载 (推荐)

    wget -O ~/.config/clash/GeoSite.dat https://github.com/Loyalsoldier/v2ray-rules-dat/releases/latest/download/geosite.dat
    # 或者从 MetaCubeX/meta-rules-dat 项目下载

    wget -O ~/.config/clash/GeoSite.dat https://github.com/MetaCubeX/meta-rules-dat/releases/latest/download/geosite.db # 注意 Meta 可能使用 geosite.db

    ``
    *同样,请确认您的
    config.yamlgeosite-database` 指向的文件名与下载的文件名一致。*

3.4 理解 config.yaml 的基本结构 (可选)

打开 ~/.config/clash/config.yaml 文件,您会看到 YAML 格式的配置。以下是一些关键字段的说明:

  • port: HTTP 代理端口,默认为 7890
  • socks-port: SOCKS5 代理端口,默认为 7891
  • redir-port: 透明代理(Redirect)端口(需要 root 权限和额外配置),通常用于路由器或特定场景。
  • mixed-port: 混合代理端口,可同时接受 HTTP 和 SOCKS5 连接。
  • allow-lan: 是否允许局域网其他设备连接到 Clash 代理端口,默认为 false。设为 true 后,其他设备可以将此 Ubuntu 机器作为代理服务器。需要注意防火墙设置。
  • mode: 代理模式,常见的有 Rule (规则模式), Global (全局模式), Direct (直连模式)。
  • log-level: 日志级别,如 info, warning, error, debug, silent
  • external-controller: Clash Web UI (Dashboard) 的访问地址和端口,格式为 IP:Port,例如 127.0.0.1:9090。这是访问 Web 管理界面的关键。
  • external-ui: 指定 external-controller 访问时默认加载的 Web UI 目录或 URL。
  • secret: (可选) 为 external-controller 设置访问密码,增强安全性。
  • proxies: 定义所有可用的代理服务器列表。
  • proxy-groups: 定义代理组,如 自动选择, 故障转移, 手动选择 等,组内可以包含具体的代理节点或其他代理组。
  • rules: 核心的规则列表,决定流量走向。规则从上到下匹配,匹配即生效。常见的规则类型有 DOMAIN-SUFFIX, DOMAIN-KEYWORD, GEOIP, IP-CIDR, MATCH 等。

第四章:运行与验证 Clash

4.1 首次运行与测试

在终端中直接运行 Clash,检查配置文件是否有效:

bash
clash -d ~/.config/clash

  • -d ~/.config/clash 指定了配置文件的目录。
  • 如果配置文件 config.yaml 没有语法错误且基本配置正确,Clash 会启动并开始监听指定的端口(如 7890, 7891, 9090)。您会看到类似以下的日志输出:

    INFO[0000] Start initial compatible provider default
    INFO[0000] Mixed(http+socks) proxy listening at: 127.0.0.1:7890
    INFO[0000] RESTful API listening at: 127.0.0.1:9090
    ... (其他日志信息) ...

  • 如果出现 ERROFATA 级别的错误,说明配置文件有问题,请根据错误提示检查 ~/.config/clash/config.yaml 文件。常见的错误包括 YAML 格式错误(缩进、冒号后空格等)、关键字拼写错误、文件路径错误等。可以使用在线 YAML 验证器检查格式。

  • Ctrl + C 可以停止在前台运行的 Clash。

4.2 设置系统代理

Clash 启动后只是监听了端口,还需要让系统或其他应用程序知道要使用这个代理。

  • 方法一:通过 Ubuntu 图形界面设置 (适用于 Desktop)

    1. 打开 “设置” (Settings)。
    2. 导航到 “网络” (Network) 或 “网络代理” (Network Proxy)。
    3. 选择 “手动” (Manual) 代理配置。
    4. 在 “HTTP 代理” (HTTP Proxy) 和 “HTTPS 代理” (HTTPS Proxy) 字段中,填入 127.0.0.1 作为地址,填入 Clash 配置中 port 指定的端口(默认为 7890)。
    5. 在 “SOCKS 主机” (SOCKS Host) 或 “SOCKS5 代理” 字段中,填入 127.0.0.1 作为地址,填入 Clash 配置中 socks-port 指定的端口(默认为 7891)。
    6. (可选) 在 “忽略主机” (Ignore Hosts) 或 “不使用代理的地址” 中添加 localhost, 127.0.0.1 等,确保本地服务不受影响。
    7. 应用设置。

    现在,支持系统代理设置的应用程序(如 Firefox, Chrome 等浏览器,以及一些其他应用)应该会通过 Clash 访问网络了。

  • 方法二:通过环境变量设置 (适用于终端和脚本)

    在当前终端会话中设置代理:

    “`bash

    设置 HTTP 和 HTTPS 代理

    export http_proxy=”http://127.0.0.1:7890″
    export https_proxy=”http://127.0.0.1:7890″

    设置 SOCKS5 代理 (有些应用可能优先使用 SOCKS)

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

    或者 (取决于应用支持)

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

    设置不走代理的地址

    export no_proxy=”localhost,127.0.0.1,::1″
    “`

    这种方式只对当前终端会话及其启动的子进程有效。要使其永久生效(不推荐全局设置,可能影响系统更新等),可以将其添加到 ~/.bashrc~/.profile 文件中,但更推荐按需设置或使用图形界面的系统代理。

    要取消终端代理设置:

    bash
    unset http_proxy https_proxy socks_proxy ALL_PROXY no_proxy

4.3 验证代理是否生效

  1. 启动 Clash: 确保 Clash 正在运行(可以使用 clash -d ~/.config/clash 在前台运行,或稍后介绍的后台运行方式)。
  2. 设置好系统代理。
  3. 在设置了代理的终端或浏览器中访问测试网站:
    • 检查 IP 地址:
      bash
      curl ipinfo.io
      # 或者在浏览器访问 https://www.ipip.net/ 或 https://ip.sb

      查看返回的 IP 地址是否是您的代理服务器的 IP 地址。
    • 访问被限制的网站: 尝试访问一个通常无法直接访问的网站(如 Google, YouTube 等),看是否能成功打开。
    • 检查 DNS 泄露: 访问 https://www.dnsleaktest.com/ 进行测试,理想情况下应该只看到代理服务器相关的 DNS 或您信任的 DNS 服务器。

第五章:使用 Clash Web UI (Dashboard)

Clash 核心程序虽然强大,但通过命令行管理节点切换、模式更改等操作较为不便。幸运的是,Clash 提供了 API 接口 (external-controller),可以配合 Web UI (Dashboard) 进行可视化管理。

5.1 确保 external-controller 已配置

检查您的 ~/.config/clash/config.yaml 文件,确保 external-controller 字段已正确设置并取消注释。通常设置为:

“`yaml

config.yaml

external-controller: ‘127.0.0.1:9090’

external-ui: dashboard # (可选) 指定内置 Web UI 目录名,如果 Clash 发行版包含的话

secret: ‘your_secret_password’ # (可选但推荐) 设置访问密码

“`

  • 127.0.0.1 表示只允许本机访问。如果需要局域网其他设备访问 Dashboard,可以改为 0.0.0.0:9090,并确保防火墙允许 9090 端口。注意安全风险! 强烈建议同时设置 secret
  • 9090 是默认端口,可以修改。

5.2 选择并访问 Dashboard

有多种流行的 Clash Web UI 可供选择:

  • Yacd (Yet Another Clash Dashboard): 界面简洁,功能全面。
  • Razord: 另一个流行的 Dashboard。
  • Clash Verge / Clash Nyanpasu 等 GUI 内置的 Dashboard: 如果您使用这些 Linux GUI,它们通常会自带或推荐 Dashboard。

访问方法:

  1. 使用 Clash 内置或本地部署的 Dashboard:

    • 如果您的 config.yaml 中配置了 external-ui 指向一个本地目录(例如,您下载了 Yacd 的文件并放到了 ~/.config/clash/dashboard),并且 Clash 正在运行,可以直接在浏览器中访问 http://127.0.0.1:9090http://127.0.0.1:9090/ui (具体路径取决于 external-ui 设置或 Clash 版本)。
    • 如果您没有配置 external-ui,或者想要使用在线的 Dashboard:
      • 访问在线 Yacd 面板:http://yacd.metacubex.one/ (这是一个公开托管的实例,方便使用)
      • 或者其他在线 Dashboard 地址。
  2. 在 Dashboard 界面中配置 Clash API 地址:

    • 打开 Dashboard 页面后,通常会有一个设置或添加后端的入口。
    • 填入您的 Clash API 地址,即 http://127.0.0.1:9090 (如果在本地运行 Clash)。
    • 如果设置了 secret,也需要填入对应的密码。
    • 点击连接或添加。

5.3 Dashboard 常用功能

连接成功后,您可以通过 Dashboard 进行以下操作:

  • 查看状态: 显示当前的上传/下载速度、连接数等。
  • 切换代理模式:全局 (Global), 规则 (Rule), 直连 (Direct) 模式间切换。
  • 选择代理节点/策略组:策略组 (Proxies) 页面,您可以手动选择想要使用的节点,或者选择不同的策略组(如 自动选择, 故障转移 等)。这是最常用的功能之一。
  • 查看日志: 实时查看 Clash 的运行日志,方便排错。
  • 查看连接: 显示当前的活动网络连接及其使用的规则和代理。
  • 更新订阅 (如果配置支持): 如果您的配置文件是通过订阅链接生成的,并且包含了更新信息,可以在 Dashboard 中触发更新。
  • 规则管理 (部分 Dashboard 支持): 查看当前加载的规则。

第六章:进阶使用与管理

6.1 使用 Systemd 管理 Clash 服务 (推荐)

每次手动在前台或后台运行 Clash 都不够方便,且容易意外关闭。在 Ubuntu 上,最好的方式是使用 systemd 将 Clash 作为系统服务来管理,实现开机自启、后台稳定运行、方便启停。

  1. 创建 Systemd 服务文件:

    /etc/systemd/system/ 目录下创建一个名为 clash.service 的文件:

    bash
    sudo nano /etc/systemd/system/clash.service

    将以下内容粘贴到文件中,并根据需要修改:

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

    [Service]
    Type=simple
    User=YOUR_USERNAME # 替换为你的非 root 用户名
    Group=YOUR_GROUPNAME # 替换为你的非 root 用户组名 (通常与用户名相同)
    WorkingDirectory=~/.config/clash # 设置工作目录为配置目录
    ExecStart=/usr/local/bin/clash -d /home/YOUR_USERNAME/.config/clash # 使用绝对路径!将 YOUR_USERNAME 替换
    Restart=on-failure
    RestartSec=5s # 可选:失败后 5 秒重启
    LimitNPROC=500 # 可选:限制进程数
    LimitNOFILE=1048576 # 可选:提高文件描述符限制,应对大量连接

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

    重要说明:
    * 将 YOUR_USERNAMEYOUR_GROUPNAME 替换为您实际运行 Clash 的普通用户的用户名和组名。不要使用 root 用户运行 Clash!
    * ExecStart 中的路径 /home/YOUR_USERNAME/.config/clash 必须是绝对路径,同样需要替换 YOUR_USERNAME
    * 确保 /usr/local/bin/clash 是您安装 Clash 的正确路径。
    * After= 确保网络准备好之后再启动 Clash。
    * Restart=on-failure 会在 Clash 异常退出时自动尝试重启。

  2. 重载 Systemd 配置:

    bash
    sudo systemctl daemon-reload

  3. 启动 Clash 服务:

    bash
    sudo systemctl start clash

  4. 设置开机自启 (可选):

    bash
    sudo systemctl enable clash

  5. 管理 Clash 服务:

    • 查看状态: sudo systemctl status clash
    • 停止服务: sudo systemctl stop clash
    • 重启服务: sudo systemctl restart clash
    • 查看日志: sudo journalctl -u clash -f (实时查看) 或 sudo journalctl -u clash (查看所有日志)
    • 取消开机自启: sudo systemctl disable clash

    现在,Clash 就可以在后台稳定运行,并通过 systemctl 命令轻松管理了。

6.2 更新 Clash 配置/订阅

  • 手动更新:

    1. 下载新的 config.yaml 文件 (如果服务商提供) 或使用 wget/curl 重新下载订阅链接覆盖 ~/.config/clash/config.yaml
    2. 重启 Clash 服务:sudo systemctl restart clash
  • 通过 Dashboard 更新 (推荐,如果配置支持):

    1. 确保您的 config.yaml 文件是由支持在线更新的订阅链接生成的(通常包含 proxy-providers 或特定头部信息)。
    2. 在 Dashboard 的 “配置 (Settings)” 或 “配置 (Profiles)” 部分,通常会有 “更新 (Update)” 或 “立即更新 (Update Now)” 按钮。点击即可触发 Clash 从原始订阅链接拉取最新配置。更新后 Clash 会自动应用新配置,无需重启服务。
  • 使用脚本自动更新:
    可以编写 Shell 脚本,定期使用 wgetcurl 下载订阅链接,然后通过 Clash API 热重载配置 (无需重启服务)。这需要更深入的了解 Clash API,通常对于普通用户 Dashboard 更新已足够。

6.3 Clash TUN 模式 (进阶)

Clash Premium 内核(以及一些开源衍生版如 Clash.Meta)支持 TUN 模式。TUN 模式创建一个虚拟网卡,接管系统的所有 TCP 和 UDP 流量(可配置),实现真正的全局代理,无需手动设置系统代理或担心某些应用不遵循代理设置。

注意:TUN 模式配置相对复杂,需要 root 权限运行 Clash (不推荐直接用 root 运行整个 Clash 服务) 或利用 CAP_NET_ADMIN 权限,且可能与某些网络环境或 VPN 冲突。

配置 TUN 模式通常涉及:

  1. 使用支持 TUN 的 Clash 内核。
  2. config.yaml 中启用 TUN 模式并进行配置:
    yaml
    tun:
    enable: true
    stack: system # or gvisor
    dns-hijack: # 劫持 DNS 请求到 Clash 的 DNS 服务器
    - any:53
    auto-route: true # 自动配置路由表
    auto-detect-interface: true # 自动检测出口网卡
  3. 配置 DNS: 确保 Clash 的 DNS 设置 (dns 字段) 工作正常,因为 TUN 模式下所有 DNS 请求也会被接管。
  4. 权限设置: 可能需要以 root 启动 Clash,或为 Clash 可执行文件设置 CAP_NET_ADMIN 权限 (sudo setcap cap_net_admin+ep /usr/local/bin/clash),并确保运行用户有权操作 TUN 设备。
  5. 路由和防火墙规则: 可能需要手动调整路由表或防火墙规则,确保流量正确进入 TUN 设备并能正常流出。

TUN 模式是高级功能,建议在充分理解其原理和风险后再尝试配置。对于大多数用户,标准的 HTTP/SOCKS 代理模式配合系统代理设置已经足够。

6.4 自定义规则

Clash 的强大之处在于其规则系统。您可以编辑 ~/.config/clash/config.yaml 文件中的 rules: 部分,添加、修改或删除规则,以满足个性化的分流需求。例如:

  • 指定某网站走特定代理:DOMAIN-SUFFIX,example.com,ProxyA
  • 屏蔽广告域名:DOMAIN-KEYWORD,adservice,REJECT
  • 国内网站直连:GEOIP,CN,DIRECTGEOSITE,CN,DIRECT
  • 最终规则(未匹配的流量):MATCH,ProxyGroup (让剩余流量走某个代理组)

规则的编写需要了解其语法和匹配顺序。建议参考 Clash 官方文档或其他用户的优秀规则集。

第七章:故障排查

  • Clash 无法启动:
    • 检查 config.yaml 语法是否正确 (使用 YAML 验证器)。
    • 检查日志 (sudo journalctl -u clash 或前台运行 clash -d ~/.config/clash) 中的错误信息。
    • 确认配置文件路径、GeoIP/GeoSite 文件路径是否正确。
    • 端口是否被占用? (使用 sudo ss -tulnp | grep <port> 检查)。
  • 代理无法连接:
    • 确认 Clash 服务正在运行 (sudo systemctl status clash)。
    • 确认系统代理设置正确,指向 Clash 监听的 IP 和端口 (127.0.0.1:7890127.0.0.1:7891)。
    • 在 Dashboard 中检查节点是否可用(可以尝试切换节点或更新订阅)。
    • 检查防火墙 (ufwiptables) 是否阻止了连接。如果 allow-lan: true,需要允许局域网 IP 访问 Clash 端口。
    • 检查服务提供商的节点是否有效,账户是否过期。
  • 速度慢:
    • 尝试切换到延迟较低、负载较轻的节点。
    • 检查本地网络状况。
    • 可能是服务提供商线路问题。
    • 检查规则是否导致不必要的绕行。
  • 部分网站无法访问:
    • 检查 Clash 日志,看是否有相关错误。
    • 检查规则是否错误地将该网站 REJECT 或走了错误的代理/直连。尝试切换到全局模式看是否能访问。
    • 可能是 DNS 解析问题,检查 Clash 的 DNS 配置,或尝试在系统层面更换 DNS。
  • Dashboard 无法访问:
    • 确认 Clash 服务运行中。
    • 确认 config.yamlexternal-controller 配置正确且未被注释。
    • 确认访问的 URL 和端口正确 (http://127.0.0.1:9090)。
    • 如果设置了 secret,确保在 Dashboard 中输入了正确的密码。
    • 检查防火墙是否阻止了对 9090 端口的访问 (尤其是从其他机器访问时)。

第八章:安全注意事项

  • 信任来源: 只使用来自可信服务提供商的订阅链接或配置文件。恶意的配置文件可能包含劫持流量或记录信息的规则。
  • 保护 Dashboard: 如果将 external-controller 监听地址设为 0.0.0.0 以允许局域网访问,务必在 config.yaml 中设置 secret,以防未授权访问。同时,确保防火墙规则只允许信任的 IP 访问该端口。
  • 不使用 Root 运行: 除非绝对必要 (如 TUN 模式的特定配置),否则不要直接使用 root 用户运行 Clash 服务。使用普通用户运行,并通过 systemdUserGroup 指令指定。
  • 谨慎使用来路不明的规则片段或脚本。

结语

通过本教程,您应该已经掌握了在 Ubuntu 系统上安装、配置、运行和管理 Clash 的基本流程和进阶技巧。从基础的代理设置,到使用 Dashboard 进行可视化管理,再到通过 Systemd 实现服务的稳定运行,以及对 TUN 模式、自定义规则等高级功能的了解,希望这些内容能帮助您更好地利用 Clash 这款强大的工具。

Clash 的生态仍在不断发展,配置选项和玩法也非常丰富。建议您在熟悉基本操作后,多查阅 Clash 官方文档 (https://github.com/Dreamacro/clash/wiki)、您使用的 Dashboard 的文档,以及相关社区(如 V2EX、GitHub Issues 等)的讨论,不断探索和优化您的 Clash 使用体验。祝您上网愉快!


发表评论

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

滚动至顶部