# Linux 一键安装 Clash ![GitHub License](https://img.shields.io/github/license/nelvko/clash-for-linux-install) ![GitHub top language](https://img.shields.io/github/languages/top/nelvko/clash-for-linux-install) image-20260120164005163 - 安装最新稳定版 `mihomo` 内核。 - Web 控制台支持 [metacubexd](https://github.com/MetaCubeX/metacubexd) 和 [zashboard](https://github.com/Zephyruso/zashboard)。 - 支持使用 [subconverter](https://github.com/tindy2013/subconverter) 进行本地订阅转换。 - 多架构支持,适配主流 `Linux` 发行版。 ## 说明 本项目来自[clash-for-linux-install](https://github.com/nelvko/clash-for-linux-install),根据个人需要重新进行了修改,修改地方如下: 1. Web 控制台支持在安装时选择 metacubexd 或 zashboard,安装后也可随时切换。 2. 修复了上游项目兼顾 普通用户 与 `sudo`用户 而造成的命令混乱。 3. mixin.yaml中添加了更为详细的DNS覆写规则和tun规则,支持ipv6,开箱即用。 4. 由我最喜欢的一版代码修改而来,clashstatus命令可以方便查看运行状态。 ![image-20260119215237942](./Picture/README/image-20260119215237942.png) 5. 2026.1.20修改:适配linux主流桌面环境,为桌面环境添加系统代理,通过`clashon`、`clashoff`一键控制桌面环境、终端环境代理 ## 快速开始 ### 环境要求 - 用户权限:`root` 或 `sudo` 用户。 - `shell` 支持:`bash`、`zsh`、`fish`。 ### 一键安装 下述命令适用于 `x86_64` 架构 ```bash git clone --branch master --depth 1 https://github.com/Hit-Mickey/clash-for-linux.git clash \ && cd clash \ && sudo bash install.sh ``` ### 安装资源 安装开始时会提示选择 GitHub 下载方式: - 输入 `1`:所有 GitHub API 和资源下载均使用官方链接。 - 输入 `2` 或直接回车:使用默认加速地址 `https://gh-proxy.org`。 - 输入 `3`:自定义一个或多个加速地址,多个地址使用分号(`;`)或空格隔开;下载时严格按照填写顺序逐个尝试,不再尝试官方链接。 - 加速配置保存在 `/opt/clash/github-proxy`,安装后可通过 `ghproxy` 查看、通过 `ghproxy -e` 编辑。 安装时还会提示选择 Web 控制面板:输入 `1` 或直接回车选择 metacubexd,输入 `2` 选择 zashboard。安装完成后,`mixin.yaml` 和 `runtime.yaml` 中的 `external-ui` 会明确写入当前面板名称。 每次安装都会下载最新版 `mihomo`、`yq`、`subconverter`、所选面板和 `Country.mmdb`(即 country.mmdb)。所有配置的下载地址均失败或文件校验失败时,才使用 `resources` 中随仓库提供的对应官方稳定版离线资源。安装后的 Mihomo 与面板均只提供稳定版升级:通过 `clashupgrade` 更新 Mihomo,通过 `clashui upgrade` 更新当前面板。 安装完后请通过`clashui`和`clashsecret`查看端口和初始密码 > 如遇问题,请在查阅[常见问题](https://github.com/nelvko/clash-for-linux-install/wiki/FAQ)及 [issue](https://github.com/nelvko/clash-for-linux-install/issues?q=is%3Aissue) 未果后进行反馈。 - 上述克隆命令使用 GitHub 官方地址;安装脚本内的资源下载方式由安装前输入的 GitHub 加速配置决定。 - 默认通过远程订阅获取配置进行安装,本地配置安装详见:在`resources`目录中新建`config.yaml`,将配置粘贴进去再执行安装脚本。 - 没有订阅?[click me](https://wd-gold.net/aff.php?aff=12861)。 ### 自定义安装 可以根据需要提前修改 `mixin.yaml` 中的配置,**其中留空的变量名不要随意删除**,也可以在安装完成后修改。安装程序会根据选择明确设置 `external-ui`。 ### 命令一览 执行 `clashctl` 列出开箱即用的快捷命令。 ```bash $ clashctl Usage: clashctl COMMAND [OPTION] Commands: on 开启代理 off 关闭代理 restart 重启 Mihomo 服务 ui [upgrade|change] 面板地址/更新/切换面板 ghproxy [-e] 查看/编辑 GitHub 加速地址 status 内核状况 proxy [on|off|status] 系统代理 tun [on|off] Tun 模式 mixin [-e|-r] Mixin 配置 secret [SECRET] Web 密钥 update [URL|auto|log] 更新订阅 upgrade 更新 Mihomo 稳定版内核 ``` 每个子命令也有对应的独立快捷命令: | `clashctl` 用法 | 快捷命令 | 作用 | | --- | --- | --- | | `clashctl on` | `clashon` | 启动 Mihomo 并设置终端/桌面代理 | | `clashctl off` | `clashoff` | 停止 Mihomo 并清除当前代理环境 | | `clashctl restart` | `clashrestart` | 重启 Mihomo 服务 | | `clashctl status` | `clashstatus` | 查看 systemd 服务状态和日志 | | `clashctl proxy on\|off\|status` | `clashproxy on\|off\|status` | 单独管理系统代理 | | `clashctl ui [upgrade\|change]` | `clashui [upgrade\|change]` | 查看、升级或切换 Web 面板 | | `clashctl secret [密码]` | `clashsecret [密码]` | 查看或修改 Web 密钥 | | `clashctl update [URL\|auto\|log]` | `clashupdate [URL\|auto\|log]` | 更新订阅、设置自动更新或查看日志 | | `clashctl mixin [-e\|-r]` | `clashmixin [-e\|-r]` | 查看/编辑 Mixin 或查看运行配置 | | `clashctl tun [on\|off]` | `clashtun [on\|off]` | 查看或切换 TUN 模式 | | `clashctl upgrade` | `clashupgrade` | 升级 Mihomo 最新稳定版 | | `clashctl ghproxy [-e]` | `ghproxy [-e]` | 查看或编辑 GitHub 加速地址 | 快捷命令适合日常使用,`clashctl` 形式便于统一记忆,两者效果相同。 ### 优雅启停(终端环境+桌面环境) ```bash $ clashon 🖥️ 检测到桌面环境,正在设置系统 GUI 代理... 😼 已开启代理环境 ``` ![image-20260120164630043](./Picture/README/image-20260120164630043.png) ```bash $ clashoff 😼 已关闭代理环境 ``` ![image-20260120165007264](./Picture/README/image-20260120165007264.png) - 启停代理内核的同时,设置系统代理。 - 亦可通过 `clashproxy` 单独控制系统代理。 服务管理常用命令: ```bash clashstatus # 查看 Mihomo systemd 状态 clashrestart # 重启 Mihomo clashproxy status # 查看系统代理状态 clashproxy on # 只开启系统代理,不改变服务状态 clashproxy off # 只关闭系统代理,不停止 Mihomo ``` ### Web 控制台 ```bash $ clashui ╔═══════════════════════════════════════════════╗ ║ 😼 Web 控制台 ║ ║═══════════════════════════════════════════════║ ║ ║ ║ 🔓 注意放行端口:9090 ║ ║ 🏠 内网:http://192.168.0.1:9090/ui ║ ║ 🌏 公网:http://255.255.255.255:9090/ui ║ ║ ☁️ 公共:http://board.zash.run.place ║ ║ ║ ╚═══════════════════════════════════════════════╝ $ clashsecret 666 😼 密钥更新成功,已重启生效 $ clashsecret 😼 当前密钥:666 $ clashui upgrade ✅ metacubexd 已准备为稳定版 v1.270.6 $ clashui change 当前 Web 控制面板:metacubexd 当前支持的面板: 1. metacubexd 2. zashboard 请选择面板 [1/2]: ``` - 通过浏览器打开 Web 控制台,实现可视化操作:切换节点、查看日志等。 - `clashui upgrade` 会识别当前选择的面板并检测版本,仅在存在更新时下载对应面板的最新稳定版。 - `clashui change` 会显示当前面板并直接要求选择。选择相同面板时执行版本检测和升级,选择不同面板时下载并切换,同时更新 `external-ui` 并重启 Mihomo。 - 面板切换或更新后请强制刷新浏览器缓存。 - 若暴露到公网使用建议定期更换密钥。 ### GitHub 加速配置 ```bash $ ghproxy 😼 GitHub 加速地址(按顺序尝试): https://gh-proxy.org $ ghproxy -e ``` - 配置文件每行填写一个 GitHub 加速地址;也支持使用分号或空格分隔;空文件表示只使用 GitHub 官方链接。 - 配置多个地址后,下载和更新会依次尝试这些地址,不再回退到官方链接。 - `ghproxy -e` 固定使用 `vim` 编辑 `/opt/clash/github-proxy`,保存后立即生效,适用于 `clashupgrade` 和 `clashui upgrade` 等后续下载。 - 编辑时每行写一个地址;清空文件并保存即可改为只使用 GitHub 官方链接。 ### 更新订阅 ```bash $ clashupdate https://example.com 👌 正在下载:原配置已备份... 🍃 下载成功:内核验证配置... 🍃 订阅更新成功 $ clashupdate auto [url] 😼 已设置定时更新订阅 $ clashupdate log ✅ [2025-02-23 22:45:23] 订阅更新成功:https://example.com ``` - `clashupdate` 会记住上次更新成功的订阅链接,后续执行无需再指定。 - `clashupdate URL` 立即使用新链接更新;`clashupdate` 不带参数时沿用上次成功的链接。 - `clashupdate auto [URL]` 创建每天0点执行一次的定时任务;不提供 URL 时使用当前保存的链接。 - `clashupdate log` 查看最近的订阅更新记录。 - 可通过 `crontab -e` 修改定时更新频率及订阅链接。 - 通过配置文件进行更新:[pr#24](https://github.com/nelvko/clash-for-linux-install/pull/24#issuecomment-2565054701) ### `Tun` 模式 ```bash $ clashtun 😾 Tun 状态:关闭 $ clashtun on 😼 Tun 模式已开启 ``` - 作用:实现本机及 `Docker` 等容器的所有流量路由到 `clash` 代理、DNS 劫持等。 - 原理:[clash-verge-rev](https://www.clashverge.dev/guide/term.html#tun)、 [clash.wiki](https://clash.wiki/premium/tun-device.html)。 - 注意事项:[#100](https://github.com/nelvko/clash-for-linux-install/issues/100#issuecomment-2782680205) ### `Mixin` 配置 ```bash $ clashmixin 😼 less 查看 mixin 配置 $ clashmixin -e 😼 vim 编辑 mixin 配置 $ clashmixin -r 😼 less 查看 运行时 配置 ``` - 持久化:将自定义配置项写入`Mixin`(`mixin.yaml`),而非原订阅配置(`config.yaml`),可避免更新订阅后丢失。 - 配置加载:代理内核启动时使用 `runtime.yaml`,它是订阅配置与 `Mixin` 配置的合并结果集,相同配置项以 `Mixin` 为准。 - 注意:因此直接修改 `config.yaml` 并不会生效。 `clashmixin` 默认通过 `less` 查看 `/opt/clash/mixin.yaml`;`clashmixin -e` 固定调用 `vim` 编辑。保存成功后会自动合并配置、验证并重启 Mihomo。`clashmixin -r` 只读查看最终生效的 `/opt/clash/runtime.yaml`。 ### Web 密钥 ```bash clashsecret # 查看当前密钥 clashsecret 123456 # 设置新密钥并重启 Mihomo ``` Web 控制台连接 Mihomo 时需要使用该密钥。修改成功后会自动更新运行配置并重启服务。 ### 升级 Mihomo ```bash clashupgrade ``` - 只读取官方 latest Release,即只暴露稳定版升级渠道。 - 会比较当前版本;已经是最新版时不会重复下载。 - 新内核会先验证可执行性并备份旧内核;重启失败时自动恢复。 - GitHub API 和内核下载遵循 `ghproxy` 中保存的地址顺序。 ### 卸载 ```bash sudo bash uninstall.sh ``` 卸载脚本会清除 Mihomo 服务、`/opt/clash`(包括 GitHub 加速配置)、安装时生成的 `resources/bin`、订阅定时任务、Shell/Fish 配置、桌面代理以及 Fish 代理环境临时文件(也会兼容清理旧版 `/var/proxy`)。仓库内自带的离线资源和用户预先放入 `resources/config.yaml` 的配置不会删除。 ## 常见问题 [wiki](https://github.com/nelvko/clash-for-linux-install/wiki/FAQ)