在 Ubuntu 上使用 Clash:详细教程与优化技巧
Clash 是一款基于 Go 语言开发的多平台代理工具,支持 Surge 配置文件和规则,拥有强大的可定制性和灵活性。相比于传统的 VPN,Clash 允许用户更精细地控制流量走向,实现智能分流,从而优化网络体验。本教程将详细介绍如何在 Ubuntu 系统上安装、配置和优化 Clash,帮助你充分利用这款强大的工具。
一、Clash 的优势与适用场景
在深入了解安装和配置之前,我们先来了解一下 Clash 的优势以及适合使用 Clash 的场景:
-
灵活的规则引擎: Clash 拥有强大的规则引擎,可以根据域名、IP 地址、地理位置等多种规则,将流量智能分流到不同的代理服务器,实现精确控制。
-
多种代理协议支持: Clash 支持 Shadowsocks (SS)、ShadowsocksR (SSR)、VMess、Trojan、Snell 等多种代理协议,兼容性强。
-
低资源占用: Clash 使用 Go 语言编写,性能优秀,资源占用低,即使在低配置的设备上也能流畅运行。
-
跨平台支持: Clash 支持 Windows、macOS、Linux 等多种操作系统,方便用户在不同设备上使用。
-
易于配置: 虽然配置文件的内容可能有些复杂,但网络上有很多现成的配置文件可供使用,大大简化了配置过程。
适用场景:
- 科学上网: 这是 Clash 最常见的用途,通过代理服务器访问被屏蔽的网站和服务。
- 游戏加速: 通过选择延迟更低的代理服务器,可以优化游戏连接,降低延迟。
- 智能分流: 可以将国内流量直连,国外流量走代理,提高访问速度,节省流量费用。
- 隐私保护: 通过代理服务器隐藏真实 IP 地址,提高网络匿名性。
- 开发测试: 开发人员可以使用 Clash 模拟不同的网络环境,进行应用测试。
二、准备工作
在开始安装和配置 Clash 之前,需要做好以下准备:
- 购买或获取可用的代理服务器: 你需要拥有至少一个可用的代理服务器,可以是 Shadowsocks (SS)、ShadowsocksR (SSR)、VMess、Trojan 等协议。购买服务器后,你将获得服务器地址、端口、密码、加密方式等信息,这些信息将在后续配置中使用。
- 下载 Clash 的 Linux 版本: 访问 Clash 的 GitHub Releases 页面(https://github.com/Dreamacro/clash/releases)下载最新的 Linux 版本。选择
clash-linux-amd64-<version>.gz
(或对应的架构版本),其中<version>
是指版本号。例如,clash-linux-amd64-latest.gz
。 - 下载 Clash 的图形化界面 (可选): 为了方便管理和控制 Clash,建议下载一个图形化界面。常用的有:
- Clash for Windows (CFW): 虽然名字叫 Clash for Windows,但是可以在 Linux 上使用 wine 模拟运行。功能强大,界面美观。下载地址:https://github.com/Fndroid/clash_for_windows_pkg/releases
- Clash Web UI: 这是一个基于 Web 的控制面板,可以通过浏览器访问,进行配置和管理。例如:Yacd (Yet Another Clash Dashboard)。
- 了解基本的 Linux 命令: 熟悉常用的 Linux 命令,例如
cd
(切换目录)、mkdir
(创建目录)、tar
(解压文件)、chmod
(修改权限)、sudo
(以管理员身份运行) 等。
三、安装 Clash
-
解压 Clash: 使用以下命令解压下载的 Clash 压缩包:
bash
tar -zxvf clash-linux-amd64-<version>.gz将
<version>
替换为你下载的版本号。
2. 移动 Clash 可执行文件到 /usr/local/bin 目录: 这可以将 Clash 添加到系统 PATH 环境变量中,方便在任何地方执行。bash
sudo mv clash-linux-amd64-<version>/clash /usr/local/bin/clash同样,将
<version>
替换为你下载的版本号。
3. 赋予 Clash 可执行权限:bash
sudo chmod +x /usr/local/bin/clash
4. 创建 Clash 的配置目录: Clash 的配置文件和数据文件将保存在这个目录中。建议在用户家目录下创建一个.config/clash
目录。bash
mkdir -p ~/.config/clash
5. 下载 Country.mmdb (可选): Country.mmdb 文件用于 IP 地理位置查询,Clash 可以根据 IP 地址判断流量是否来自国内,从而实现更智能的分流。访问 MaxMind 官网 (https://www.maxmind.com/) 注册并下载免费的 GeoLite2 Country 数据库(MaxMind DB 二进制格式)。将下载的 Country.mmdb 文件复制到~/.config/clash
目录。你也可以使用其他来源的 Country.mmdb 文件。bash
mv /path/to/Country.mmdb ~/.config/clash/Country.mmdb
6. 测试 Clash (可选): 运行clash -v
命令来检查Clash是否安装成功。如果成功,会显示Clash的版本信息。
四、配置 Clash
-
获取 Clash 配置文件: Clash 的核心是配置文件,它定义了代理服务器、规则、端口等信息。你可以自己编写配置文件,也可以使用网络上现成的配置文件。网上有很多 Clash 配置文件分享平台,例如 GitHub 和一些论坛。
- 订阅链接: 许多机场会提供 Clash 订阅链接,你只需要将订阅链接添加到 Clash 配置文件中即可。
- 手动配置: 如果你购买了独立的代理服务器,需要手动配置代理服务器信息。
-
编辑 Clash 配置文件: 将获取到的配置文件保存为
config.yaml
文件,并将其移动到~/.config/clash
目录。bash
mv /path/to/config.yaml ~/.config/clash/config.yaml -
配置文件的结构: Clash 的配置文件采用 YAML 格式,主要包含以下几个部分:
-
port
和socks-port
: 分别定义 HTTP 代理端口和 SOCKS5 代理端口。 -
redir-port
(可选): 定义透明代理端口。 -
allow-lan
: 是否允许局域网连接。 -
mode
: 代理模式,可选值有Rule
(规则模式)、Global
(全局模式) 和Direct
(直连模式)。 -
log-level
: 日志级别,可选值有silent
(静默)、error
(错误)、warning
(警告)、info
(信息) 和debug
(调试)。 -
external-controller
: 外部控制器的地址,用于通过 Web UI 或其他工具控制 Clash。 -
proxies
: 代理服务器列表,每个代理服务器都需要配置名称、类型、服务器地址、端口、密码、加密方式等信息。 -
proxy-groups
: 代理组,可以将多个代理服务器组合成一个组,根据规则选择不同的代理服务器。常用的代理组类型有select
(手动选择)、url-test
(自动测试延迟) 和fallback
(自动切换)。 -
rules
: 规则列表,定义了流量分流策略。规则可以根据域名、IP 地址、地理位置等条件,将流量路由到不同的代理服务器或代理组。
一个简单的配置示例:
“`yaml
port: 7890
socks-port: 7891
redir-port: 7892
allow-lan: true
mode: Rule
log-level: info
external-controller: ‘127.0.0.1:9090’proxies:
– name: “Proxy 1”
type: ss
server: your_server_address
port: your_server_port
cipher: your_cipher
password: your_passwordproxy-groups:
– name: “Auto Select”
type: url-test
proxies:
– “Proxy 1”
url: ‘http://www.google.com’
interval: 300rules:
– DOMAIN-SUFFIX,google.com,Auto Select
– GEOIP,CN,DIRECT
– MATCH,Auto Select
“`修改配置示例:
- 将
your_server_address
,your_server_port
,your_cipher
,your_password
替换为你自己的代理服务器信息。 - 可以添加更多的代理服务器到
proxies
列表中。 - 可以根据自己的需求修改规则,例如添加更多的域名或 IP 地址。
-
-
启动 Clash:
bash
clash -d ~/.config/clash这会启动 Clash,并指定配置文件目录为
~/.config/clash
。
五、配置系统代理
启动 Clash 后,需要配置系统代理,才能使流量通过 Clash 代理。Ubuntu 系统提供了多种配置代理的方式:
-
命令行配置: 可以使用
export
命令设置http_proxy
、https_proxy
和all_proxy
环境变量。bash
export http_proxy="http://127.0.0.1:7890"
export https_proxy="http://127.0.0.1:7890"
export all_proxy="socks5://127.0.0.1:7891"这种方式只对当前终端有效,关闭终端后失效。
-
图形界面配置: 打开 “Settings” -> “Network” -> “Network Proxy”。选择 “Manual”,然后分别填写 HTTP 代理地址和端口,以及 HTTPS 代理地址和端口。 SOCKS 主机填写
127.0.0.1
和 SOCKS 端口7891
。 -
修改 .bashrc 文件: 可以将
export
命令添加到~/.bashrc
文件中,使代理设置永久生效。bash
echo "export http_proxy=\"http://127.0.0.1:7890\"" >> ~/.bashrc
echo "export https_proxy=\"http://127.0.0.1:7890\"" >> ~/.bashrc
echo "export all_proxy=\"socks5://127.0.0.1:7891\"" >> ~/.bashrc
source ~/.bashrc
六、使用图形化界面 (可选)
如果你选择了使用 Clash for Windows 或者 Clash Web UI,可以按照以下步骤进行配置:
-
Clash for Windows:
- 安装 Wine:
sudo apt install wine
- 下载 Clash for Windows 的安装包,然后使用 Wine 运行安装程序。
- 在 Clash for Windows 中导入 Clash 配置文件 (
config.yaml
)。 - 在 Clash for Windows 中选择代理模式和代理服务器。
- 配置系统代理 (Clash for Windows 可以自动配置系统代理)。
- 安装 Wine:
-
Clash Web UI (例如 Yacd):
- 确保 Clash 已经运行,并且
external-controller
已配置。 - 在浏览器中访问
http://127.0.0.1:9090
(如果你的external-controller
设置为127.0.0.1:9090
)。 - 在 Web UI 中导入 Clash 配置文件 (
config.yaml
)。 - 在 Web UI 中选择代理模式和代理服务器。
- 确保 Clash 已经运行,并且
七、优化技巧
- 规则优化: 定期更新规则,保持规则的准确性和有效性。可以使用一些开源的规则列表,例如 ACL4SSR。
- 代理服务器选择: 选择延迟低的代理服务器,提高访问速度。可以使用 Clash 的
url-test
代理组类型自动测试延迟。 - 分流策略优化: 根据自己的需求调整分流策略,例如将常用的网站或服务添加到代理规则中,将不常用的网站或服务设置为直连。
- 使用 DNS 污染解决方案: 使用 DoH (DNS over HTTPS) 或 DoT (DNS over TLS) 可以防止 DNS 污染,提高网络安全性和稳定性。Clash 配置文件中可以配置
dns
部分来使用 DoH 或 DoT。 - 定期更新 Clash: 及时更新 Clash 到最新版本,以获得更好的性能和安全性。
-
使用 systemd 管理 Clash: 可以使用 systemd 将 Clash 设置为系统服务,实现开机自启动和自动重启。创建一个名为
clash.service
的文件,内容如下:“`
[Unit]
Description=Clash Daemon
After=network.target[Service]
Type=simple
User=$USER
ExecStart=/usr/local/bin/clash -d /home/$USER/.config/clash
Restart=on-failure
RestartSec=5[Install]
WantedBy=multi-user.target
“`将
$USER
替换为你的用户名。然后将clash.service
文件复制到/etc/systemd/system
目录。bash
sudo cp clash.service /etc/systemd/system
sudo systemctl daemon-reload
sudo systemctl enable clash
sudo systemctl start clash可以使用
sudo systemctl status clash
命令查看 Clash 的运行状态。
八、常见问题与解决方案
- 无法连接代理服务器: 检查代理服务器地址、端口、密码、加密方式等信息是否正确。
- 无法访问某些网站: 检查规则是否正确,是否将网站添加到代理规则中。
- Clash 占用 CPU 过高: 尝试降低日志级别,减少规则数量,或升级 Clash 到最新版本。
- DNS 污染: 使用 DoH 或 DoT 解决 DNS 污染问题。
- Clash 无法启动: 检查配置文件是否正确,是否存在语法错误。可以使用
clash -t -d ~/.config/clash
命令检查配置文件。
九、总结
本教程详细介绍了如何在 Ubuntu 系统上安装、配置和优化 Clash。通过灵活的规则引擎和强大的功能,Clash 可以帮助你更好地管理网络流量,优化网络体验。希望本教程能够帮助你成功使用 Clash,享受更自由、更流畅的网络世界。记住,持续学习和实践是掌握 Clash 的关键。不断探索 Clash 的各种功能和配置选项,你会发现更多惊喜。