Clash for Ubuntu 完整安装与使用指南
引言
Clash 是一款备受欢迎的基于规则的多平台代理客户端,以其强大的功能、灵活的配置和优秀的性能而闻名。它支持多种代理协议,如 Shadowsocks(R), Vmess, Trojan, Snell 等,并允许用户根据自定义规则进行精细化的流量分流。对于 Ubuntu 用户来说,无论是需要访问特定网络资源、保护隐私,还是希望优化网络连接,Clash 都是一个强大的工具。
本指南旨在提供一个全面而详细的教程,涵盖在 Ubuntu 系统上安装、配置和使用 Clash 的完整流程。我们将从基础概念讲起,介绍多种安装方式,重点讲解配置文件的获取与管理,指导如何将 Clash 作为系统服务运行,并说明如何在不同场景下(系统全局、终端、浏览器等)使用 Clash 代理。此外,我们还将探讨一些图形化界面(GUI)客户端的使用以及常见问题的排查方法。本文力求详尽,希望能帮助您顺利地在 Ubuntu 上部署和使用 Clash。
本指南主要内容:
- Clash 简介与核心概念
- 安装 Clash 核心程序
- 方法一:直接下载官方预编译二进制文件(推荐)
- 方法二:(可选) 通过包管理器(若有可靠来源)
- 获取与配置 Clash
- 理解
config.yaml
配置文件 - 获取配置文件(订阅链接是关键)
- 下载和管理 GeoIP 和 GeoSite 数据库
- 验证配置文件
- 理解
- 运行 Clash
- 前台运行(用于测试)
- 后台运行:设置为 Systemd 服务(推荐)
- 配置系统与应用使用 Clash 代理
- 配置 Ubuntu 系统全局代理
- 配置终端(Shell)代理
- 配置浏览器代理(推荐使用扩展)
- 配置特定应用程序代理
- 使用 Clash GUI 客户端(可选但方便)
- Clash Verge 简介与安装
- 使用 GUI 管理 Clash
- Clash Web UI (Yacd / Razord)
- 访问与使用 Web 控制面板
- 进阶话题
- 理解 Clash 代理模式(Rule / Global / Direct)
- 更新 Clash 核心与配置文件
- 常见问题与故障排查
- 总结与注意事项
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 (直连模式): 所有(或大部分)流量都直接连接,不通过代理。
- Rule (规则模式): 根据
- Web UI: Clash Core 内建了一个 HTTP 服务,可以通过浏览器访问一个控制面板(如 Yacd 或 Razord),用于实时查看连接、切换策略组节点、查看日志等。
2. 安装 Clash 核心程序
在 Ubuntu 上安装 Clash Core 最可靠、最通用的方法是直接从 Clash 的官方 GitHub Releases 页面下载预编译的二进制文件。
方法一:直接下载官方预编译二进制文件(推荐)
-
确定系统架构:
首先,确定您的 Ubuntu 系统架构。在终端中运行:
bash
uname -m
常见的输出有x86_64
(表示 64 位 Intel/AMD) 或aarch64
/arm64
(表示 64 位 ARM,如树莓派或某些服务器)。 -
访问 Clash GitHub Releases:
打开浏览器,访问 Clash 核心项目的 GitHub Releases 页面。通常是https://github.com/Dreamacro/clash/releases
。请注意查找 Clash Core 项目,而不是 Premium 内核或其他 GUI 项目的 Releases。 -
下载对应版本的压缩包:
在最新的 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 -
解压文件:
下载完成后,使用gzip
命令解压:
bash
# 示例:解压下载的文件 (文件名会对应您下载的版本)
gzip -d clash-linux-amd64-v1.18.0.gz
解压后,您会得到一个名为clash-linux-amd64-v1.18.0
(或类似名称) 的可执行文件。 -
重命名并赋予执行权限:
为了方便使用,将其重命名为clash
,并添加执行权限:
“`bash
# 示例:重命名 (文件名会对应您下载的版本)
mv clash-linux-amd64-v1.18.0 clash添加执行权限
chmod +x clash
“` -
移动到系统路径 (推荐):
将clash
可执行文件移动到系统的PATH
环境变量包含的目录中,这样您就可以在任何位置直接运行clash
命令。推荐使用/usr/local/bin
:
bash
sudo mv clash /usr/local/bin/
您需要输入管理员密码。 -
验证安装:
在终端中运行以下命令,检查 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
非常复杂且耗时。绝大多数用户通过 订阅链接 来获取配置文件。
-
什么是订阅链接?
它是一个 URL,由您的代理服务提供商提供。访问这个 URL 会返回一个符合 Clash 规范的config.yaml
文件内容(或者是需要转换的基础配置文件)。- 重要提示: 请从 可信赖的 代理服务提供商获取订阅链接。自行承担使用代理服务的风险和法律责任。本指南不提供或推荐任何具体的服务商。
-
下载配置文件:
假设您已经获得了一个 Clash 订阅链接YOUR_SUBSCRIPTION_URL
。您需要将这个链接的内容保存为config.yaml
文件。Clash 默认会查找以下位置的配置文件:$HOME/.config/clash/config.yaml
(推荐)- 当前工作目录下的
config.yaml
使用
wget
或curl
下载并保存到推荐位置:
“`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 的规则可以使用 GEOIP
和 GEOSITE
条件进行匹配,这需要相应的数据库文件。
Country.mmdb
: GeoIP 数据库,用于根据 IP 地址判断地理位置(国家)。GeoSite.dat
: GeoSite 数据库,包含常见的网站域名分类列表。
您需要下载这两个文件并将它们放置在 Clash 配置目录下 ($HOME/.config/clash/
)。
-
下载
Country.mmdb
:
推荐使用 Loyalsoldier 维护的版本(更新较勤):
bash
wget -O $HOME/.config/clash/Country.mmdb https://github.com/Loyalsoldier/v2ray-rules-dat/releases/latest/download/Country.mmdb -
下载
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-database
和geosite-database
(如果显式指定了的话) 或默认约定匹配。通常Country.mmdb
和geosite.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 服务。
-
创建 Systemd 服务文件:
使用文本编辑器(如nano
或vim
)创建一个服务文件。需要sudo
权限:
bash
sudo nano /etc/systemd/system/clash.service -
编辑服务文件内容:
将以下内容粘贴到文件中。请务必将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
: 表示该服务应该在多用户模式下启用。
-
保存并关闭编辑器:
在nano
中,按Ctrl + X
,然后按Y
确认保存,最后按Enter
确认文件名。 -
重载 Systemd 配置:
让 Systemd 读取新的服务文件:
bash
sudo systemctl daemon-reload -
启动 Clash 服务:
bash
sudo systemctl start clash -
检查服务状态:
bash
sudo systemctl status clash
如果服务成功启动,您应该看到active (running)
的状态信息。同时会显示最近的日志。按q
退出状态查看。 -
设置开机自启 (可选但推荐):
如果您希望每次系统启动时 Clash 都自动运行:
bash
sudo systemctl enable clash
创建了一个符号链接,使得服务在启动时被加载。 -
管理 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。
- 打开 Ubuntu 的 设置 (Settings)。
- 导航到 网络 (Network)。
- 找到 网络代理 (Network Proxy) 设置,点击旁边的齿轮图标。
- 选择 手动 (Manual)。
- 在 HTTP 代理 (HTTP Proxy) 和 HTTPS 代理 (HTTPS Proxy) 字段中,都填入
127.0.0.1
作为地址,端口填入 Clash 的 HTTP 端口(默认为7890
)。 - 在 Socks 主机 (Socks Host) 字段中,填入
127.0.0.1
作为地址,端口填入 Clash 的 SOCKS5 端口(默认为7891
)。 - (可选)您可以在 忽略主机 (Ignored Hosts) 中添加不需要走代理的地址,例如
localhost, 127.0.0.0/8, ::1
。 - 关闭设置窗口即可生效。
注意: 系统全局代理并非对所有应用都有效。一些应用(特别是命令行工具和某些特殊网络库的应用)可能不遵守系统设置。
配置终端(Shell)代理
对于命令行工具(如 wget
, curl
, apt
, git
等),您需要设置环境变量来使其通过代理。
-
临时设置 (当前终端会话有效):
“`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″
``
7890
* 请根据您的 Clash 配置选择使用 HTTP 端口 () 还是 SOCKS5 端口 (
7891)。HTTP 代理通常更通用。
all_proxy是一些工具(如
curl`)支持的 SOCKS 代理变量。
* 设置后,当前终端中运行的网络命令就会尝试通过代理。 -
永久设置 (对新打开的终端生效):
将上述export
命令添加到您的 Shell 配置文件中。- 如果是 Bash (默认 Shell): 编辑
~/.bashrc
文件 (nano ~/.bashrc
),在文件末尾添加export
行。 - 如果是 Zsh: 编辑
~/.zshrc
文件 (nano ~/.zshrc
),在文件末尾添加export
行。
添加后,保存文件,然后运行
source ~/.bashrc
(或source ~/.zshrc
) 使其在当前会话生效,或者重新打开一个终端。 - 如果是 Bash (默认 Shell): 编辑
-
取消终端代理:
bash
unset http_proxy
unset https_proxy
unset all_proxy # 如果设置了的话
unset no_proxy # 如果设置了的话
或者直接关闭设置了代理的终端窗口。
配置浏览器代理(推荐使用扩展)
虽然可以设置系统全局代理,但浏览器使用代理的最佳实践是安装代理管理扩展,例如 SwitchyOmega (适用于 Chrome/Chromium/Firefox)。
- 安装 SwitchyOmega: 在您的浏览器扩展商店搜索并安装 “Proxy SwitchyOmega”。
- 配置 SwitchyOmega:
- 打开 SwitchyOmega 选项。
- 新建情景模式 (New Profile),例如命名为 “Clash”。
- 选择代理协议为
HTTP
,服务器填127.0.0.1
,端口填7890
(Clash 的 HTTP 端口)。 - (可选)可以再创建一个 SOCKS5 的情景模式,协议选
SOCKS5
,服务器127.0.0.1
,端口7891
。 - 保存设置。
- 使用 SwitchyOmega:
- 点击浏览器工具栏上的 SwitchyOmega 图标。
- 您可以选择:
- [直接连接] (Direct): 不使用任何代理。
- [系统代理] (System Proxy): 跟随操作系统的代理设置。
- Clash (或其他您命名的情景模式): 强制所有浏览器流量通过 Clash。
- (推荐) Auto Switch (自动切换模式): 这是 SwitchyOmega 的强大功能。您可以配置规则列表(例如使用 GFWList),让访问特定网站时自动切换到 Clash 代理,访问其他网站时则直连。这通常比 Clash Core 的规则模式更灵活,因为可以在浏览器层面快速切换。
配置特定应用程序代理
一些应用程序(如 Telegram, Docker, некоторые IDE)有自己的网络代理设置选项。您需要在这些应用程序的设置中手动配置代理,通常选择 HTTP 或 SOCKS5,并填入 127.0.0.1
和对应的端口 (7890
或 7891
)。
6. 使用 Clash GUI 客户端(可选但方便)
虽然 Clash Core 是命令行程序,但有许多第三方开发的图形用户界面 (GUI) 客户端,可以极大地简化 Clash 的管理和使用。这些 GUI 通常会自带或允许您指定 Clash Core,并提供友好的界面来:
- 导入/管理配置文件(通常直接支持订阅链接)
- 轻松切换代理模式(Rule / Global / Direct)
- 在策略组中手动选择节点
- 查看实时流量速度和连接信息
- 测试节点延迟
- 管理 Clash Core 进程(启动/停止)
Clash Verge 简介与安装
Clash Verge 是目前比较流行和活跃维护的一个跨平台 Clash GUI 客户端。
- 访问 Clash Verge GitHub Releases:
打开浏览器,访问https://github.com/zzzgydi/clash-verge/releases
。 - 下载对应 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 大同小异):
- 启动 Clash Verge: 从应用程序菜单启动,或者运行 AppImage 文件。
- 导入配置文件:
- 通常在 “Profiles” (配置文件) 或类似区域。
- 可以直接粘贴您的 Clash 订阅链接 URL,GUI 会自动下载并处理。
- 也可以导入本地的
config.yaml
文件。
- 选择配置文件: 激活您想要使用的配置文件。
- 系统代理: 在 “Settings” (设置) -> “System Proxy” (或类似名称) 处,打开开关。GUI 会自动帮您配置 Ubuntu 的系统全局代理。您可能需要提供管理员密码。
- 选择模式: 在主界面或 “Proxies” (代理) 区域,通常有 Rule / Global / Direct 的切换按钮。
- 选择节点:
- 进入 “Proxies” 区域,您会看到配置文件中定义的各个策略组 (Proxy Groups)。
- 对于
select
类型的组,您可以手动点击选择要使用的节点。 - 对于
url-test
类型的组,通常可以点击测速按钮,GUI 会测试所有节点的延迟并自动选择最优节点。
- 查看状态: 主界面通常会显示实时的上传/下载速度。”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.yaml
的 external-controller
中修改)。
- 确保 Clash Core 正在运行。
-
确保
config.yaml
中配置了external-controller
和external-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
)。 -
使用 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:
- 重复 第 2 节 (安装 Clash) 中的步骤,下载最新版本的二进制文件。
- 如果 Clash 正在作为 Systemd 服务运行,先停止服务:
sudo systemctl stop clash
。 - 将新的
clash
可执行文件替换掉旧的/usr/local/bin/clash
文件:sudo mv new_clash_binary /usr/local/bin/clash
(确保新文件有执行权限chmod +x
)。 - 重新启动服务:
sudo systemctl start clash
。 - 验证版本:
clash -v
。
-
更新配置文件 (订阅):
如果您的配置文件来自订阅链接,服务提供商可能会更新节点信息。您需要定期更新本地的config.yaml
。- 手动更新: 重新运行 第 3 节 中的
wget
或curl
命令下载订阅链接即可覆盖旧的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,或者提供重启按钮。 - 手动更新: 重新运行 第 3 节 中的
-
更新 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. 常见问题与故障排查
-
无法连接网络 / 代理无效:
- 检查 Clash 是否运行:
sudo systemctl status clash
(如果使用服务) 或检查 GUI 状态。 - 检查代理设置: 确认系统、浏览器或应用的代理设置是否正确指向
127.0.0.1
和正确的端口 (HTTP7890
, SOCKS7891
)。 - 检查 Clash 模式: 确保您处于正确的模式(Rule 或 Global),而不是 Direct。
- 检查节点选择: 在策略组中选择一个可用的节点。尝试手动切换到不同的节点。使用 GUI 的测速功能检查节点连通性。
- 检查配置文件: 使用
clash -t -d $HOME/.config/clash
检查配置文件语法是否有误。 - 查看 Clash 日志:
sudo journalctl -u clash -f
(如果使用服务) 或查看 GUI/Web UI 中的日志,看是否有错误信息(如连接被拒、DNS 解析失败等)。 - 防火墙问题: 检查 Ubuntu 的防火墙 (
ufw
) 是否阻止了 Clash 的端口或出站连接。sudo ufw status
。 - 订阅过期/无效: 确认您的订阅链接是否仍然有效,尝试更新订阅。
- 检查 Clash 是否运行:
-
Clash 服务启动失败:
- 检查 Systemd 服务文件:
cat /etc/systemd/system/clash.service
,确认User
,Group
,WorkingDirectory
,ExecStart
中的路径和用户名是否都正确无误。特别是WorkingDirectory
和-d
参数后的路径必须是 Clash 配置文件所在的目录。 - 检查 Clash 可执行文件: 确认
/usr/local/bin/clash
文件存在且具有执行权限。 - 查看详细日志:
sudo journalctl -u clash
查看具体的错误信息。可能是配置文件错误、端口被占用等。 - 端口冲突: 检查
7890
,7891
,9090
(或其他您配置的端口) 是否已被其他程序占用。sudo netstat -tulnp | grep -E '7890|7891|9090'
。如果被占用,需要修改 Clash 配置文件的端口或停止占用端口的程序。
- 检查 Systemd 服务文件:
-
配置文件测试失败:
- 仔细阅读
clash -t
输出的错误信息,它会指出哪一行的哪个字段有问题。通常是 YAML 语法错误(缩进、冒号、引号等)、无效的参数值、或者缺少必要的字段。对照 Clash 官方文档或可靠的配置示例进行修改。
- 仔细阅读
-
特定网站/应用无法访问:
- 可能是规则配置问题。检查
config.yaml
中的rules
部分,看是否有规则错误地将该网站/应用的流量匹配到了无效的节点、REJECT
或错误的DIRECT
。 - 尝试切换到 Global 模式,看是否能访问。如果 Global 模式可以,说明是规则问题。
- 使用 Web UI 的规则测试功能,输入域名或 IP,看它匹配到了哪条规则。
- 可能是规则配置问题。检查
10. 总结与注意事项
Clash 是一个功能强大的代理工具,通过本指南,您应该能够在 Ubuntu 系统上成功安装、配置和使用它。无论是通过 Systemd 服务运行 Clash Core 并精细配置系统代理,还是利用方便的 GUI 客户端,Clash 都能提供灵活的网络代理体验。
关键步骤回顾:
- 从官方 GitHub 下载并安装 Clash Core 二进制文件。
- 获取可靠的 Clash 订阅链接,并下载为
config.yaml
文件。 - 下载
Country.mmdb
和GeoSite.dat
数据库文件。 - 验证配置文件 (
clash -t
)。 - (推荐) 配置 Systemd 服务让 Clash 在后台稳定运行并开机自启。
- 根据需要配置系统全局代理、终端代理或浏览器代理扩展 (SwitchyOmega)。
- (可选) 使用 Clash Verge 等 GUI 客户端简化管理。
- 定期更新 Clash Core、配置文件和 Geo 数据库。
注意事项:
- 安全与隐私: 请务必从您信任的来源获取 Clash 软件和配置文件(订阅链接)。警惕来路不明的修改版或配置。
- 合规性: 使用代理服务时,请遵守当地法律法规以及服务提供商的使用条款。请勿将代理用于非法目的。
- 配置文件: 妥善保管您的订阅链接和配置文件,不要轻易泄露。
- 资源占用: Clash Core 本身资源占用不高,但大量的并发连接或复杂的规则可能增加 CPU 和内存使用。
- 文档: Clash 官方文档 (
https://github.com/Dreamacro/clash/wiki
) 是最权威的信息来源,遇到疑难问题时可查阅。
希望这篇详尽的指南能帮助您在 Ubuntu 上充分利用 Clash 的强大功能!