如何在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 客户端的更新。

  1. 添加 PPA 源:

    打开终端,执行以下命令添加 Clash 的 PPA 源:

    bash
    sudo add-apt-repository ppa:dreamacro/clash

    系统会提示你输入密码并按回车键确认。

  2. 更新软件包列表:

    bash
    sudo apt update

  3. 安装 Clash:

    bash
    sudo apt install clash

    安装完成后,Clash 的可执行文件会被安装到 /usr/bin/clash

2. 手动下载安装

如果你不想使用 PPA,或者 PPA 源不可用,也可以手动下载 Clash 的二进制文件进行安装。

  1. 下载 Clash:

    访问 Clash 的 GitHub Release 页面:https://github.com/Dreamacro/clash/releases

    找到最新版本的 clash-linux-amd64-(版本号).gz 文件(如果是 64 位系统)或 clash-linux-386-(版本号).gz 文件(如果是 32 位系统),下载到本地。

  2. 解压文件:

    在终端中进入下载目录,使用以下命令解压文件:

    bash
    gunzip clash-linux-amd64-*.gz # 或 gunzip clash-linux-386-*.gz

  3. 添加可执行权限:

    bash
    chmod +x clash-linux-amd64-* # 或 chmod +x clash-linux-386-*

  4. 移动文件(可选):

    你可以将解压后的 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. 编辑配置文件

  1. 创建配置文件:

    在你的用户目录下创建一个名为 .config/clash 的文件夹,然后在其中创建一个名为 config.yaml 的文件:

    bash
    mkdir -p ~/.config/clash
    nano ~/.config/clash/config.yaml

  2. 粘贴配置:

    将你的配置文件内容粘贴到 config.yaml 文件中。

  3. 修改配置:

    根据你的实际情况修改配置文件中的以下内容:

    • 代理服务器信息:proxies 部分的 serverportpassworduuid 等字段替换成你的代理服务器信息。
    • 端口: 如果需要,修改 portsocks-portredir-port 等字段。
    • 规则: 根据你的需求调整 rules 部分。
    • DNS: 根据你的需要,配置DNS
  4. 保存文件:

    在 Nano 编辑器中,按 Ctrl + O 保存文件,然后按 Ctrl + X 退出。

4. 启动 Clash

配置好 config.yaml 文件后,就可以启动 Clash 了。

  1. 启动 Clash:

    在终端中运行以下命令启动 Clash:

    bash
    clash -d ~/.config/clash

    -d 参数指定了 Clash 配置文件的目录。

  2. 设置系统代理:

    Clash 启动后,它会在本地创建 HTTP 和 SOCKS5 代理服务。你需要设置系统代理才能让应用程序通过 Clash 进行代理。

    • 手动设置:

      在 Ubuntu 的系统设置中,找到“网络”->“网络代理”,选择“手动”,然后在 HTTP 代理和 SOCKS 主机中填入 127.0.0.1,端口分别填入你在 config.yaml 中设置的 portsocks-port 的值。
      * 使用 GNOME 扩展(推荐):

      安装一个名为 “Proxy Switcher” 或类似的 GNOME 扩展,可以方便地切换系统代理。在扩展中添加 Clash 的代理配置,然后就可以一键切换到 Clash 代理。
      安装方式:
      sudo apt install gnome-shell-extensions gnome-shell-extension-manager
      然后通过extension-manager安装并配置Proxy Switcher

  3. 验证代理:

    打开浏览器,访问一个可以显示 IP 地址的网站(如 https://www.ipaddress.com/),检查显示的 IP 地址是否是你的代理服务器的 IP 地址。如果是,说明 Clash 已经成功运行并代理了你的网络流量。

  4. Clash 停止
    pkill clash

四、Clash 优化

为了获得更好的使用体验,你可以对 Clash 进行一些优化。

1. 使用 systemd 管理 Clash

为了让 Clash 在后台运行,并在系统启动时自动启动,我们可以使用 systemd 来管理 Clash。

  1. 创建 systemd 服务文件:

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

  2. 粘贴以下内容:

    ```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 崩溃时自动重启。
  3. 保存文件:

    Ctrl + O 保存文件,然后按 Ctrl + X 退出。

  4. 启用并启动 Clash 服务:

    bash
    sudo systemctl enable clash
    sudo systemctl start clash

  5. 查看 Clash 状态:

    bash
    sudo systemctl status clash

    如果显示 “active (running)”,说明 Clash 已经成功启动。

  6. Clash 服务其他命令

  7. 停止Clash服务
    sudo systemctl stop clash
  8. 重启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 的状态、切换节点、修改配置等。

  1. 安装 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 的静态文件。

  2. 配置 Clash:

    config.yaml 中添加以下配置:

    yaml
    external-controller: 127.0.0.1:9090
    secret: "your_secret" # 可选,设置访问密码

  3. 启动 Yacd:

    你可以使用任何 Web 服务器来托管 Yacd 的静态文件。例如,使用 Python 内置的 HTTP 服务器:

    bash
    cd yacd/dist
    python3 -m http.server 9091

    然后在浏览器中访问 http://127.0.0.1:9091 就可以打开 Yacd 面板。

五、常见问题解答

  1. Clash 启动失败:

    • 检查 config.yaml 文件是否存在语法错误。
    • 检查端口是否被占用。
    • 查看 Clash 的日志输出,通常可以找到错误原因。
  2. 无法访问特定网站:

    • 检查规则是否正确配置。
    • 尝试切换不同的代理节点。
    • 检查 DNS 解析是否正常。
  3. Clash 占用资源过高:

    • 尝试使用Clash.Meta内核。
    • 减少规则数量。
    • 优化 DNS 设置。
  4. 如何更新 Clash:

    • PPA 安装: 使用 sudo apt update && sudo apt upgrade 命令更新。
    • 手动安装: 下载最新版本的 Clash 二进制文件,替换旧版本的文件。

六、总结

Clash 是一款功能强大的网络代理工具,通过合理的配置和优化,可以帮助你实现自由、安全、高效的网络访问。本文详细介绍了在 Ubuntu 上安装、配置和优化 Clash 的方法,希望对你有所帮助。记住,Clash 的配置是一个不断尝试和调整的过程,你需要根据自己的实际需求进行调整,才能找到最适合你的配置方案。

THE END