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 准备工作
在开始之前,请确保您已准备好以下内容:
- 一台运行 Ubuntu 的设备: 本教程基于 Ubuntu Desktop / Server 版本,大部分命令通用。
- 基本的命令行操作能力: 需要使用终端执行命令。
- Clash 配置文件或订阅链接: 这是使用 Clash 的关键。您可以从您的代理服务提供商处获取。
- 订阅链接 (Subscription URL): 一个 URL,Clash 可以通过它下载配置文件。这是最常见且推荐的方式,方便更新。
- 配置文件 (config.yaml): 一个 YAML 格式的文本文件,包含了代理服务器、规则等所有配置信息。
- 网络连接: 用于下载 Clash 程序和配置文件。
- (可选)
wget
或curl
工具: 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 架构 (下载arm64
或armv8
版本)armv7l
: 表示 32 位 ARM 架构 (下载armv7
版本)
2.2 下载 Clash 二进制文件
- 访问 Clash 的 GitHub Releases 页面:https://github.com/Dreamacro/clash/releases
- 找到最新的稳定版本(通常不是 Pre-release)。
- 在 “Assets” 部分,找到与您系统架构匹配的 Linux 版本压缩包。通常文件名类似
clash-linux-amd64-vX.Y.Z.gz
或clash-linux-arm64-vX.Y.Z.gz
。 -
复制该文件的下载链接。
-
打开终端,使用
wget
或curl
下载。假设我们要下载 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
-
解压下载的文件:
“`bash
将 ‘clash-linux-amd64-vX.Y.Z.gz’ 替换为你下载的文件名
gzip -d clash-linux-amd64-v*.gz
“`解压后会得到一个名为
clash-linux-amd64-vX.Y.Z
(或类似)的可执行文件。 -
重命名并赋予执行权限:
“`bash
将解压后的文件名替换为实际名称
mv clash-linux-amd64-v* clash
chmod +x clash
“` -
将 Clash 移动到系统路径(推荐): 将
clash
可执行文件移动到/usr/local/bin
目录下,这样可以在任何路径下直接调用clash
命令。bash
sudo mv clash /usr/local/bin/ -
验证安装:
bash
clash -v如果看到类似
Clash vX.Y.Z ...
的版本信息输出,说明 Clash 核心程序已成功安装。
第三章:配置 Clash
Clash 的所有行为都由一个名为 config.yaml
的配置文件控制。您需要获取这个文件,并将其放置在 Clash 默认的配置目录中。
3.1 获取配置文件
-
方法一:使用订阅链接(推荐)
如果您的服务提供商提供了 Clash 订阅链接,这是最便捷的方式。Clash 自身并不直接支持下载订阅链接并转换为
config.yaml
,通常需要借助其他工具或服务,或者使用支持订阅的 Clash GUI。但我们可以先手动下载一次。- 访问订阅链接转换服务(可选,但不推荐长期手动): 有些在线服务可以将订阅链接转换为
config.yaml
文件。请注意隐私风险。 - 使用支持订阅的工具/脚本: 例如
subconverter
等工具可以在本地或服务器上运行,将订阅链接转换为 Clash 配置。 -
手动下载(首次设置): 您可以在浏览器中直接打开订阅链接(有些服务商允许),或者使用
curl
或wget
下载。下载下来的内容通常就是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
的配置文件。
-
创建配置目录:
bash
mkdir -p ~/.config/clash -
将配置文件移动到该目录:
假设您已经通过上述方法获取了
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
。
-
下载 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.yaml
*请确认您的中
geoip-database指向的文件名与下载的文件名一致,如果不一致,需要修改
config.yaml` 或重命名下载的文件。* -
下载 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.yaml
*同样,请确认您的中
geosite-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
... (其他日志信息) ... -
如果出现
ERRO
或FATA
级别的错误,说明配置文件有问题,请根据错误提示检查~/.config/clash/config.yaml
文件。常见的错误包括 YAML 格式错误(缩进、冒号后空格等)、关键字拼写错误、文件路径错误等。可以使用在线 YAML 验证器检查格式。 -
按
Ctrl + C
可以停止在前台运行的 Clash。
4.2 设置系统代理
Clash 启动后只是监听了端口,还需要让系统或其他应用程序知道要使用这个代理。
-
方法一:通过 Ubuntu 图形界面设置 (适用于 Desktop)
- 打开 “设置” (Settings)。
- 导航到 “网络” (Network) 或 “网络代理” (Network Proxy)。
- 选择 “手动” (Manual) 代理配置。
- 在 “HTTP 代理” (HTTP Proxy) 和 “HTTPS 代理” (HTTPS Proxy) 字段中,填入
127.0.0.1
作为地址,填入 Clash 配置中port
指定的端口(默认为7890
)。 - 在 “SOCKS 主机” (SOCKS Host) 或 “SOCKS5 代理” 字段中,填入
127.0.0.1
作为地址,填入 Clash 配置中socks-port
指定的端口(默认为7891
)。 - (可选) 在 “忽略主机” (Ignore Hosts) 或 “不使用代理的地址” 中添加
localhost, 127.0.0.1
等,确保本地服务不受影响。 - 应用设置。
现在,支持系统代理设置的应用程序(如 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 验证代理是否生效
- 启动 Clash: 确保 Clash 正在运行(可以使用
clash -d ~/.config/clash
在前台运行,或稍后介绍的后台运行方式)。 - 设置好系统代理。
- 在设置了代理的终端或浏览器中访问测试网站:
- 检查 IP 地址:
bash
curl ipinfo.io
# 或者在浏览器访问 https://www.ipip.net/ 或 https://ip.sb
查看返回的 IP 地址是否是您的代理服务器的 IP 地址。 - 访问被限制的网站: 尝试访问一个通常无法直接访问的网站(如 Google, YouTube 等),看是否能成功打开。
- 检查 DNS 泄露: 访问 https://www.dnsleaktest.com/ 进行测试,理想情况下应该只看到代理服务器相关的 DNS 或您信任的 DNS 服务器。
- 检查 IP 地址:
第五章:使用 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。
访问方法:
-
使用 Clash 内置或本地部署的 Dashboard:
- 如果您的
config.yaml
中配置了external-ui
指向一个本地目录(例如,您下载了 Yacd 的文件并放到了~/.config/clash/dashboard
),并且 Clash 正在运行,可以直接在浏览器中访问http://127.0.0.1:9090
或http://127.0.0.1:9090/ui
(具体路径取决于external-ui
设置或 Clash 版本)。 - 如果您没有配置
external-ui
,或者想要使用在线的 Dashboard:- 访问在线 Yacd 面板:http://yacd.metacubex.one/ (这是一个公开托管的实例,方便使用)
- 或者其他在线 Dashboard 地址。
- 如果您的
-
在 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 作为系统服务来管理,实现开机自启、后台稳定运行、方便启停。
-
创建 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_USERNAME
和YOUR_GROUPNAME
替换为您实际运行 Clash 的普通用户的用户名和组名。不要使用 root 用户运行 Clash!
*ExecStart
中的路径/home/YOUR_USERNAME/.config/clash
必须是绝对路径,同样需要替换YOUR_USERNAME
。
* 确保/usr/local/bin/clash
是您安装 Clash 的正确路径。
*After=
确保网络准备好之后再启动 Clash。
*Restart=on-failure
会在 Clash 异常退出时自动尝试重启。 -
重载 Systemd 配置:
bash
sudo systemctl daemon-reload -
启动 Clash 服务:
bash
sudo systemctl start clash -
设置开机自启 (可选):
bash
sudo systemctl enable clash -
管理 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 配置/订阅
-
手动更新:
- 下载新的
config.yaml
文件 (如果服务商提供) 或使用wget
/curl
重新下载订阅链接覆盖~/.config/clash/config.yaml
。 - 重启 Clash 服务:
sudo systemctl restart clash
- 下载新的
-
通过 Dashboard 更新 (推荐,如果配置支持):
- 确保您的
config.yaml
文件是由支持在线更新的订阅链接生成的(通常包含proxy-providers
或特定头部信息)。 - 在 Dashboard 的 “配置 (Settings)” 或 “配置 (Profiles)” 部分,通常会有 “更新 (Update)” 或 “立即更新 (Update Now)” 按钮。点击即可触发 Clash 从原始订阅链接拉取最新配置。更新后 Clash 会自动应用新配置,无需重启服务。
- 确保您的
-
使用脚本自动更新:
可以编写 Shell 脚本,定期使用wget
或curl
下载订阅链接,然后通过 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 模式通常涉及:
- 使用支持 TUN 的 Clash 内核。
- 在
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 # 自动检测出口网卡 - 配置 DNS: 确保 Clash 的 DNS 设置 (
dns
字段) 工作正常,因为 TUN 模式下所有 DNS 请求也会被接管。 - 权限设置: 可能需要以 root 启动 Clash,或为 Clash 可执行文件设置
CAP_NET_ADMIN
权限 (sudo setcap cap_net_admin+ep /usr/local/bin/clash
),并确保运行用户有权操作 TUN 设备。 - 路由和防火墙规则: 可能需要手动调整路由表或防火墙规则,确保流量正确进入 TUN 设备并能正常流出。
TUN 模式是高级功能,建议在充分理解其原理和风险后再尝试配置。对于大多数用户,标准的 HTTP/SOCKS 代理模式配合系统代理设置已经足够。
6.4 自定义规则
Clash 的强大之处在于其规则系统。您可以编辑 ~/.config/clash/config.yaml
文件中的 rules:
部分,添加、修改或删除规则,以满足个性化的分流需求。例如:
- 指定某网站走特定代理:
DOMAIN-SUFFIX,example.com,ProxyA
- 屏蔽广告域名:
DOMAIN-KEYWORD,adservice,REJECT
- 国内网站直连:
GEOIP,CN,DIRECT
或GEOSITE,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:7890
或127.0.0.1:7891
)。 - 在 Dashboard 中检查节点是否可用(可以尝试切换节点或更新订阅)。
- 检查防火墙 (
ufw
或iptables
) 是否阻止了连接。如果allow-lan: true
,需要允许局域网 IP 访问 Clash 端口。 - 检查服务提供商的节点是否有效,账户是否过期。
- 确认 Clash 服务正在运行 (
- 速度慢:
- 尝试切换到延迟较低、负载较轻的节点。
- 检查本地网络状况。
- 可能是服务提供商线路问题。
- 检查规则是否导致不必要的绕行。
- 部分网站无法访问:
- 检查 Clash 日志,看是否有相关错误。
- 检查规则是否错误地将该网站 REJECT 或走了错误的代理/直连。尝试切换到全局模式看是否能访问。
- 可能是 DNS 解析问题,检查 Clash 的 DNS 配置,或尝试在系统层面更换 DNS。
- Dashboard 无法访问:
- 确认 Clash 服务运行中。
- 确认
config.yaml
中external-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 服务。使用普通用户运行,并通过
systemd
的User
和Group
指令指定。 - 谨慎使用来路不明的规则片段或脚本。
结语
通过本教程,您应该已经掌握了在 Ubuntu 系统上安装、配置、运行和管理 Clash 的基本流程和进阶技巧。从基础的代理设置,到使用 Dashboard 进行可视化管理,再到通过 Systemd 实现服务的稳定运行,以及对 TUN 模式、自定义规则等高级功能的了解,希望这些内容能帮助您更好地利用 Clash 这款强大的工具。
Clash 的生态仍在不断发展,配置选项和玩法也非常丰富。建议您在熟悉基本操作后,多查阅 Clash 官方文档 (https://github.com/Dreamacro/clash/wiki)、您使用的 Dashboard 的文档,以及相关社区(如 V2EX、GitHub Issues 等)的讨论,不断探索和优化您的 Clash 使用体验。祝您上网愉快!