Clash for Linux 使用指南

项目介绍

基于开源工具 Clash,并结合脚本实现简易的代理功能,旨在解决服务器上下载 GitHub 等国外资源速度慢的问题。

使用须知

  • 权限要求:建议使用 root 用户运行,或者使用 sudo 提权。
  • 问题排查:遇到问题请优先查阅已有的 Issues,提交 Issues 时请删除敏感信息(如订阅地址)。
  • 项目依赖:本项目整合 Clash 和 yacd,具体配置请参考原项目文档。
  • 订阅信息:本项目不提供订阅信息,用户需自行准备 Clash 订阅地址。
  • 环境支持:已在 RHEL 系列和 Debian 系列 Linux 系统测试,其他系统可能需要适当调整。
  • 支持平台:x86_64 / aarch64

注意: 使用本项目时,如遇到无法独自解决的问题,请先查阅 Issues。由于空闲时间有限,已解答或已有解决方案的问题将不再重复回复。

使用教程

下载项目

1
2
$ git clone https://github.com/wanhebin/clash-for-linux.git
$ cd clash-for-linux

配置环境变量

编辑 .env 文件,修改 CLASH_URL 变量值:

1
$ vim .env

注意CLASH_SECRET 可自定义 Clash Secret,若为空,脚本将自动生成随机字符串。

启动程序

1
$ sudo bash start.sh

运行日志示例:

1
2
3
4
5
6
7
8
9
10
11
正在检测订阅地址...
Clash 订阅地址可访问! [ OK ]

正在下载 Clash 配置文件...
配置文件 config.yaml 下载成功! [ OK ]

正在启动 Clash 服务...
服务启动成功! [ OK ]

Clash Dashboard 访问地址:http://<ip>:9090/ui
Secret:xxxxxxxxxxxxx

配置系统代理

1
2
$ source /etc/profile.d/clash.sh
$ proxy_on

检查服务状态

1
$ netstat -tln | grep -E '9090|789.'

若输出如下,则服务已正常启动:

1
2
3
4
tcp        0      0 127.0.0.1:9090          0.0.0.0:*               LISTEN     
tcp6 0 0 :::7890 :::* LISTEN
tcp6 0 0 :::7891 :::* LISTEN
tcp6 0 0 :::7892 :::* LISTEN

检查环境变量

1
$ env | grep -E 'http_proxy|https_proxy'

正常输出示例:

1
2
http_proxy=http://127.0.0.1:7890
https_proxy=http://127.0.0.1:7890

此时可以正常使用 Clash 代理下载 GitHub 资源。

重启程序

若需修改 Clash 配置,请编辑 conf/config.yaml,然后运行 restart.sh 重启服务。

1
$ sudo bash restart.sh

注意restart.sh 仅重启服务,不会更新订阅信息。

停止程序

1
2
$ sudo bash shutdown.sh
$ proxy_off

然后检查端口、进程和环境变量 http_proxy|https_proxy,若均已关闭,则服务成功停止。

Clash Dashboard

访问 Clash 管理界面

浏览器访问:

1
http://<ip>:9090/ui

API Base URL 一栏输入:

1
http://<ip>:9090

Secret(optional) 一栏输入 start.sh 启动时输出的 Secret。

点击 Add 并选择刚刚输入的管理界面地址,即可进行配置管理。

更多教程:Clash Dashboard 使用的是 yacd 项目,详细使用方法请查阅 yacd 官方文档。

常见问题

1. 运行脚本报错 -en [ OK ]

部分 Linux 系统的 /bin/sh 默认为 dash,建议使用 bash 运行脚本:

1
$ bash start.sh

2. UI 界面找不到代理节点

可能是订阅的 Clash 配置文件被 Base64 编码,且格式不符合 Clash 标准。

解决方案

  • 该项目已集成自动识别和转换 Clash 配置功能。
  • 若仍无法使用,建议自建订阅转换服务(不推荐使用第三方平台,以防信息泄露)。

3. error: unsupported rule type RULE-SET 报错

解决方案

  • 参考 Clash 官方 Wiki,检查 config.yaml 规则类型是否符合 Clash 标准。