ShellCrash(原名 ShellClash)实用指引:一行命令装好,菜单里配完分流
ShellCrash 是用 Shell 脚本运行 Clash 内核的工具,原名 ShellClash。本篇讲 5 件事:它和 LuCI 插件的区别、装前准备、导入 Clash 订阅、选运行模式和 DNS、在 Linux 盒子上做网关,并附常见故障的查法。
ShellCrash 用一套 Shell 脚本把 Clash 系内核(如 mihomo)跑在路由器或 Linux 设备上,再用防火墙规则把局域网流量导进内核。它最早叫 ShellClash,后来改了名,搜旧名搜到的教程讲的也是它。和 PassWall、HomeProxy 这类网页插件比,它没有 LuCI 设置页,所有设置都在 SSH 里的数字菜单完成,节点切换另有网页面板。
先看它和 LuCI 插件差在哪
| 对比项 | ShellCrash | LuCI 插件(PassWall、HomeProxy 等) |
|---|---|---|
| 形态 | Shell 脚本加内核文件 | 打包好的软件包 |
| 设置方式 | SSH 里按数字菜单选 | 路由器后台网页 |
| 能装在哪 | OpenWrt、梅林、Padavan、部分品牌路由器、Linux | 基本只限 OpenWrt 系 |
| 订阅 | Clash 配置;其他格式要先转换 | 各插件各认各的格式 |
| 内核 | Clash 系内核,也能选 sing-box | 依插件而定 |
由此可以推出它适合的人:路由器刷不了 OpenWrt,但能开 SSH;手里是 Clash 订阅,不想转格式;或者想把一台闲置的 Linux 小主机变成家里的代理网关。反过来,不习惯命令行、只想点网页的,选 PassWall 或 HomeProxy 更顺手。
装之前备好四样东西
- 一个能用 root 登录的 SSH。OpenWrt 和梅林后台都能打开 SSH;品牌路由器的官方固件多数默认关着,开法因型号而异,本篇不展开。
- 足够的空间和内存。内核文件解压后有几十 MB,运行时还要占内存。闪存很小的设备,安装时按脚本提示选一个空间够的目录,例如插着的 U 盘。
- 能下载文件的工具。系统里有 curl 或 wget 其中一个即可。
- 一条 Clash 订阅链接,导入那一步要用。
用下面几行先摸清设备情况:
uname -m
df -h
free -m
uname -m 看 CPU 架构,脚本会据此下载对应的内核;df -h 看哪个目录还有空间;free -m 看可用内存,内存太紧时规则集要精简。
用一行命令完成安装
ShellCrash 的安装方式,是在 SSH 里执行项目 README 给出的一行命令:先下载安装脚本,再交给 sh 运行。README 通常列了 GitHub 原地址和几个镜像地址,国内网络拉不动 GitHub 时换镜像。本篇不贴具体地址,以项目页面当时的写法为准。
脚本跑起来后,会依次问几件事:
- 选版本:公测版、稳定版、开发版。脚本把公测版标为推荐,求稳就选稳定版。
- 选打开菜单用的命令别名,第一项是
crash,也可以选sc、mm或自己起一个。 - 选安装目录。路由器上默认目录不够大时,改选 U 盘或其他挂载点。
- 确认安装。完成后用刚才定的命令打开管理菜单。
1.9.0 起默认用 crash 命令打开菜单,更早的 ShellClash 用的是 clash。以后改任何设置,都是 SSH 登录后敲这个命令,按数字进入对应项。
导入 Clash 订阅
菜单里有配置文件管理的入口,大致分三条路,具体菜单名随版本略有不同:
- 直接导入 Clash 配置链接。机场给的 Clash 订阅地址本身就是一份完整配置,填进去即可,节点、策略组、规则都由订阅决定。
- 导入节点链接或通用订阅,再在线生成配置。脚本调用订阅转换服务把链接转成配置文件,可以顺带选规则模板。代价是订阅地址要发给转换服务器,介意的话就别走这条。
- 本地生成配置。公测版可以把订阅链接、分享链接或本地文件添加为「提供者」,再在本机生成配置文件,不经过转换服务器。这条只支持 mihomo 和 sing-box 内核。
导入后让脚本立即更新一次,并设一个定时更新的任务,节点变动时不用手动重导。
订阅从哪来,可以先看 推荐号位 里的名单,再点进 一翻云、跨界云 这类单家页。本站不记录各家提供哪些订阅格式、允许几台设备在线,付款前直接问客服:有没有 Clash 订阅链接,同时在线设备数是多少。路由器做出口后,全家流量都从一条订阅走,估月流量时按全家一起算,再留些余量。
选运行模式和 DNS
在功能设置里依次定这几项。路由模式有四种:
| 路由模式 | 做法 | 什么时候选 |
|---|---|---|
| Redir 模式 | 只转发 TCP,不转发 UDP | 设备性能弱,又不在意 UDP |
| 混合模式(公测版写作 Mix) | TCP 走 Redir,UDP 走 Tun | 多数家庭的折中做法 |
| Tproxy 模式 | TCP、UDP 都用 Tproxy 转发 | 内核和防火墙都支持时 |
| Tun 模式 | 建虚拟网卡接管 TCP 和 UDP | 脚本标注占用高、不推荐 |
纯净模式不在这张表里,它在「路由劫持范围」中,选「不配置流量劫持」即可:不改防火墙,只开代理端口,适合只让个别设备手动填代理。
DNS 的档位随版本变过。1.9.3 及更早的版本是 fake-ip、redir_host、mix 等几档;1.9.4 稳定版和公测版改成三档:MIX 模式让国内域名走直连 DNS、其余用 fake-ip;Route 模式让国内域名走直连 DNS、其余经代理去查,拿到的都是真实地址;Redir 模式脚本建议搭配加密或第三方 DNS 服务使用。fake-ip 解析快,但少数应用和局域网发现功能会受影响,遇到了把相关域名加进 Fake-IP 过滤列表。第一次配,先用脚本默认值,出了问题再换。
另外几项按需设:只代理指定设备,就在透明路由流量过滤里按设备圈定;路由器自身要不要走代理,在路由劫持范围里选「仅局域网」还是「局域网 + 本机」;最后打开开机启动,再启动服务。
在 Linux 小主机上当网关
ShellCrash 也能装在 Debian、Ubuntu 这类系统上,常见的是闲置的 x86 小主机或刷了 Armbian 的 ARM 盒子。用法分两种:
- 只给这台机器自己用:路由劫持范围选「仅本机」,其他设备不受影响。
- 给全家当网关:路由劫持范围包含局域网,打开系统的 IP 转发,然后把要代理设备的网关和 DNS 指向这台机器的地址。
检查 IP 转发是否打开:
sysctl net.ipv4.ip_forward
输出为 1 表示已打开。Linux 上脚本会尝试注册为系统服务,以便开机自启;装完重启一次,确认服务能自己起来。
打开面板确认生效
ShellCrash 可以在菜单里安装网页面板(菜单里有 zashboard、MetaXD、Yacd 等几种可选)。装好后,菜单会显示面板地址,在电脑浏览器里打开。
- 在面板里看策略组和节点,测一次延迟,挑一个可用节点。
- 打开连接页,用手机随便访问几个国内外网站,连接列表里应该能看到这些请求,以及它们命中了哪条规则。
- 手机上打开查出口 IP 的网页,地区应是节点所在地。
常见故障怎么查
- 服务启动失败:先看内核是否下载完整、架构是否对,再看配置文件有没有语法错误,菜单里能查看运行日志。
- 导入订阅后没节点:直接导入的订阅可能不是 Clash 格式(通用订阅要走生成配置那两条路),或者设备本身访问不了订阅地址。
- 全家断网:先在菜单里停止服务,确认网络恢复;再检查是否同时开着其他代理插件,两套防火墙规则会冲突。
- 部分应用异常:多半和 fake-ip 有关,把它们的域名加进 Fake-IP 过滤列表,或把 DNS 换成 Route 模式(老版本是 redir_host)试试。
- 内存不足被系统杀掉:规则集太大,换精简一点的规则,或关掉不用的功能。
如果路由器本身就是 OpenWrt 或 iStoreOS,网页插件同样可行,iStoreOS 用户可以对比 iStoreOS PassWall 的做法再决定。
问与答
ShellCrash 和 ShellClash 是同一个东西吗?
ShellCrash 需要 OpenWrt 吗?
只有通用订阅、没有 Clash 订阅能用吗?
接着看
文中提到的机场
佣金交代:本站收录的机场与本站之间都有推广合作关系;读者由本站过桥页进入官网并完成付款后,本站会得到一笔佣金。各家价格、流量与优惠码照官网记录,谁排前谁排后的规则见「本站」页。