如何在Ubuntu上使用Clash? (安装、配置、优化)
Ubuntu 上 Clash 的详尽使用指南:安装、配置与优化
Clash 是一款流行的开源网络代理工具,支持多种代理协议(如 Shadowsocks、Vmess、Trojan 等),并提供灵活的规则配置,可以帮助用户实现智能分流、广告拦截、网络加速等功能。本文将详细介绍在 Ubuntu 系统上如何安装、配置和优化 Clash,让你能够充分利用这款强大的工具。
一、Clash 简介
在深入了解如何使用 Clash 之前,我们先简单了解一下它的主要特点和优势:
- 多协议支持: Clash 支持 Shadowsocks、Vmess、Trojan、Snell、SOCKS5、HTTP 等多种代理协议,可以兼容各种主流的代理服务。
- 规则分流: Clash 强大的规则系统允许用户根据域名、IP 地址、GEOIP、连接类型等条件进行灵活的分流,实现国内外网站的自动切换、特定网站的代理等。
- 负载均衡和故障转移: Clash 支持多个代理服务器的配置,可以实现负载均衡(选择最优线路)和故障转移(当某个服务器不可用时自动切换到备用服务器)。
- DNS 解析优化: Clash 内置 DNS 服务器,可以自定义 DNS 解析规则,防止 DNS 污染,并提高解析速度。
- 规则提供者: Clash 支持从远程 URL 或本地文件订阅规则集,方便用户获取和更新规则。
- 跨平台: Clash 拥有多个平台的客户端,包括 Windows、macOS、Linux、Android、iOS 等,方便用户在不同设备上使用。
- 开源: Clash 是一个开源项目,代码公开透明,安全性和可靠性更有保障。
二、Clash 安装
在 Ubuntu 上安装 Clash 有多种方式,我们将介绍其中两种最常用的方法:
1. 通过 PPA 安装(推荐)
通过 PPA(Personal Package Archive,个人软件包存档)安装是推荐的方式,因为它可以自动处理依赖关系,并保持 Clash 客户端的更新。
-
添加 PPA 源:
打开终端,执行以下命令添加 Clash 的 PPA 源:
bash
sudo add-apt-repository ppa:dreamacro/clash系统会提示你输入密码并按回车键确认。
-
更新软件包列表:
bash
sudo apt update -
安装 Clash:
bash
sudo apt install clash安装完成后,Clash 的可执行文件会被安装到
/usr/bin/clash
。
2. 手动下载安装
如果你不想使用 PPA,或者 PPA 源不可用,也可以手动下载 Clash 的二进制文件进行安装。
-
下载 Clash:
访问 Clash 的 GitHub Release 页面:https://github.com/Dreamacro/clash/releases
找到最新版本的
clash-linux-amd64-(版本号).gz
文件(如果是 64 位系统)或clash-linux-386-(版本号).gz
文件(如果是 32 位系统),下载到本地。 -
解压文件:
在终端中进入下载目录,使用以下命令解压文件:
bash
gunzip clash-linux-amd64-*.gz # 或 gunzip clash-linux-386-*.gz -
添加可执行权限:
bash
chmod +x clash-linux-amd64-* # 或 chmod +x clash-linux-386-* -
移动文件(可选):
你可以将解压后的 Clash 可执行文件移动到
/usr/local/bin
目录,这样可以在任何位置直接运行 Clash:bash
sudo mv clash-linux-amd64-* /usr/local/bin/clash # 或 sudo mv clash-linux-386-* /usr/local/bin/clash
三、Clash 配置
Clash 的配置文件是一个 YAML 格式的文件,通常命名为 config.yaml
。这个文件包含了 Clash 的所有设置,包括代理服务器、规则、DNS 设置等。
1. 获取配置文件
你可以手动编写 config.yaml
文件,也可以从你的代理服务提供商那里获取一个现成的配置文件,或者使用在线的 Clash 配置文件生成器。
- 服务提供商: 大多数代理服务提供商都会提供一个 Clash 配置文件,你可以直接下载使用。
- 在线生成器: 一些网站提供 Clash 配置文件生成器,你可以根据自己的需求定制配置,然后下载生成的 YAML 文件。
2. 配置文件结构
一个典型的 Clash 配置文件包含以下几个主要部分:
```yaml
端口设置
port: 7890 # HTTP 代理端口
socks-port: 7891 # SOCKS5 代理端口
redir-port: 7892 # 透明代理端口 (Linux 和 macOS)
allow-lan: true # 是否允许局域网连接
模式设置
mode: Rule # 模式:Global(全局), Rule(规则), Direct(直连)
日志设置
log-level: info # 日志级别:silent, error, warning, info, debug
DNS 设置
dns:
enable: true
listen: 0.0.0.0:53
ipv6: false
enhanced-mode: fake-ip # 或 redir-host
nameserver:
- 114.114.114.114
- 8.8.8.8
fallback:
- https://dns.alidns.com/dns-query
- tls://dns.google
fallback-filter:
geoip: true
geoip-code: CN
ipcidr:
- 240.0.0.0/4
代理服务器
proxies:
- name: "节点1"
type: ss # 代理协议 (ss, vmess, trojan, etc.)
server: your_server_address
port: 443
cipher: chacha20-ietf-poly1305
password: your_password
- name: "节点2"
type: vmess
server: your_server_address
port: 443
uuid: your_uuid
alterId: 64
cipher: auto
代理组 (可选)
proxy-groups:
- name: "自动选择"
type: url-test
proxies:
- "节点1"
- "节点2"
url: 'http://www.gstatic.com/generate_204'
interval: 300
- name: "手动选择"
type: select
proxies:
- "节点1"
- "节点2"
- "自动选择"
规则
rules:
- DOMAIN-SUFFIX,google.com,自动选择
- DOMAIN-KEYWORD,youtube,自动选择
- GEOIP,CN,DIRECT
- MATCH,手动选择
```
- port, socks-port, redir-port: Clash 监听的端口。
- allow-lan: 是否允许来自局域网的连接。
- mode: Clash 的运行模式。
Rule
:根据规则进行分流。Global
:所有流量都通过代理。Direct
:所有流量都直接连接。
- log-level: 日志级别。
- dns: DNS 设置。
enable
:是否启用内置 DNS 服务器。listen
:DNS 服务器监听地址。enhanced-mode
:增强模式,fake-ip
适用于需要进行规则匹配的场景,redir-host
适用于不需要进行规则匹配的场景。nameserver
:首选 DNS 服务器。fallback
:备用 DNS 服务器,用于防止 DNS 污染。fallback-filter
: 备用DNS服务器的过滤器
- proxies: 代理服务器列表。你需要根据你的代理服务器信息填写相应字段。
- proxy-groups: 代理组,用于负载均衡、故障转移、手动选择等。
type: url-test
:自动选择延迟最低的节点。type: select
:手动选择节点。
- rules: 分流规则。
DOMAIN-SUFFIX
:匹配域名后缀。DOMAIN-KEYWORD
:匹配域名关键词。GEOIP
:根据 IP 地址的地理位置进行分流。MATCH
:匹配所有流量。
3. 编辑配置文件
-
创建配置文件:
在你的用户目录下创建一个名为
.config/clash
的文件夹,然后在其中创建一个名为config.yaml
的文件:bash
mkdir -p ~/.config/clash
nano ~/.config/clash/config.yaml -
粘贴配置:
将你的配置文件内容粘贴到
config.yaml
文件中。 -
修改配置:
根据你的实际情况修改配置文件中的以下内容:
- 代理服务器信息: 将
proxies
部分的server
、port
、password
、uuid
等字段替换成你的代理服务器信息。 - 端口: 如果需要,修改
port
、socks-port
、redir-port
等字段。 - 规则: 根据你的需求调整
rules
部分。 - DNS: 根据你的需要,配置DNS
- 代理服务器信息: 将
-
保存文件:
在 Nano 编辑器中,按
Ctrl + O
保存文件,然后按Ctrl + X
退出。
4. 启动 Clash
配置好 config.yaml
文件后,就可以启动 Clash 了。
-
启动 Clash:
在终端中运行以下命令启动 Clash:
bash
clash -d ~/.config/clash-d
参数指定了 Clash 配置文件的目录。 -
设置系统代理:
Clash 启动后,它会在本地创建 HTTP 和 SOCKS5 代理服务。你需要设置系统代理才能让应用程序通过 Clash 进行代理。
-
手动设置:
在 Ubuntu 的系统设置中,找到“网络”->“网络代理”,选择“手动”,然后在 HTTP 代理和 SOCKS 主机中填入
127.0.0.1
,端口分别填入你在config.yaml
中设置的port
和socks-port
的值。
* 使用 GNOME 扩展(推荐):安装一个名为 “Proxy Switcher” 或类似的 GNOME 扩展,可以方便地切换系统代理。在扩展中添加 Clash 的代理配置,然后就可以一键切换到 Clash 代理。
安装方式:
sudo apt install gnome-shell-extensions gnome-shell-extension-manager
然后通过extension-manager
安装并配置Proxy Switcher
-
-
验证代理:
打开浏览器,访问一个可以显示 IP 地址的网站(如 https://www.ipaddress.com/),检查显示的 IP 地址是否是你的代理服务器的 IP 地址。如果是,说明 Clash 已经成功运行并代理了你的网络流量。
-
Clash 停止
pkill clash
四、Clash 优化
为了获得更好的使用体验,你可以对 Clash 进行一些优化。
1. 使用 systemd 管理 Clash
为了让 Clash 在后台运行,并在系统启动时自动启动,我们可以使用 systemd 来管理 Clash。
-
创建 systemd 服务文件:
bash
sudo nano /etc/systemd/system/clash.service -
粘贴以下内容:
```ini
[Unit]
Description=Clash service
After=network.target[Service]
Type=simple
User=your_username # 将 your_username 替换成你的用户名
ExecStart=/usr/bin/clash -d /home/your_username/.config/clash # 确保路径正确
Restart=on-failure[Install]
WantedBy=multi-user.target
```- User: 指定运行 Clash 的用户,建议使用普通用户,不要使用 root 用户。
- ExecStart: 指定 Clash 的可执行文件路径和配置文件目录。确保路径正确。
- Restart: 设置为
on-failure
,表示 Clash 崩溃时自动重启。
-
保存文件:
按
Ctrl + O
保存文件,然后按Ctrl + X
退出。 -
启用并启动 Clash 服务:
bash
sudo systemctl enable clash
sudo systemctl start clash -
查看 Clash 状态:
bash
sudo systemctl status clash如果显示 “active (running)”,说明 Clash 已经成功启动。
-
Clash 服务其他命令
- 停止Clash服务
sudo systemctl stop clash
- 重启Clash服务
sudo systemctl restart clash
2. 使用 Clash.Meta 内核 (可选)
Clash.Meta 是 Clash 的一个分支,它在原版的基础上进行了一些改进和优化,例如:
- 支持更多协议,如 TUIC, Hysteria。
- 更强的性能
- 更丰富的功能
如果你需要这些额外的功能,可以考虑使用 Clash.Meta。安装方法与原版 Clash 类似,只需下载 Clash.Meta 的二进制文件并替换原版的即可。 配置文件也基本兼容。 下载地址: https://github.com/MetaCubeX/Clash.Meta/releases
3. 规则优化
Clash 的规则是实现智能分流的关键。你可以根据自己的需求定制规则,以达到最佳的代理效果。
- 使用规则提供者: 很多网站和社区提供了 Clash 的规则订阅,你可以直接订阅这些规则,省去手动编写规则的麻烦。
- 自定义规则: 如果你需要更精细的控制,可以手动编写规则。Clash 的规则语法比较灵活,可以实现各种复杂的匹配条件。
- 定期更新规则: 规则可能会随着时间的推移而过时,建议定期更新你的规则,以确保代理的有效性。
4. DNS 优化
Clash 的内置 DNS 服务器可以有效防止 DNS 污染,并提高解析速度。
- 选择可靠的 DNS 服务器: 在
config.yaml
中配置可靠的 DNS 服务器,如 Google Public DNS、Cloudflare DNS、AliDNS 等。 - 使用 fallback DNS: 配置 fallback DNS 可以防止主 DNS 服务器不可用时无法解析域名。
- 开启 DNS 缓存: Clash 默认开启 DNS 缓存,可以加快解析速度。
5. 使用外部控制面板
Clash 本身没有图形界面,但你可以使用一些第三方的控制面板来管理 Clash,如 Yacd、Clash Dashboard 等。这些面板提供了更友好的界面,可以方便地查看 Clash 的状态、切换节点、修改配置等。
-
安装 Yacd:
Yacd 是一个流行的 Clash 控制面板,你可以通过以下方式安装:
bash
git clone https://github.com/haishanh/yacd.git
cd yacd
npm install # 可能需要先安装 Node.js 和 npm
npm run build构建完成后,在
yacd/dist
目录下会生成 Yacd 的静态文件。 -
配置 Clash:
在
config.yaml
中添加以下配置:yaml
external-controller: 127.0.0.1:9090
secret: "your_secret" # 可选,设置访问密码 -
启动 Yacd:
你可以使用任何 Web 服务器来托管 Yacd 的静态文件。例如,使用 Python 内置的 HTTP 服务器:
bash
cd yacd/dist
python3 -m http.server 9091然后在浏览器中访问
http://127.0.0.1:9091
就可以打开 Yacd 面板。
五、常见问题解答
-
Clash 启动失败:
- 检查
config.yaml
文件是否存在语法错误。 - 检查端口是否被占用。
- 查看 Clash 的日志输出,通常可以找到错误原因。
- 检查
-
无法访问特定网站:
- 检查规则是否正确配置。
- 尝试切换不同的代理节点。
- 检查 DNS 解析是否正常。
-
Clash 占用资源过高:
- 尝试使用Clash.Meta内核。
- 减少规则数量。
- 优化 DNS 设置。
-
如何更新 Clash:
- PPA 安装: 使用
sudo apt update && sudo apt upgrade
命令更新。 - 手动安装: 下载最新版本的 Clash 二进制文件,替换旧版本的文件。
- PPA 安装: 使用
六、总结
Clash 是一款功能强大的网络代理工具,通过合理的配置和优化,可以帮助你实现自由、安全、高效的网络访问。本文详细介绍了在 Ubuntu 上安装、配置和优化 Clash 的方法,希望对你有所帮助。记住,Clash 的配置是一个不断尝试和调整的过程,你需要根据自己的实际需求进行调整,才能找到最适合你的配置方案。