Ubuntu 系统安装 Clash 详细指南:一步步带你玩转网络代理
随着网络环境的日益复杂,许多用户在 Linux 系统上需要一个强大、灵活且易于管理的代理工具。Clash 应运而生,它是一个基于 Go 语言开发的多平台代理客户端,以其规则丰富、功能强大、跨平台兼容性好而受到青睐。本文将为你提供一份超详细的 Ubuntu 系统安装和配置 Clash 的指南,涵盖命令行核心版和带 GUI 的版本,并详细讲解如何进行基础配置和系统代理设置,帮助你轻松驾越网络边界。
我们将从零开始,手把手教你完成整个过程。无论你是终端命令行爱好者,还是偏爱直观的图形界面,本文都能为你找到合适的安装路径。
文章目录
- 引言:什么是 Clash?为什么在 Ubuntu 上使用 Clash?
- 准备工作:开始安装前你需要知道和准备什么?
- 方法一:安装 Clash Core (命令行版本)
- 下载 Clash Core 二进制文件
- 赋予执行权限并移动到 PATH 目录
- 验证安装
- 方法二:安装带 GUI 的 Clash (以 Clash Verge 或 Clash for Linux 为例)
- 了解 GUI 版本
- 下载 GUI 客户端 (AppImage 或 .deb 包)
- 安装与运行 GUI 客户端
- 配置 Clash:获取并设置你的代理配置文件
- 代理配置文件的格式 (YAML)
- 获取配置文件 (订阅链接或本地文件)
- 将配置文件放入正确位置
- 简要介绍配置文件的关键部分 (Proxies, Proxy Groups, Rules)
- 运行 Clash
- 运行 Clash Core
- 运行 GUI 客户端
- 访问 Clash Web UI (控制面板)
- 设置系统代理:让你的应用通过 Clash 访问网络
- 通过 Ubuntu 系统设置手动配置代理
- 通过 Clash GUI 客户端一键设置系统代理
- 为命令行工具设置代理 (使用 proxychains)
- Clash 的管理与维护
- 启动、停止与重启
- 更新 Clash
- 通过 Web UI 管理配置和查看日志
- 设置开机自启 (使用 systemd – 进阶)
- 常见问题与故障排除
- Clash 无法启动
- 网络不通或速度慢
- 配置文件错误 (YAML 语法)
- 端口冲突
- 防火墙问题
- Clash Web UI 无法访问
- 进阶使用提示 (简述)
- 自定义规则
- TUN 模式
- 总结与展望
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 是版本号)。
我们可以使用 wget
或 curl
命令在终端中直接下载。假设最新版本是 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 标准的软件包格式,下载后可以使用
dpkg
或apt
命令进行安装,会将程序安装到系统标准位置,并集成到应用菜单。
推荐使用 .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 文件:
- 打开终端,进入到你下载文件的目录。
- 赋予文件执行权限:
bash
chmod +x Clash.Verge_1.5.10_amd64.AppImage
请将文件名替换为你下载的实际文件名。 - 直接运行该文件:
bash
./Clash.Verge_1.5.10_amd64.AppImage
或者在文件管理器中,右键点击文件,选择 “属性” -> “权限”,勾选 “允许文件作为程序执行”,然后双击文件即可运行。
如果下载的是 .deb 文件:
- 打开终端,进入到你下载文件的目录。
- 使用
dpkg
命令安装:
bash
sudo dpkg -i clash-for-linux_0.20.16_amd64.deb
请将文件名替换为你下载的实际文件名。 - 如果在安装过程中出现依赖问题,可以尝试修复:
bash
sudo apt --fix-broken install - 安装完成后,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 获取配置文件 (订阅链接或本地文件)
你通常会通过以下方式获取配置文件:
- 订阅链接: 大多数代理服务提供商会给你一个以
http
或https
开头的订阅链接。这个链接实际上是一个 YAML 文件的地址,Clash 可以周期性地从这个地址更新配置文件。 - 本地文件: 有些服务商可能直接提供一个
.yaml
文件供你下载。或者你可以手动编辑一个配置文件。
推荐使用订阅链接,方便后续更新。
5.3 将配置文件放入正确位置
配置文件需要放在 Clash 能够找到的位置。这个位置取决于你安装的是 Clash Core 还是 GUI 客户端。
对于 Clash Core (命令行版本):
Clash Core 默认会在用户主目录下的 .config/clash/
目录寻找 config.yaml
文件。如果这个目录不存在,你需要手动创建它。
- 创建配置目录:
bash
mkdir -p ~/.config/clash
mkdir -p
会创建目录及其父目录,如果它们不存在的话。 - 获取配置文件:
- 如果你的服务商提供订阅链接: 你需要手动将订阅链接的内容下载下来,保存为
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 中输入订阅链接即可。
- 打开 GUI 客户端。
- 寻找 “订阅” (Subscriptions) 或 “Profiles” (配置文件) 等相关的菜单项。
- 点击 “添加订阅” 或类似的按钮。
- 粘贴你的订阅链接,并可能需要输入一个备注名称。
- 点击确认或下载。客户端会自动下载、解析并将配置文件保存在其管理的目录下。
- 下载成功后,你需要在客户端界面选择刚刚添加的配置文件使其生效。
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 等)。
- 点击 Ubuntu 桌面右上角的网络图标或系统设置图标,选择 “Settings” (设置)。
- 在左侧菜单中找到 “Network” (网络)。
- 在右侧面板中,找到 “Network Proxy” (网络代理) 部分。
- 点击齿轮图标进行配置。
- 在弹出的窗口中,将 “Method” (方法) 从 “None” (无) 改为 “Manual” (手动)。
- 填写代理服务器地址和端口:
- 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 同时支持这两种)
- HTTP Proxy: Address:
- 你可以在 “Ignore Hosts” 中添加不需要走代理的地址或域名,例如
localhost, 127.0.0.1, *.local
以及你的内网 IP 段。 - 点击右上角的 “Apply System-wide” (应用到系统) 或 “Apply” (应用) 按钮保存设置。
现在,大多数遵循系统代理设置的应用程序 (如 Firefox 浏览器、Chrome 浏览器等) 就会通过 Clash 访问网络了。你可以打开浏览器访问一个需要代理的网站测试是否成功。
注意: 有些应用程序有自己的代理设置(例如 Telegram, 部分下载工具),这些应用可能不会遵循系统代理设置,你需要进入它们的设置中单独配置代理。
7.2 通过 Clash GUI 客户端一键设置系统代理
如果你使用的是带 GUI 的 Clash 客户端,这个过程会更简单。GUI 客户端通常提供了 “System Proxy” 或 “设置为系统代理” 的开关按钮。
- 打开 Clash GUI 客户端。
- 在主界面或设置中找到 “System Proxy” 或类似选项。
- 点击开关将其打开。
GUI 客户端会自动修改系统的代理设置,指向 Clash 监听的端口。当你关闭这个开关时,它会恢复之前的代理设置 (通常是 None)。这是最推荐的设置系统代理的方式,因为方便管理。
7.3 为命令行工具设置代理 (使用 proxychains)
系统代理设置通常只影响图形界面应用程序。对于终端中的命令(如 wget
, curl
, apt
, git
等),它们默认不遵循系统代理设置。如果你想让特定的命令行工具走代理,可以使用 proxychains
。
- 安装 proxychains:
bash
sudo apt update
sudo apt install proxychains4 -
配置 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`, 回车)。
bash
3. **使用 proxychains:**
在你想要通过代理运行的命令前面加上 `proxychains4`。
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
文件。
- 创建服务文件:
bash
sudo nano /etc/systemd/system/clash.service -
将以下内容复制到文件中:
“`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` 和其他资源文件。
bash
3. 保存并关闭文件。
4. 重载 systemd 配置:
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>
命令查看端口占用情况。如果端口被占用,修改配置文件中的端口设置或关闭占用端口的程序。
- 权限问题: 检查 Clash 二进制文件是否有执行权限 (
- 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 愉快!