Release 下载clash-for-linux · GitHub Release 历史版本 · 三路反代镜像
最新正式版v1.0.1本区块同步 clash-for-linux 的官方 GitHub Release,并为最近版本生成 三路反代镜像加速下载通道。 默认展开最新正式版;如果项目只有预发布版,会在版本旁单独标注。下载按钮直接指向官方直链或镜像链接,便于复制真实 URL 做校验。
怎么挑:Windows 优先 .exe / .msi;macOS 优先 .dmg;Linux 选 .deb / .rpm / .AppImage;Android 选 .apk;带 .sig / .asc / .sha256 的是校验文件,不是安装包。
下载慢:从右侧三路反代列里挑一个能通的点开;复制按钮复制真实目标链接,方便放进下载器。
本页加速下载用到的 3 个 GitHub 反代镜像
| 反代 | 前缀 | 说明 |
|---|---|---|
ghproxy.net | https://ghproxy.net/ | 第三方反代 |
ghfast.top | https://ghfast.top/ | 第三方反代 |
mirror.ghproxy.com | https://mirror.ghproxy.com/ | 第三方反代 |
反代是独立第三方服务,状态和运营方都可能变化。HTTPS 只保护当前连接,不能单独证明文件与源站一致;下载后应计算 SHA256,并与发布者给出的哈希或签名比较。
GitHub 仓库简介:🐧 一个更完整、更优雅的 Linux Clash / Mihomo 代理运行平台 · 许可 MIT · ⭐ 5,706
要装 wnlen/clash-for-linux,默认从 v1.0.1 的 GitHub Release 取对应架构资产,不复制 README 里的加速短链。下载后先对 SHA-256,再列出压缩包内容。确认里面是 install.sh、uninstall.sh、scripts/、config/ 与 runtime/ 这套项目文件,才进入安装环节。
GitHub 上有多套同名或近似名称的 Linux 脚本。全文只对应 owner 为 wnlen 的仓库,不适用于 nelvko/clash-for-linux-install 等其他项目。
这不是一个单独的 Mihomo 二进制,而是 Linux 上的运行与控制平台。它会布置命令入口、运行目录和服务后端。项目采用 MIT 许可证;v1.0.1 发布于 2026-04-14,Release 列出 3 个资产。这里没有把安装、TUN 或 auto-redirect 写成已经跑通的结果,下列路径与命令来自该版本的官方 README 和脚本。
v1.0.1 的三个资产该选哪个?
先在目标 Linux 主机执行架构查询:
uname -m
Release 的选择关系很窄,不要拿“树莓派”“NAS”这类设备名猜架构。
uname -m 常见输出 | v1.0.1 资产 | 文件大小 | Release SHA-256 |
|---|---|---|---|
x86_64、amd64 | clash-linux-amd64.tar.gz | 36,074,622 bytes | ce5a67bebde694efd328fa7b0577e186250c0d3e9f8b54f1b121cb9ee02b3bc1 |
aarch64、arm64 | clash-linux-arm64.tar.gz | 34,016,402 bytes | 3e5d640d4c3e25ee39b18ac1f08be199ab5ae231a630af1392146740398b08ef |
armv7l | clash-linux-armv7.tar.gz | 34,528,358 bytes | 871cd3d6632539f110ccd9749379d396f779f7638c7fe1c371820afc6075bd4a |
如果输出是 i686、riscv64、mips 或别的值,这三份资产都没有给出匹配项。停在下载前,比拿错二进制后追 Exec format error 更省事。
把下载、哈希和压缩包检查拆开
下面这段只下载归档,不执行其中的 Shell 脚本。它按 CPU 输出选择文件,并把官方 SHA-256 写进变量:
machine="$(uname -m)"
case "$machine" in
x86_64|amd64)
asset="clash-linux-amd64.tar.gz"
expected_sha256="ce5a67bebde694efd328fa7b0577e186250c0d3e9f8b54f1b121cb9ee02b3bc1"
;;
aarch64|arm64)
asset="clash-linux-arm64.tar.gz"
expected_sha256="3e5d640d4c3e25ee39b18ac1f08be199ab5ae231a630af1392146740398b08ef"
;;
armv7l)
asset="clash-linux-armv7.tar.gz"
expected_sha256="871cd3d6632539f110ccd9749379d396f779f7638c7fe1c371820afc6075bd4a"
;;
*)
printf 'v1.0.1 没有匹配资产:%s\n' "$machine" >&2
exit 1
;;
esac
download_dir="$HOME/Downloads/clash-for-linux-v1.0.1"
download_path="$download_dir/$asset"
release_url="https://github.com/wnlen/clash-for-linux/releases/download/v1.0.1/$asset"
mkdir -p "$download_dir"
curl -fL --proto '=https' --tlsv1.2 "$release_url" -o "$download_path"
printf '%s %s\n' "$expected_sha256" "$download_path" | sha256sum -c -
tar -tzf "$download_path" | sed -n '1,60p'
校验通过时,sha256sum 应在文件名后输出 OK。tar -tzf 只查看目录,不落盘。列表里应看到 install.sh、uninstall.sh 和 scripts/core/;如果哈希不一致,删除本次下载文件,回到 Release 重新取,不要靠重复解压碰运气。
为什么不直接复制 README 的一键安装短链?
README 的快速安装示例使用第三方加速前缀,并克隆 master。这适合追随当前代码,却不等于安装固定的 v1.0.1。加速前缀还多了一层转发。你要解决的是“版本和内容能否复现”,不是少敲两行命令。
固定 Release 资产有两个好处:文件名与当前哈希能在发布页逐项核对,安装目标也能锁在 v1.0.1。GitHub Release 资产仍可被维护者替换;下次重装要重新查看发布页摘要,不能把本文记录的哈希当成永久值。后续运行 clashctl update 前,也要分清你想更新项目代码,还是只升级 Mihomo 内核。
Release 的 SHA-256 能判断下载内容是否与 GitHub 记录一致,但不能替代脚本审阅。这个项目的安装逻辑分散在
install.sh与scripts/下,只看顶层几十行还不够。
读完 install.sh 再安装
把归档解压进一个专用目录,避免将 runtime/ 与其他项目文件混在当前目录:
install_root="$HOME/.local/src/wnlen-clash-for-linux-v1.0.1"
mkdir -p "$install_root"
tar -xzf "$download_path" -C "$install_root" --no-same-owner
cd "$install_root"
先做 Bash 语法检查,再搜索下载、服务、系统环境和删除动作。install.sh 会继续加载 scripts/core/ 与 scripts/init/,所以搜索范围不能只放一个文件:
bash -n install.sh
bash -n uninstall.sh
grep -RInE '/usr/bin|/etc/environment|systemd|curl|wget|rm -rf' \
install.sh uninstall.sh scripts/
v1.0.1 的 .env 默认把 KERNEL_TYPE 设为 Mihomo,并列出混合端口、控制器地址与依赖版本。准备放到远程主机时,至少打开 .env 看这三项:
grep -nE '^(export )?(KERNEL_TYPE|MIXED_PORT|EXTERNAL_CONTROLLER)=' .env
确认安装账号、目标目录和控制器监听地址后,才执行官方入口:
bash install.sh
脚本会自动判断 system、user 或 script 运行后端。不要在普通用户安装失败后立刻改成 root 重跑;先保存终端输出并执行 clashctl doctor。两个账号各装一遍,会让命令入口、systemd user unit 与运行目录的归属更难判断。
clashctl 与四个快捷命令各管什么?
Release 说明把控制动作分给 clashctl 和几个快捷入口。安装后先认清职责,再添加自己的订阅。
| 命令 | 改动对象 | 怎么确认 |
|---|---|---|
clashctl add / clashctl use | 保存订阅,并切换 active 主订阅 | clashctl ls 查看当前选择 |
clashctl select | 交互选择策略组与节点 | 再开 clashui 看当前选项 |
clashon / clashoff | 启动或停止运行时与 Shell 代理接管 | clashctl status 看运行后端 |
clashui | 输出 Web 控制台地址 | 本机或 SSH 转发后打开地址 |
clashsecret | 查看或设置控制器密钥 | 更新后重新打开控制台认证 |
clashctl doctor | 汇总配置、运行时与 TUN 诊断 | 按失败项回到对应文件或权限层 |
一条最短的状态链可以这样跑:
clashctl -h
clashctl status
clashctl doctor
没有订阅时,先停在 add。有多份订阅时,用 use 确认 active 项,再运行 select。项目的配置生成链只处理当前 active 主订阅;把五个订阅都加进去,不表示五份内容会同时编译。
clashsecret 会把控制器密钥显示在终端。不要把这段输出连同公网地址一起贴进工单或截图。远程访问 clashui 时,优先用 SSH 端口转发,并把 EXTERNAL_CONTROLLER 的监听范围收紧到实际需要。
TUN 与 auto-redirect 什么时候再开?
v1.0.1 Release 把 TUN 体验与 auto-redirect 列为改动点。版本脚本的默认逻辑更具体:Linux host 环境配 Mihomo 时,auto-redirect 默认返回 true;容器或其他组合默认返回 false。这不是“所有 Linux 安装后都自动接管”的承诺。
先让普通系统代理模式工作,再查看 TUN 诊断:
clashon
clashctl status
clashctl tun doctor
只有诊断显示 /dev/net/tun、进程能力与路由条件满足,才进入开启动作:
clashctl tun on
clashctl tun doctor
clashctl logs
v1.0.1 的 README 命令一览写了 clashctl tun logs,但同标签的 clashctl.sh 命令分派并不接受这个子命令。需要日志时用顶层的 clashctl logs;TUN 专项证据仍看 clashctl tun doctor。
如果要显式覆盖默认值,在项目 .env 里写清楚,而不是直接改生成后的 runtime/config.yaml:
export KERNEL_TYPE="mihomo"
export CLASH_TUN_AUTO_REDIRECT="true"
改完再运行 TUN 开启动作,并用 clashctl tun doctor 查看 auto-route、auto-redirect、TUN adapter 与 policy routing 证据。失败时先 clashctl tun off 回到原模式;不要同时改 DNS、路由表、内核类型和订阅。
安装成功靠哪些证据判断?
终端出现“安装完成”只能说明脚本走到了末尾。运行后至少要把下面四层分开:
| 表现 | 更可能停在哪一层 | 先看什么 |
|---|---|---|
clashctl 找不到 | 命令入口没有写入,或当前 Shell 未刷新 | command -v clashctl 与安装输出 |
status 显示未运行 | systemd、systemd-user 或 script 后端启动失败 | clashctl doctor 的 runtime 项 |
| 进程存在但没有节点 | active 订阅未选中,或配置生成失败 | clashctl ls、clashctl use |
clashui 地址打不开 | 控制器监听、端口或密钥不一致 | .env 与 clashsecret |
| TUN 开启后异常 | 权限、设备映射或 policy routing 不完整 | clashctl tun doctor 与 clashctl logs |
系统侧只做交叉确认,不替代项目诊断:
command -v clashctl clashon clashoff clashui clashsecret
ps -ef | grep -E '[m]ihomo|[c]lash'
ss -lntp | grep -E ':(7890|9090)\b' || true
普通用户安装可能走 systemd-user 或 script 后端。看到 systemctl status 查不到 system unit,并不能直接判为失败;以 clashctl status 报出的实际后端为准,再去看对应日志。
卸载会删掉 runtime 吗?
动卸载前先停运行时,并备份项目的 .env、config/ 与 runtime/。备份命令放在项目根目录执行:
cd "$install_root"
clashoff || true
backup_path="$HOME/clash-for-linux-v1.0.1-$(date +%F-%H%M).tar.gz"
tar -czf "$backup_path" .env config runtime
tar -tzf "$backup_path" | sed -n '1,40p'
官方 v1.0.1 卸载脚本默认停止服务、移除运行入口、命令入口与 Shell 代理持久状态,但保留 runtime/:
bash uninstall.sh
bash uninstall.sh --purge-runtime 会删除运行目录,并清理控制器密钥。它不是普通卸载的同义写法。只有确认备份能列出订阅状态、运行配置与日志,而且确实不再需要这些数据时,才考虑这个参数。
卸载后运行 command -v clashctl 与进程查询。命令入口消失、Mihomo 进程停止,同时项目目录和备份仍可读,才算留住了回滚路径。
哪些 Linux 环境别照这套命令走?
这套下载命令只覆盖 v1.0.1 的 amd64、arm64、armv7 资产。没有对应资产的架构、禁止执行用户脚本的公司主机、已有网络接管服务的路由器,以及没有 /dev/net/tun 或缺少相关能力的容器,都不该直接照搬 TUN 部分。
OpenWrt、WSL、NAS 与不同 init 系统的权限模型也不一样。官方项目会在 systemd、systemd-user 和 script 后端之间选择,但这里没有替任何具体发行版跑安装。先完成下载哈希与脚本审阅;真正安装后,把 clashctl status、clashctl doctor 和目标机器的 uname -m 放在一起判断。
要单独理解 Mihomo 配置结构,可继续看 Mihomo 配置指南;TUN 开启后若遇到 systemd-resolved 路径问题,再看 Linux TUN 与 DNS 清理。