当前位置: 首页 > news >正文

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

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

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

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

2. 遇到的问题:

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

3. 原因分析:

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

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

# 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. 正确的配置流程:

# 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 (直连)。

http://www.dtcms.com/a/596501.html

相关文章:

  • redis 的面试点总结
  • DS1302 简单介绍
  • JS DOM 操作与性能优化实战指南:构建高效可交互的页面结构
  • 【Java】基于策略模式 + 工厂模式多设计模式下:重构租房系统核心之城市房源列表缓存与高性能筛选
  • 学校门户网站作用收录查询工具
  • 如何在资源不足时快速补救项目延误
  • C++多线程之线程管控
  • 企业BI项目建设--如何梳理企业的指标体系
  • Linux 虚拟文件系统(VFS)深度解析
  • 系统思考:aAI产业链的啤酒游戏
  • 天文知识--北斗七星
  • 网站建设后需要交费吗网络营销专业培训机构
  • vue3获取循环中的ref
  • 11.11 脚本网页 跳棋
  • uni-app:实现快递的节点功能
  • 使用虚拟机搭建简易K8s实验环境的一种方法
  • 构建下一代临床AI诊断系统:基于CPC-Bench基准的工程化路线图(上)
  • Electron 原理浅析
  • Git 命令全攻略:从入门到实战
  • React底层原理
  • tensorflow 图像分类 之四
  • GEO优化:针对生成式AI内容分发逻辑的四大维度优化策略
  • 做a手机视频在线观看网站网页程序开发采购
  • USP-Ulysses+Ring-Attention技术原理
  • mirage 接口mock 拦截
  • flash网站设计教程北京建设网上银行
  • 高端网站建设设计公司有哪些wordpress网站迁移后插件
  • redis进阶 - 底层数据结构
  • 【自然语言处理】语料库:自然语言处理的基石资源与发展全景
  • Rust: 量化策略回测与简易线程池构建、子线程执行观测