第一步:安装 ShellCrash(Clash 的命令行管理脚本)
这是目前在 Linux 服务器上最傻瓜式的安装方式。
登录 SSH 终端。
执行安装脚本(复制粘贴回车):
export url='https://fastly.jsdelivr.net/gh/juewuyong/ShellCrash@master' && sh -c "$(curl -kfsSL $url/install.sh)" && source /etc/profile &> /dev/null(如果上面这个 GitHub 的地址连不上,可以尝试用国内源,但在没代理之前可能有点难。)
GitHub 的地址连不上用以下步骤
第一步:在电脑上下载(必须挂梯子)
请在电脑浏览器打开这个 GitHub 发布页链接:
https://github.com/juewuyong/ShellCrash/releases找到最新的一个版本(比如 v1.9.x),展开 "Assets"(资产列表)。
找到 ShellCrash.tar.gz 这个文件,点击下载到你电脑上。
(注意:是 ShellCrash.tar.gz,不要下载源码 zip)
第二步:上传到服务器
打开 1Panel 面板 -> 主机 -> 文件。
进入 /tmp 目录。
点击 “上传”,把刚才下载的 ShellCrash.tar.gz 传上去。
第三步:手动安装(SSH 终端)
回到 SSH 终端,严格执行下面这 3 条命令:
1. 创建目录:
codeBash
mkdir -p /etc/ShellCrash2. 解压文件(确保你上传到了 /tmp):
codeBash
tar -zxvf /tmp/ShellCrash.tar.gz -C /etc/ShellCrash/3. 运行安装脚本:
codeBash
bash /etc/ShellCrash/init.sh第四步:后续配置(这里也可能遇到坑)
执行完脚本后,输入 crash 回车进入管理菜单。
橙色字体为没遇到的情况
情况解释:
你现在运行的这个 crash,并不是我们刚才安装的那个代理软件,而是 Linux 系统自带的一个内核调试工具(用来分析系统崩溃的)。因为阿里云的系统里预装了这个工具,名字刚好也叫 crash,所以系统优先运行了它,而不是我们的脚本。
别担心,我们的软件还在,只是我们需要换一种方式来呼叫它。
请执行下面这行命令来启动菜单:
复制并执行:
codeBash
bash /etc/ShellCrash/menu.sh执行这行命令后,你应该就能看到中文的 ShellCrash 管理界面了。
接下来请继续按之前的步骤操作:
安装内核:
输入 1 运行脚本。
它会提示没安装核心,输入 1 安装。
重点:如果提示选择下载源,请选 CDN 或 Gitee(如果有的选项)。如果下载失败,请看下面的【补救方案】。
配置:
安装好核心后,选 6 导入订阅。
选 1 启动服务。
【补救方案】如果这一步里内核死活下载不下来
因为你的服务器网络实在太那个了,如果脚本里选了 CDN 源还是下载失败,我们依然用电脑下载 -> 上传的大招。
电脑下载内核:
去这个地址下载 Clash.Meta-linux-amd64 文件:
https://github.com/MetaCubeX/mihomo/releases
(找最新版,下载文件名大概叫 mihomo-linux-amd64-v1.xx.x.gz,下载后解压,得到一个没有后缀的文件)上传:
把这个文件上传到服务器 /tmp/ 目录,改名为 Clash。移动:
mv /tmp/Clash /etc/ShellCrash/Clash
chmod +x /etc/ShellCrash/Clash
不过先别急,先运行 bash /etc/ShellCrash/menu.sh 试试脚本自带的下载,说不定 CDN 能通!
以下为powershell中的内容
欢迎使用ShellCrash新手引导!
请先选择你的使用环境:
(你之后依然可以在设置中更改各种配置)
1 路由设备配置局域网透明代理
2 Linux设备仅配置本机代理
请输入对应数字 > 2
启用推荐的自动任务配置?这包括:
每隔10分钟自动保存面板配置
服务启动后自动同步ntp时间
在每日的3点0分重启服务
是否启用?(1/0) >1
⚠️ 高能预警:下一步最关键
输入 1 回车后,脚本检测到你没有安装“核心”,马上就会进入下载核心的环节。
请务必按以下顺序选择(仅供参考,菜单顺序可能会变,看字意):
未检测到Clash核心,是否安装?
输入 1 (安装)。
请选择核心版本:
强烈建议选 Clash.Meta (或者显示为 Mihomo)。
通常是选项 2 或 3。
如果问是否为最新版,直接回车选默认。
请选择下载源(生死攸关的一步):
脚本会列出 Github, CDN, Fastgit, Release 等选项。
绝对不要选 Github (选项 1)。
请尝试选 CDN源、Jsdelivr 或 Release源。
如果第一个失败了,脚本会提示,你就换下一个继续试,直到显示“安装成功”。
请操作,如果在下载核心这一步卡住了或者全失败,立刻截图或者复制报错发给我,我们用电脑传文件的大招。
是否导入配置文件?(这是运行前的最后一步)
你必须拥有一份配置文件才能运行服务!
现在开始导入?(1/0) >1
1 在线生成配置文件(基于Subconverter订阅转换)
2 在线获取配置文件(基于订阅提供者)
3 本地生成配置文件(基于内核providers,推荐!)
4 本地上传完整配置文件
5 设置自动更新
6 自定义配置文件
7 更新配置文件
8 还原配置文件
9 自定义浏览器UA
输入1之后
打开你电脑上正在用的翻墙软件。
找到你正在用的那个节点列表或者订阅分组。
右键点击它,选择 “复制订阅地址” (Copy Subscription URL)。
拿到链接后,回到 SSH 黑色窗口:
此时你的黑色窗口应该停留在 请直接输入第1个链接... > 这里。
直接把刚才找到的那个链接粘贴进去。
按回车。
蓝色字体是出问题了
接下来使用上传文件的办法
请直接输入第2个链接或对应数字选项 > 1
链接地址为:https://sub.jwsc.eu.org/sub?target=clash&ua=clash&insert=true&new_name=true&scv=true&udp=true&exclude=&include=&url=&config=https%3A%2F%2Fgithub.com%2Fjuewuy%2FShellCrash%2Fraw%2Fdev%2Frules%2FShellClash.ini
可以手动复制该链接到浏览器打开并查看数据是否正常!
配置文件获取失败!
尝试更新服务器列表并使用其他服务器获取配置!
/tmp/ShellCrash/servers.list [ <=> ] 2.96K --.-KB/s in 0s
正在重试第1次/共3次!
链接地址为:https://api.v1.mk/sub?target=clash&diyua=clash&insert=true&new_name=true&scv=true&udp=true&exclude=&include=&url=&config=https%3A%2F%2Fgithub.com%2Fjuewuy%2FShellCrash%2Fraw%2Fdev%2Frules%2FShellClash.ini
可以手动复制该链接到浏览器打开并查看数据是否正常!
配置文件获取失败!
尝试使用其他服务器获取配置!
正在重试第2次/共3次!
链接地址为:https://url.v1.mk/sub?target=clash&diyua=clash&insert=true&new_name=true&scv=true&udp=true&exclude=&include=&url=&config=https%3A%2F%2Fgithub.com%2Fjuewuy%2FShellCrash%2Fraw%2Fdev%2Frules%2FShellClash.ini
可以手动复制该链接到浏览器打开并查看数据是否正常!
配置文件获取失败!
尝试使用其他服务器获取配置!
正在重试第3次/共3次!
链接地址为:https://sub.jwsc.eu.org/sub?target=clash&ua=clash&insert=true&new_name=true&scv=true&udp=true&exclude=&include=&url=&config=https%3A%2F%2Fgithub.com%2Fjuewuy%2FShellCrash%2Fraw%2Fdev%2Frules%2FShellClash.ini
可以手动复制该链接到浏览器打开并查看数据是否正常!
无法获取配置文件,请检查链接格式以及网络连接状态!
也可用浏览器下载以上链接后,使用WinSCP手动上传到/tmp目录后执行crash命令本地导入!
这是一个典型的“死循环”问题:
原因分析:
ShellCrash 脚本试图去访问“在线转换服务器”(比如 jwsc.eu.org)来把你的订阅转换成配置文件。但是,你的服务器现在没有翻墙,连不上这个转换服务器。所以它试了 3 次都失败了。
解决方法:
既然服务器连不上,我们就用你的电脑(电脑有梯子,能连上)来完成“转换”和“下载”这两步,然后把做好的文件上传给服务器。
第一步:在电脑上生成并下载配置文件
在你的电脑浏览器打开这个在线转换网站(ACL4SSR):
👉 https://acl4ssr-sub.github.io/
(如果打不开,就用你刚才截图的那个 tp.dy.ax 也可以,原理一样)小猫用这个也一样

