ShellCrash 安装与配置踩坑与解决日志

本文档基于 Debian/Ubuntu 系统,记录了 ShellCrash 的安装、配置,以及解决"配置后无法代理"和"端口冲突"等关键问题的详细过程。

一、准备与安装(初次安装的坑)

1. 目标: 下载并运行安装脚本。

2. 遇到的问题:

  • 问题 A: 运行 bash /tmp/init.sh 提示 权限不够 (Permission denied)

3. 原因分析:

  • 运行了错误的脚本 (/tmp/init.sh),并且没有使用 sudo,导致它没有权限写入系统目录。

4. 解决方案(正确的安装流程):

bash 复制代码
# 1. 进入 /tmp 目录
cd /tmp

# 2. (如果存在) 清理上次失败留下的旧文件和下载包
# 这是我执行的清理命令,确保环境干净
sudo rm -rf /tmp/SC_tmp /tmp/ShellCrash.tar.gz /tmp/clash_providers.list /tmp/Country.mmdb /tmp/fake_ip_filter.list /tmp/fallback_filter.list /tmp/misnap_init.sh /tmp/servers.list /tmp/shellcrash.procd /tmp/shellcrash.service /tmp/singbox_providers.list /tmp/task.list

# 3. 下载安装包
wget https://pub-0b4691e6622f48f6aa74aeee15782ebd.r2.dev/Linux/ShellCrash.tar.gz

# 4. 创建正确的临时目录
mkdir -p /tmp/SC_tmp

# 5. 将安装包解压到 *指定* 目录
tar -zxf ShellCrash.tar.gz -C /tmp/SC_tmp/

# 6. 【关键】使用 sudo (管理员权限) 运行 SC_tmp 目录内的正确脚本
sudo bash /tmp/SC_tmp/init.sh

二、配置向导(全程使用 Sudo)

1. 目标: 完成 ShellCrash 的基础设置。

2. 关键原则:

  • 由于我们将 ShellCrash 安装到了系统目录 (/usr/share),因此之后每一次 运行管理命令 crash,都必须 使用 sudo

  • 正确命令: sudo crash

  • 错误命令: crash (会导致各种"权限不够"的错误)

3. 正确的配置流程:

bash 复制代码
# 1. 使用 sudo 启动配置向导
sudo crash
  • 安装位置选择:

    • 选择:2 (在/usr/share目录下安装)

    • 提示:确认安装?(1/0) >

    • 选择:1

  • 新手引导(sudo crash 自动触发):

    • 提示:请先选择你的使用环境:

    • 选择:2 (Linux设备仅配置本机代理)

    • 提示:是否开启公网访问...?

    • 选择:0 (不开启,更安全)

    • 提示:是否启用自动任务...?

    • 选择:1 (启用)

    • 提示:是否导入配置文件?

    • 选择:1 (是)

  • 导入订阅链接:

    • 提示:ShellCrash配置文件管理

    • 选择:2 (在线获取完整配置文件)

    • 提示:我确认遇到问题可以自行解决[1/0] >

    • 选择:1

    • 提示:请输入完整链接 >

    • 粘贴:https://... (你自己的订阅链接)

    • 提示:确认导入配置文件?...[1/0] >

    • 选择:1

    • 注意: 如果提示"配置文件获取失败!",重新按 2 再试一次,通常是网络临时问题。

    • 成功后: 它会提示"已成功获取配置文件!"并询问是否启动,选择 1 (是)。

三、关键调试(解决"能连接但无法代理")

这是我遇到的最核心的问题。

1. 症状:

  • ShellCrash 服务显示"已启动"。

  • 浏览器访问 http://127.0.0.1:9999 (Yacd 面板) 可以打开

  • 在 Yacd 面板里设置了"全局"(Global) 模式。

  • 但是,浏览器(Firefox)无法访问任何网页,显示"代理服务器拒绝连接"。

  • 诡异的是,当我打开另外一个图形界面的 Clash 软件 (Clash-A) 时,它又突然能用了。

2. 原理("端口冲突"的地盘争夺战):

  • 比喻: 我的电脑是公寓,7890 是一个房门号。

  • 住户A: 我的"Clash 软件" (Clash-A)。

  • 住户B: ShellCrash (Clash-B)。

  • 规则: 一个房门 (7890) 只能被一个住户(服务)占用。

  • 问题:

    1. Clash-A 启动时,抢先 占用了 7890 房门。

    2. 我的 Firefox 设置了去找 7890 房门,找到了 Clash-A,所以能用

    3. 当我关闭 Clash-A7890 房门就空了。

    4. 此时 ShellCrash (Clash-B) 并没有 成功上岗(可能它启动时因为 Clash-A 占着而失败了)。

    5. Firefox 再去敲 7890 的门,发现没人开门,所以"拒绝连接"。

