[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-71838":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":18,"stars30d":19,"stars90d":16,"forks30d":16,"starsTrendScore":20,"compositeScore":21,"rankGlobal":10,"rankLanguage":10,"license":22,"archived":23,"fork":23,"defaultBranch":24,"hasWiki":23,"hasPages":23,"topics":25,"createdAt":10,"pushedAt":10,"updatedAt":34,"readmeContent":35,"aiSummary":36,"trendingCount":16,"starSnapshotCount":16,"syncStatus":37,"lastSyncTime":38,"discoverSource":39},71838,"clash-for-linux","wnlen\u002Fclash-for-linux","wnlen","🐧 一个更完整、更优雅的 Linux Clash \u002F Mihomo 代理运行平台","",null,"Shell",5375,1184,14,17,0,46,104,318,138,40.22,"MIT License",false,"master",[26,27,28,29,30,31,32,33],"clash-meta","devops-tools","linux","mihomo","openclaw","proxy","shell-script","vpn","2026-06-12 02:02:55","\u003Ch1 align=\"center\">\n  🐧 Clash for Linux\u003C\u002Fa>\n  \u003Cbr>\n\u003C\u002Fh1>\n\n\u003Cp align=\"center\">\n  💬 社区交流：\u003Ca href=\"https:\u002F\u002Ft.me\u002F+NsYaX9kzqERlNzZl\">Telegram 群\u003C\u002Fa>\n\u003C\u002Fp>\n\n\u003Ch3 align=\"center\">\n一个更完整、更优雅的 Linux Clash \u002F \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FMetaCubeX\u002Fmihomo\">Mihomo\u003C\u002Fa> 运行平台。\n\u003C\u002Fh3>\n\u003Cp align=\"center\">\n  \u003Cimg src=\"resources\u002Fshell.png\" width=\"100%\">\n\u003C\u002Fp>\n\n\n\n# ✨ 核心特性\n\n- 🚀 **自动识别系统架构**：自动下载并使用对应 Clash 内核\n- 🧪 **端口自动检测与分配**：避免冲突\n- 🔄 **多订阅管理**：可以保存多个订阅，通过 `clashctl use` 切换当前主订阅。\n- 💫 **节点选择**：使用编号交互选择策略组和节点。\n- 🌐 **Tun 模式**：用于透明代理接管场景。\n- 🧠 **Mixin 机制**：可按需追加\u002F覆盖 Clash 配置\n- 👤 **不同权限**：兼容 `root` 与普通用户环境。\n- 🔐 **安全默认配置**：自动生成或自定义 Secret\n- 🩺 **内置诊断工具（`doctor`）**：快速排障 \n\n### 适用场景\n\n- Linux 云服务器（VPS \u002F 远程开发环境）\n- 本地开发环境（Ubuntu \u002F Debian \u002F WSL）\n- 路由 \u002F 轻量系统（OpenWrt \u002F NAS \u002F 小主机 x86 \u002F ARM）\n- 需要稳定访问 GitHub、Go \u002F Node \u002F Docker 生态的开发者\n- 不希望手动维护 Clash 运行状态的用户\n\n# 🚀 一键安装（推荐）\n\n在终端中执行以下命令即可完成安装：\n\n```\ngit clone --branch master --depth 1 https:\u002F\u002Fghfast.top\u002Fhttps:\u002F\u002Fgithub.com\u002Fwnlen\u002Fclash-for-linux.git\ncd clash-for-linux\nbash install.sh\n```\n\n- 上述命令使用了[加速前缀](https:\u002F\u002Fgh-proxy.org\u002F)，如失效可更换其他[可用链接](https:\u002F\u002Fghproxy.link\u002F)。\n- 可通过 `.env` 文件或脚本参数自定义安装选项。\n- 在 WSL 环境中，不支持放在 Windows 挂载目录**\u002Fmnt\u002Fc\u002F**下，请安装到 Linux 原生目录。\n\n------\n\n## ⌨️ 命令一览\n\n```bash\n〽️ 常用命令\n  clashon              🚀 开启代理\n  clashoff             ⛔ 关闭代理\n  clashctl select      💫 选择节点\n🕹️  控制台\n  clashui              🕹️  查看 Web 控制台\n📦 订阅\n  clashctl add         ➕ 添加订阅\n  clashctl add local   ➕ 从 runtime\u002Fsubscriptions 导入本地订阅\n  clashctl use         💱 切换订阅\n  clashctl ls          📜 查看订阅列表\n🔐 密钥管理\n  clashctl secret      🔑 查看密钥\n  clashctl secret 123  🔐 设置密钥\n📌 高级\n  clashctl lan       🏠 局域网代理管理\n  clashctl tun       🧪 Tun 模式管理\n  clashctl boot      🚦 开机代理接管管理\n  clashctl mixin     🧩 Mixin 配置管理\n  clashctl relay     🔗 多跳节点管理\n  clashctl sub       🧩 订阅高级管理（启用 \u002F 禁用 \u002F 重命名 \u002F 删除）\n  clashctl upgrade   🚀 升级当前或指定内核\n  clashctl update    🔄 更新项目代码\n📜 日志\n  clashctl doctor    🩺 诊断面板\n  clashctl log\u002Flogs  📜 查看日志\n\n💡 显示更多帮助命令：clashctl -h\n```\n\n------\n\n## 🌐 Web 控制台\n\n```bash\n$ clashui\n╔═══════════════════════════════════════════════╗\n║                🐱 Web 控制台                  ║\n║═══════════════════════════════════════════════║\n║                                               ║\n║     🔓 注意放行端口：9090                      ║\n║     📶 状态：可访问                            ║\n║     🏠 内网：http:\u002F\u002F192.168.0.1:9090\u002Fui       ║\n║     ☁️ 公共：http:\u002F\u002Fboard.zash.run.place      ║\n║     🌏 公网：http:\u002F\u002F8.8.8.8:9090\u002Fui           ║\n║     🔑 密钥：dada289edb457b59                 ║\n║                                               ║\n╚═══════════════════════════════════════════════╝\n\n$ clashsecret mysecret\n🐱 密钥更新成功，已重启生效\n\n$ clashsecret\n🐱 当前密钥：mysecret\n```\n\n- 可通过浏览器打开 `Web` 控制台进行可视化操作，例如切换节点、查看日志等。\n- `clashctl secret` 与 `clashsecret` 都支持无参数查看、有参数直接设置。\n- 默认使用 [zashboard](https:\u002F\u002Fgithub.com\u002FZephyruso\u002Fzashboard) 作为控制台前端，如需更换可自行配置。\n- 若需将控制台暴露到公网，建议定期更换访问密钥，或通过 `SSH` 端口转发方式进行安全访问。\n\n------\n\n## 🏠 局域网代理\n\n项目默认开启局域网代理：运行配置会写入 `allow-lan: true`，并把 `external-controller` 绑定到 `0.0.0.0`，避免订阅文件里的 `allow-lan: false` 覆盖项目默认值。\n\n```bash\nclashctl lan status\nclashctl lan on\nclashctl lan off\n```\n\n开启后，同一局域网设备可把 HTTP \u002F SOCKS 代理地址设置为 `http:\u002F\u002F\u003C本机局域网IP>:\u003Cmixed-port>`，端口默认是 `7890`；如访问不了，请检查系统防火墙是否放行该端口。\n\n------\n\nOpenWrt 下 root\u002Fsystem 安装会把 `clashctl`、`clashon`、`clashoff` 等命令入口写入 `\u002Fusr\u002Fbin`，运行状态、日志和内核二进制仍保存在项目目录的 `runtime\u002F` 下。仅脚本模式不会注册开机自启，设备重启后需要重新执行 `clashon`。\n## 🧰 常用管理命令\n\n### 多订阅管理\n\n```\nclashctl add \u003C订阅链接> \u003C名称>\nclashctl use\nclashctl ls\nclashctl sub\nclashctl sub list\nclashctl sub enable \u003C名称>\nclashctl sub disable \u003C名称>\nclashctl sub rename \u003C旧名称> \u003C新名称>\nclashctl sub remove \u003C名称>\n```\n\nWSL \u002F 普通用户如果无权写入 `\u002Fetc\u002Fenvironment`，`clashon` 会自动降级：运行时照常启动，当前 Shell 代理变量生效；系统代理持久接管和开机代理保持不可用。\n\n### 本地配置导入\n\n推荐使用交互导入，放置目录为：`$PROJECT_DIR\u002Fruntime\u002Fsubscriptions\u002F`\n\n```bash\nclashctl add local\n# 输入：clash.yaml\n```\n\n实际等价于：\n\n```bash\nclashctl add \"file:\u002F\u002F$PROJECT_DIR\u002Fruntime\u002Fsubscriptions\u002Fclash.yaml\"\n```\n\n进阶用法：也可以直接使用 `file:\u002F\u002F` 绝对路径导入：\n\n```bash\nclashctl add \"file:\u002F\u002F\u002F绝对路径\u002Fclash.yaml\" home\n```\n\n支持格式：\n\n- Clash \u002F Mihomo YAML\n- Base64 订阅\n- 分享链接（`vmess` \u002F `vless` \u002F `trojan` \u002F `tuic`）\n\n### 开机接管（内核 + 代理）\n\n```bash\nclashctl boot status\nclashctl boot on\nclashctl boot off\nclashctl boot runtime on|off|status\nclashctl boot proxy on|off|status\n```\n\n- `boot runtime`：只管理内核开机自启（systemd \u002F systemd-user 可用，script 后端为 `unsupported`）。\n- `boot proxy`：只管理 `\u002Fetc\u002Fenvironment` 中的代理持久块（决定开机后是否自动保持代理变量）。\n- `boot`：整体接管开关，等价于同时编排 runtime + proxy 两层状态。\n\n------\n\n## OpenWrt 脚本模式\n\n当前提供 OpenWrt 脚本模式兼容，适合 x86_64\u002Famd64 与 aarch64\u002Farm64 软路由或设备。该模式复用现有 `script` 运行后端，不包含 procd 开机自启、LuCI、UCI 或 opkg 包化支持，也不承诺 MIPS 与 armv7 设备可用。\n\n建议先将项目放到持久化目录，避免放在 `\u002Ftmp`、`\u002Frun` 等重启会丢失的位置：\n\n```bash\ncd \u002Froot\ngit clone --branch master --depth 1 https:\u002F\u002Fghfast.top\u002Fhttps:\u002F\u002Fgithub.com\u002Fwnlen\u002Fclash-for-linux.git\ncd clash-for-linux\n```\n\n安装依赖：\n\n```bash\nopkg update\nopkg install bash curl tar gzip coreutils-readlink unzip\n```\n\n安装与手动管理：\n\n```bash\nbash install.sh\nclashon\nclashctl status\nclashoff\n```\n\nOpenWrt 下 root\u002Fsystem 安装会把 `clashctl`、`clashon`、`clashoff` 等命令入口写入 `\u002Fusr\u002Fbin`，运行状态、日志和内核二进制仍保存在项目目录的 `runtime\u002F` 下。仅脚本模式不会注册开机自启，设备重启后需要重新执行 `clashon`。\n\n## 🏗️ 架构设计架构简述\n\n项目当前可以按三层理解：\n\n### Control\n\n用户入口层。\n\n- `clashctl`\n- `clashon`\n- `clashoff`\n- `status`\n- `doctor`\n- `ui`\n- `select`\n\nControl 层负责把常用动作收口成可理解的命令和反馈。\n\n### Build\n\n配置生成层。\n\n- 多订阅保存\n- 单 active 主订阅\n- active-only 编译链\n- 订阅下载 \u002F 转换 \u002F 校验\n- `runtime\u002Fmixin.yaml` 运行补丁（兼容读取 `config\u002Fmixin.yaml`）\n- 输出 `runtime\u002Fconfig.yaml`\n\n当前规则很明确：`generate_config` 只处理当前 active 主订阅。\n\n### Runtime 说明（重要）\n\n`runtime\u002F` 是运行时目录，不是配置目录。\n\n它的作用是作为“唯一运行容器”，用于存放：\n\n\\- 运行内核（mihomo \u002F clash）\n\\- 运行配置（config.yaml）\n\\- 订阅状态（subscriptions.yaml）\n\\- dashboard 前端\n\\- 日志（logs）\n\\- 构建中间文件（tmp）\n\n这些内容都是 **install \u002F 运行过程中动态生成的**，不会作为仓库内容长期维护。\n\n\n\n## 配置说明\n\n### `.env`\n\n`.env` 用于覆盖安装和运行参数。常用项包括：\n\n```bash\nKERNEL_TYPE=mihomo\nMIXED_PORT=7890\nEXTERNAL_CONTROLLER=0.0.0.0:9090\nCLASH_CONTROLLER_SECRET=your-secret\nCLASH_SUBSCRIPTION_URL=https:\u002F\u002Fexample.com\u002Fsub\nMIHOMO_VERSION=latest\nCLASH_VERSION=latest\nYQ_VERSION=v4.44.3\nSUBCONVERTER_VERSION=v0.9.9\nMIHOMO_DOWNLOAD_BASE=https:\u002F\u002Fgithub.com\u002FMetaCubeX\u002Fmihomo\u002Freleases\u002Fdownload\nCLASH_DOWNLOAD_BASE=https:\u002F\u002Fgithub.com\u002FWindSpiritSR\u002Fclash\u002Freleases\u002Fdownload\nCLASH_BUNDLED_ASSET_ENABLED=true\n```\n\n按需设置即可，不需要每项都写。\n\n### 内置运行依赖\n\n当前正式支持的架构为 `amd64`、`arm64`、`armv7`。超出这三种架构时会明确失败，不会伪装成已支持。\n\n如果安装环境访问 GitHub 很慢，可以把 Mihomo、yq、subconverter 的刚需文件跟随项目一起分发。安装和 `clashctl upgrade` 会优先读取 `resources\u002Fbin` 中与当前版本、架构对应的精确文件名；本地没有对应文件时，会回退到原来的远程下载逻辑，不影响后续升级内核。\n\nClash 仅作为兼容内核处理，固定走远程下载，不会命中 `resources\u002Fbin` 中的本地资源。\n\n推荐路径直接放在分类目录下：\n\n```text\nresources\u002Fbin\u002Fmihomo\u002Fmihomo-linux-amd64-compatible-v1.19.23.gz\nresources\u002Fbin\u002Fmihomo\u002Fmihomo-linux-arm64-v1.19.23.gz\nresources\u002Fbin\u002Fmihomo\u002Fmihomo-linux-armv7-v1.19.23.gz\nresources\u002Fbin\u002Fyq\u002Fyq_linux_amd64.tar.gz\nresources\u002Fbin\u002Fyq\u002Fyq_linux_arm64.tar.gz\nresources\u002Fbin\u002Fyq\u002Fyq_linux_arm.tar.gz\nresources\u002Fbin\u002Fsubconverter\u002Fsubconverter_linux64.tar.gz\nresources\u002Fbin\u002Fsubconverter\u002Fsubconverter_aarch64.tar.gz\nresources\u002Fbin\u002Fsubconverter\u002Fsubconverter_armv7.tar.gz\nresources\u002Fgeo\u002FCountry.mmdb\n```\n\n版本仍由 `.env` 中的 `MIHOMO_VERSION`、`CLASH_VERSION`、`YQ_VERSION`、`SUBCONVERTER_VERSION` 控制。脚本不会扫描目录，也不会自动选择最高版本；如果升级版本，请同步放入新版本对应文件，或让脚本回退到远程下载。\n\n也可以设置 `CLASH_BUNDLED_ASSET_ENABLED=false` 强制跳过内置文件，或用 `CLASH_BUNDLED_ASSET_DIR=\u002Fpath\u002Fto\u002Fassets` 指向项目外的资源目录。Mihomo、yq、subconverter 兼容旧路径 `resources\u002Fbin\u002F\u003Ccategory>\u002F\u003Cversion>\u002F\u003Cfile>`。\n\n### `runtime\u002Fmixin.yaml`（兼容 `config\u002Fmixin.yaml`）\n\n用于对最终运行配置做补丁：\n\n- `override` 覆盖字段\n- `prepend` 把数组项放到原始配置前面\n- `append` 把数组项放到原始配置后面\n\n查看当前模板：\n\n```bash\nclashctl mixin\n```\n\n编辑：\n\n```bash\nclashctl mixin edit\n```\n\n查看最终运行配置：\n\n```bash\nclashctl mixin runtime\n```\n\n### \n\n------\n\n## 🔄 更新\n\n```bash\nclashctl update\nclashctl upgrade\nclashctl upgrade mihomo\nclashctl upgrade clash\n```\n\n`update` 用于更新项目代码与运行依赖。`upgrade` 用于升级当前或指定代理内核。\n\n------\n\n## 🧩 Mixin 配置\n\n```bash\nclashctl mixin\nclashctl mixin edit\nclashctl mixin raw\nclashctl mixin runtime\n```\n\nMixin 是运行配置补丁，不是订阅管理。它优先通过 `runtime\u002Fmixin.yaml`（兼容读取 `config\u002Fmixin.yaml`）对当前 active 订阅生成的运行配置执行：\n\n- `override`\n- `prepend`\n- `append`\n\n示例：\n\n```yaml\noverride:\n  dns:\n    enable: true\n\nprepend:\n  proxies: []\n  proxy-groups: []\n  rules:\n    - DOMAIN-SUFFIX,example.com,DIRECT\n\nappend:\n  proxies: []\n  proxy-groups: []\n  rules:\n    - MATCH,节点选择\n```\n\n编辑后执行：\n\n```bash\nclashctl mixin edit\n```\n\n它会重新生成配置；如果代理正在运行，会自动重启应用。\n\n### 多跳节点\n\n多跳节点会写入 `runtime\u002Fmixin.yaml`（兼容读取 `config\u002Fmixin.yaml`），通过 Mihomo\u002FClash 的 `relay` 策略组串联已有订阅节点。节点名称必须与订阅生成的节点名完全一致，可先通过 Web 控制台确认：\n\n```bash\nclashon\nclashui\n```\n\n按域名小范围测试：\n\n```bash\nclashctl relay add 多跳-示例 节点A 节点B --domain example.com\nclashctl relay list\n```\n\n也可以使用快捷入口：`clashrelay list`。\n\n全局接管：\n\n```bash\nclashctl relay add 全局多跳 节点A 节点B --match\n```\n\n`--match` 会让所有未提前命中的流量走多跳，建议先用 `--domain` 验证链路。删除多跳配置：\n\n```bash\nclashctl relay remove 多跳-示例\n```\n\n------\n\n## 🌐 Tun 模式\n\n```bash\nclashctl tun on\nclashctl tun off\nclashctl tun doctor\nclashctl tun logs\n```\n\nTun 用于透明接管链路。`tun on` 是动作反馈，展示当前关键配置和简短状态；完整证据请看：\n\n```bash\nclashctl tun doctor\n```\n\nTun 判断不会简单把 `root` 等同于拥有 `CAP_NET_ADMIN`，也不会把 main table 默认路由未切换直接等同于 Tun 未生效。诊断会结合运行后端、容器环境、进程能力、Tun adapter、policy routing、路由表和日志证据。\n\n------\n\n## 🧹 卸载\n\n```\nbash uninstall.sh\n```\n\n## 设置代理\n1. 开启 IP 转发\n\n```bash\necho \"net.ipv4.ip_forward = 1\" | tee -a \u002Fetc\u002Fsysctl.conf\nsysctl -p\n```\n\n2.配置iptables\n```bash\n# 先清空旧规则\niptables -t nat -F\n\n# 允许本机访问代理端口\niptables -t nat -A OUTPUT -p tcp --dport 7890 -j RETURN\niptables -t nat -A OUTPUT -p tcp --dport 7891 -j RETURN\niptables -t nat -A OUTPUT -p tcp --dport 7892 -j RETURN\n\n# 让所有 TCP 流量通过 7892 代理\niptables -t nat -A PREROUTING -p tcp -j REDIRECT --to-ports 7892\n\n# 保存规则\niptables-save | tee \u002Fetc\u002Fiptables.rules\n```\n\n3. 让 iptables 规则开机生效\n在 `\u002Fetc\u002Frc.local`（或 `\u002Fetc\u002Frc.d\u002Frc.local`）加上：\n\n```bash\n#!\u002Fbin\u002Fbash\niptables-restore \u003C \u002Fetc\u002Fiptables.rules\nexit 0\n```\n\n```bash\nchmod +x \u002Fetc\u002Frc.local\n```\n\n## 🔗 引用\n\n- [clash](https:\u002F\u002Fclash.wiki\u002F)\n- [mihomo](https:\u002F\u002Fgithub.com\u002FMetaCubeX\u002Fmihomo)\n- [subconverter](https:\u002F\u002Fgithub.com\u002Fasdlokj1qpi233\u002Fsubconverter)\n- [zashboard](https:\u002F\u002Fgithub.com\u002FZephyruso\u002Fzashboard)\n\n# 常见问题\n\n1. 部分Linux系统默认的 shell `\u002Fbin\u002Fsh` 被更改为 `dash`，运行脚本会出现报错（报错内容一般会有 `-en [ OK ]`）。建议使用 `bash xxx.sh` 运行脚本。\n\n2. 部分用户在UI界面找不到代理节点，基本上是因为厂商提供的clash配置文件是经过base64编码的，且配置文件格式不符合clash配置标准。\n\n   目前此项目已集成自动识别和转换clash配置文件的功能。如果依然无法使用，则需要通过自建或者第三方平台（不推荐，有泄露风险）对订阅地址转换。\n   \n3. 程序日志中出现`error: unsupported rule type RULE-SET`报错，解决方法查看官方[WIKI](https:\u002F\u002Fgithub.com\u002FDreamacro\u002Fclash\u002Fwiki\u002FFAQ#error-unsupported-rule-type-rule-set)\n## ⭐ Star History\n\n[![Star History Chart](https:\u002F\u002Fapi.star-history.com\u002Fsvg?repos=wnlen\u002Fclash-for-linux&type=Date)](https:\u002F\u002Fstar-history.com\u002F#wnlen\u002Fclash-for-linux&Date)\n\n## ⚠️ 特别声明\n\n\n\n1. 编写本项目主要目的为学习和研究 `Shell` 编程，不得将本项目中任何内容用于违反国家\u002F地区\u002F组织等的法律法规或相关规定的其他用途。\n2. 本项目保留随时对免责声明进行补充或更改的权利，直接或间接使用本项目内容的个人或组织，视为接受本项目的特别声明。\n","Clash for Linux 是一个为 Linux 系统设计的更完整、更优雅的 Clash \u002F Mihomo 运行平台。它具备自动识别系统架构并下载对应内核、端口自动检测与分配以避免冲突、多订阅管理以及节点选择等核心功能，支持Tun模式用于透明代理接管，并通过Mixin机制实现配置的灵活调整。此外，项目还提供了丰富的命令行工具和Web控制台，方便用户管理和诊断。适用于Linux云服务器、本地开发环境（如Ubuntu\u002FDebian\u002FWSL）、路由或轻量级系统（例如OpenWrt\u002FNAS），特别适合需要稳定访问GitHub、Go\u002FNode\u002FDocker生态的开发者及不希望手动维护Clash运行状态的用户。",2,"2026-06-11 03:38:54","high_star"]