操作步骤:
订阅链接:粘贴你那个买来的机场订阅链接。
客户端:选择 Clash Meta (或者 Clash)。
远程配置:默认即可(或者选第一个)。
点击下方的 “生成订阅链接”。
下载文件:
生成后,点击旁边的 “下载配置” 按钮。
如果是弹出一堆文字,你就把那个“定制订阅”的链接复制到浏览器地址栏回车,浏览器就会下载一个文件。
重命名:把下载下来的文件重命名为 config.yaml (注意后缀是 .yaml)。
注意:如果浏览器打开后显示的是一堆密密麻麻的文字代码,请点击浏览器右上角的菜单 -> “网页另存为” -> 保存为 config.yaml。
第二步:上传到服务器
回到 1Panel 面板 -> 主机 -> 文件。
进入 /tmp 目录。
点击 “上传”,把刚才电脑上做好的 config.yaml 传上去。
第三步:在 SSH 里导入
回到那个黑色的 SSH 终端窗口:
输入 crash (或者 bash /etc/ShellCrash/menu.sh) 进入菜单。
输入 6 (导入配置文件)。
这次选择 4 (本地上传完整配置文件) 或者 2 (本地生成) —— 重点是选带有“本地”或“路径”字眼的选项。
脚本会问你文件路径,请输入:
/tmp/config.yaml回车确认。
脚本提示“是否启动服务”,输入 1。
欢迎使用ShellCrash! 版本:1.9.4alpha6
服务没有运行(Redir模式),未设置开机启动!
TG频道:https://t.me/ShellClash
发现内核配置文件: /tmp/config.yaml
是否加载为的配置文件?(1/0) > 1
配置文件加载完成!
1 启动/重启服务
2 功能设置
3 停止服务
4 启动设置
5 设置自动任务
6 管理配置文件
7 访问与控制
8 工具与优化
9 更新与支持
0 退出脚本
请输入对应数字 > 1
Job for shellcrash.service failed because a timeout was exceeded.
See "systemctl status shellcrash.service" and "journalctl -xeu shellcrash.service" for details.
服务启动失败!请查看报错信息!详细信息请查看/tmp/ShellCrash/core_test.log
服务已启动!
请使用 http://172.24.29.107:9999/ui 管理内置规则
最后再下载
文件:
点击下载 Country.mmdb(IP库)(我这个没装,就装了下面这个,写文章的时候装了下发现启动不了了,然后卸载了之后服务器重启,再开就又好了)
点击下载 GeoSite.dat(域名库)
处理:下载下来就是这个名字,不用改。
1Panel 上传:
面板 -> 主机 -> 文件 -> 进入 /etc/ShellCrash/ 目录。
测试
在 SSH 黑色窗口里输入下面这行命令(复制粘贴):
codeBash
curl -I -x http://127.0.0.1:7890 https://www.google.com最后
回到你的 SSH 黑色窗口,依次复制执行下面的命令。
第一步:检查面板设置(最后确认)
回到你的浏览器 1Panel 面板。
“镜像加速”确认一下: 确保里面是空的(没有填阿里云、1panel.live 之类的地址)。如果有,点“设置”把它删掉。
现在的状态应该是:
❌ 镜像加速:空
✅ 后台代理配置:已通过命令写入
第二步:写入 Docker 代理配置
直接复制下面整段代码(从 mkdir 到 EOF),在终端里粘贴并回车:
codeBash
mkdir -p /etc/systemd/system/docker.service.d
cat > /etc/systemd/system/docker.service.d/http-proxy.conf << EOF
[Service]
Environment="HTTP_PROXY=http://127.0.0.1:7890"
Environment="HTTPS_PROXY=http://127.0.0.1:7890"
Environment="NO_PROXY=localhost,127.0.0.1"
EOF第三步:重启 Docker 使配置生效
复制执行下面这两行命令:
codeBash
systemctl daemon-reload
systemctl restart docker(注意:执行完第二行后,可能需要等几秒钟,终端才会重新弹出输入框,这是因为 Docker 正在重启,属于正常现象。)
第四步:验证配置是否生效(选做,为了让你放心)
执行下面这就行命令,检查 Docker 是否真的吃进了配置:
codeBash
systemctl show --property=Environment docker如果成功:你会看到输出里包含 Environment=HTTP_PROXY=http://127.0.0.1:7890 这样的字样。
看到这个字样,就说明配置绝对生效了,不用管网页上显示什么。