3. 解决方案(清场与交接): 这是确保 ShellCrash (Clash-B) 成为 7890 唯一主人的正确流程。

  1. 【清场】 彻底退出 "Clash 软件" (Clash-A)。确保它完全退出,释放 7890 端口。

  2. 【交接】 回到终端,运行 sudo crash 进入主菜单。

  3. 【确保A已走】sudo crash 菜单中,输入 3 (停止内核服务)。这确保 Clash-B 也完全停止了。

  4. 【B上岗】 在同一个菜单里 ,输入 1 (启动/重启服务)。此时 7890 端口是干净的,ShellCrash (Clash-B) 会成功抢占并在此端口上开始工作。

四、收尾工作(客户端设置)

1. 检查 ShellCrash 代理端口 (7890)

  • 回到终端,运行 sudo crash 进入主菜单。

  • 输入 7 (内核进阶设置) 并回车。

  • 输入 5 (自定义端口及秘钥) 并回车。

  • 检查第一项: 1. 修改Http/Sock5端口: 后面是不是 7890

    • 如果是 0: 请输入 1,然后输入 7890 并回车,将其设置为 7890

    • 如果是 7890: 直接按 0 返回。

2. 设置开机自启:

  • sudo crash -> 4. 内核启动设置

  • 选择 1. 允许/禁止开机启动

  • 看到提示"已启用开机启动!"即可。

3. 设置 Firefox(或系统)代理: 我的ShellCrash (Clash-B) 现在正在 127.0.0.1:7890 上工作。需要告诉我的应用程序去找它。

  • 打开 Firefox -> 设置 -> 常规 -> 网络设置 -> 设置

  • 选择:手动配置代理(M)

  • HTTP 代理: 127.0.0.1 端口 7890

  • 勾选:也将其代理用于 HTTPS(S)

  • SOCKS 主机: 127.0.0.1 端口 7890

  • 点击"确定"。

五、日常使用 ------ 使用 Yacd 面板切换节点

ShellCrash 已经在后台运行了,但需要一个"遥控器"来切换节点或模式(比如"全局"或"规则")。这个遥控器就是 Yacd 面板。

1. 在哪里访问面板?

  • 在 Firefox 浏览器中,打开网址: https://yacd.metacubex.one

2. 如何连接?

  1. 在 Yacd 页面上,找到 API BASE URL 输入框。

  2. 在框里输入 ShellCrash管理地址http://127.0.0.1:9999

  3. Secret (秘钥) 留空。

  4. 点击 "Add" 或 "Connect" 按钮。

3. 如何使用面板?

  • 切换节点: 连接成功后,点击左侧菜单的 "代理 (Proxies)"。在这里你可以看到所有节点分组,点击你想要的节点即可立即切换。

  • 切换模式: 点击左侧菜单的 "配置 (Settings)" 。在 Mode 下拉菜单中,你可以选择 Global (全局)、Rule (规则) 或 Direct (直连)。

相关推荐
石像鬼₧魂石2 小时前
192.168.1.4(Windows 靶机)渗透测试练习全流程(详细步骤)
windows·学习
yaoxin5211232 小时前
237. Java 集合 - 对 List 元素进行排序
java·windows
yaoxin5211232 小时前
236. Java 集合 - 使用索引访问 List 元素
java·windows·list
DY009J3 小时前
如何在Ubuntu虚拟机中设置Samba共享,并在Windows宿主机中挂载为网络驱动器
网络·windows·ubuntu
怣疯knight3 小时前
搜狗输入法在vecode中打出的是繁体,在其他软件打出的都是简体的解决办法
windows
hello_fracong7 小时前
PostgreSQL (零-1) Windows安装PostgreSQL
数据库·windows·postgresql
天地之于壹炁兮8 小时前
元素认证的智慧:Python分支魔法的艺术与禁忌
windows·python
q***51899 小时前
如何在Windows系统上安装和配置Node.js及Node版本管理器(nvm)
windows·node.js
胡八一12 小时前
Windows 7 运行 .NET 应用时报错“hostfxr.dll 加载失败 (HRESULT: 0x80070057)”的彻底解决指南
windows·.net