ShellCrash介绍

功能简介:

~通过管理脚本在Shell环境下便捷使用
~支持在Shell环境下管理
~支持在线导入订阅及配置链接
~支持配置定时任务,支持配置文件定时更新
~支持在线安装及使用本地网页面板管理内置规则
~支持路由模式、本机模式等多种模式切换
~支持在线更新

设备支持:

~支持各种基于OpenWrt或使用OpenWrt二次定制开发的路由器设备
~支持各种运行标准Linux系统(如Debian/CenOS/Armbian等)的设备
~兼容Padavan固件(保守模式)、潘多拉固件以及华硕/梅林固件
~兼容各类使用Linux内核定制开发的各类型设备

使用方式:

~确认设备已经开启SSH并获取root权限(带GUI桌面的Linux设备可使用自带终端安装)
~使用SSH连接工具(如putty,JuiceSSH,系统自带终端等)路由器或Linux设备的SSH管理界面或终端界面

~之后在SSH界面执行目标设备对应的安装命令,并按照后续提示完成安装

在线安装:

如无法连接或出现SSL连接错误,请尝试更换各种不同的安装源!

~标准Linux设备安装:

1
2
3
sudo -i #切换到root用户,如果需要密码,请输入密码
bash #如已处于bash环境可跳过
export url='https://fastly.jsdelivr.net/gh/juewuy/ShellCrash@master' && wget -q --no-check-certificate -O /tmp/install.sh $url/install.sh && bash /tmp/install.sh && source /etc/profile &> /dev/null

或者

1
2
3
sudo -i #切换到root用户,如果需要密码,请输入密码
bash #如已处于bash环境可跳过
export url='https://gh.jwsc.eu.org/master' && bash -c "$(curl -kfsSl $url/install.sh)" && source /etc/profile &> /dev/null

~路由设备使用curl安装

1
2
#GitHub源(可能需要代理)
export url='https://raw.githubusercontent.com/juewuy/ShellCrash/master' && sh -c "$(curl -kfsSl $url/install.sh)" && source /etc/profile &> /dev/null

或者

1
2
#jsDelivrCDN源
export url='https://fastly.jsdelivr.net/gh/juewuy/ShellCrash@master' && sh -c "$(curl -kfsSl $url/install.sh)" && source /etc/profile &> /dev/null

或者

1
2
#作者私人源
export url='https://gh.jwsc.eu.org/master' && sh -c "$(curl -kfsSl $url/install.sh)" && source /etc/profile &> /dev/null

~路由设备使用wget安装

1
2
#GitHub源(可能需要代理)
export url='https://raw.githubusercontent.com/juewuy/ShellCrash/master' && wget -q --no-check-certificate -O /tmp/install.sh $url/install.sh && sh /tmp/install.sh && source /etc/profile &> /dev/null

或者

1
2
#jsDelivrCDN源
export url='https://fastly.jsdelivr.net/gh/juewuy/ShellCrash@master' && wget -q --no-check-certificate -O /tmp/install.sh $url/install.sh && sh /tmp/install.sh && source /etc/profile &> /dev/null

~老旧设备使用低版本wge安装

1
2
#作者私人http内测源
export url='http://t.jwsc.eu.org' && wget -q -O /tmp/install.sh $url/install.sh && sh /tmp/install.sh && source /etc/profile &> /dev/null

~虚拟机/Docker环境安装:

虚拟机或Docker环境推荐使用Alpine镜像安装

这里以Docker为例(其他虚拟机请自行查找安装Alpine镜像安装教程)

1
2
3
4
5
6
7
8
9
10
#注意,以下命令请分步执行!
#Docker一键启动Alpine镜像
docker run -d --name ShellCrash alpine sleep infinity
#进入容器内sh环境
docker exec -it ShellCrash sh
#安装必要依赖
apk add curl
apk add nftables
#执行安装命令
export url='https://fastly.jsdelivr.net/gh/juewuy/ShellCrash@master' && sh -c "$(curl -kfsSl $url/install.sh)" && source /etc/profile &> /dev/null

使用脚本:

安装完成管理脚本后,执行如下命令使用~

1
2
Clash 		#进入对话
Clash -h #帮助列表

运行时的额外依赖

大部分的设备/系统都已经预装了以下的大部分依赖,使用时如无影响可以无视之

1
2
3
4
5
curl/wget		必须		全部缺少时无法在线安装及更新,无法使用节点保存功能
iptables/nftables 重要 缺少时只能使用纯净模式
crontab 较低 缺少时无法启用定时任务功能
net-tools 极低 缺少时无法正常检测端口占用
ubus/iproute-doc 极低 缺少时无法正常获取本机host地址

2. ShellCrash 配置

① 连接 SSH 后执行 crash 命令打开 ShellCrash 配置脚本
首次打开会进入新手引导,选择 1 路由设备配置局域网透明代理
启用推荐的自动任务配置
根据需要是否启用软固化(此处选择 1)

  • 注:解锁 SSH 时已成功启用软固化

根据需要是否选择 1 确认导入配置文件(此处选择 0)
根据需要是否选择 1 立即启动 clash 服务(此处选择 0)

  • 注:强烈建议选择 0,待以下配置完成后,最后一步启动 clash 服务

② 此时脚本会自动“发现可用的内核文件”,选择 1 加载,后选择 5 Sing-Box-Puer 内核

③ 进入主菜单-> 2 内核功能设置-> 1 切换 Clash 运行模式,选择 5 Tproxy 模式

  • 注:有“Tproxy 模式”就选“Tproxy 模式”,否则推荐选“混合模式”,宽带在 300M 内推荐 Tun 模式

进入 2 切换 DNS 运行模式,选择 3 mix 混合模式;根据自身需要开启 8 CN_IP 绕过内核

④ 进入主菜单-> 4 内核启动设置,选择 1 允许 ShellCrash 开机启动(若重启路由器后服务没有自动运行,可“设置自启延时”为 30 秒)
⑤ 进入主菜单-> 7 内核进阶设置-> 1 ipv6 相关,若机场节点支持 IPv6,可开启 2 ipv6 透明代理;根据自身需要开启 4 CNIP 绕过内核

进入 6 配置内置 DNS 服务,选择 7 禁用 DNS 劫持

  • 注:若单独使用 ShellCrash,请不要禁用 DNS 劫持

⑥ 进入主菜单-> 9 更新/卸载-> 7 切换安装源及安装版本,选择 b 切换至公测版->1 Jsdelivr_CDN源,追求新版可选择 c 切换至开发版(可能不稳定)

4 安装本地 Dashboard 面板,选择 3 安装 MetaXD 面板
注:

    1. 启动 Clash 服务后,面板 Dashboard 访问链接为:http://172.16.1.3:9999/ui
    1. 初次打开需要添加“后端地址:http://172.16.1.3:9999

⑦ 进入主菜单-> 6 导入配置文件
注:

导入配置文件完成后不要启动 sing-box 服务
⑧ 导入 DNS 配置 dns.json
连接 SSH 后执行如下命令:
注:

    1. 由于 ShellCrash 采用的 DNS 模式为 mixShellCrash 传给 AdGuardHome 的国外域名对应 IP 为假 IP,会导致 AdGuardHome 检查更新和下载更新 DNS 黑名单时失败
    1. dns.json 中添加了 AdGuardHome 常用域名,包括:adguardteam.github.io(AdGuardHome 自带 DNS 黑名单下载域名)、adrules.top(常用广告拦截下载域名)、anti-ad.net(常用广告拦截下载域名)和 static.adtidy.org(AdGuardHome 检查更新域名)并使用国内 DNS 进行解析

1
2
3
4
# 规则集使用的是 geodata 方案
curl -o $CRASHDIR/jsons/dns.json -L https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box/geodata-dns.json
# 规则集使用的是 ruleset 方案
curl -o $CRASHDIR/jsons/dns.json -L https://cdn.jsdelivr.net/gh/DustinWin/ruleset_geodata@sing-box/ruleset-dns.json

导入 DNS 配置文件完成后,启动 sing-box 服务即可
ShellCrash 配置成功!

拓展:
ShellCrash 常用命令

    1. 打开配置:
1
crash
    1. 启动服务:
1
$CRASHDIR/start.sh start
    1. 停止服务:
1
$CRASHDIR/start.sh stop
    1. 重启服务:
1
$CRASHDIR/start.sh restart
    1. 更新订阅:
1
$CRASHDIR/start.sh update_config
    1. 查看帮助和说明:
1
crash -h

3. ShellCrash 升级

进入主菜单-> 9 更新/卸载,查看“管理脚本”、“内核文件”和“数据库文件”有无新版本,有则选择对应的数字进行升级即可

4. ShellCrash 卸载

① 通过脚本命令进行卸载(任选一)
连接 SSH 后,直接粘贴如下所有命令:

1
$CRASHDIR/start.sh stop && crash -u

② 通过 ShellCrash 配置进行卸载(任选一)
进入主菜单-> 9 更新/卸载,选择 9 卸载 ShellCrash

二 、 AdGuardHome 安装和配置

1. AdGuardHome 安装

1、手动安装方法

① 将下载的AdGuardHome_linux_amd64.tar.gz 文件解压到桌面.
② 连接SSH将解压得到的AdGuardHome拖入/opt/根目录下或者/etc/根目录下即可

  • I. 若不想放在/etc/ 目录下,其他任何目录都行
  • II. 新建后连接 SSH,直接粘贴如下所有命令:
1
2
3
4
5
6
7
chmod +x /etc/AdGuardHome/AdGuardHome
/etc/AdGuardHome/AdGuardHome -s install
/etc/AdGuardHome/AdGuardHome -s start
iptables -t nat -A PREROUTING -p tcp --dport 53 -j REDIRECT --to-ports 5353
iptables -t nat -A PREROUTING -p udp --dport 53 -j REDIRECT --to-ports 5353
ip6tables -t nat -A PREROUTING -p tcp --dport 53 -j REDIRECT --to-ports 5353
ip6tables -t nat -A PREROUTING -p udp --dport 53 -j REDIRECT --to-ports 5353

2、自动脚本安装

SSH连接到Linux后输入如下指令一键安装即可

curl方式安装,请运行以下命令:curl

1
curl -s -S -L https://raw.githubusercontent.com/AdguardTeam/AdGuardHome/master/scripts/install.sh | sh -s -- -v

wget方式安装,请运行以下命令:wget

1
wget --no-verbose -O - https://raw.githubusercontent.com/AdguardTeam/AdGuardHome/master/scripts/install.sh | sh -s -- -v

ferch方式要安装,请运行以下命令:fetch

1
fetch -o - https://raw.githubusercontent.com/AdguardTeam/AdGuardHome/master/scripts/install.sh | sh -s -- -v

该脚本还接受一些选项:

  • -c <channel>使用指定频道;
  • -r重新安装 AdGuard Home;
  • -u卸载 AdGuard Home;
  • -v用于详细输出。

请注意,选项和是互斥的。-r``-u

AdGuardHome 安装成功!

2. AdGuardHome 配置

① 打开网页 http://172.16.1.3:3000
点击“开始配置”,“网页管理界面端口”输入“3000”,“DNS 服务器端口”输入“5353”
“身份认证”设置用户名和密码
② 点击“打开仪表盘”后输入刚才设置的用户名和密码“登入”,就可以进入 AdGuardHome 管理页面
③ 进入设置->常规设置
取消勾选“启用日志”并点击“保存”(日志非常占用空间)
④ 进入设置 ->DNS 设置
“上游 DNS 服务器”设置为 127.0.0.1:1053,并选择“并行请求”

  • 注:此时页面右下角可能会弹出报错信息,但不用理会

“后备 DNS 服务器”设置为:

1
2
h3://dns.alidns.com/dns-query
https://doh.pub/dns-query

“Bootstrap DNS 服务器”设置为:

1
2
223.5.5.5
1.12.12.12

直接点击“应用”即可

“速度限制”输入“0”,勾选“启用 EDNS 客户端子网”和“启用 DNSSEC”,然后点击下方的“保存”

勾选“乐观缓存”,并点击“保存”

⑤ 进入过滤器->DNS 黑名单->添加黑名单->从列表中选择,推荐勾选“区域”里的“CHN: anti-AD”,然后点击“保存”

  • 注:若下载不稳定或失败,可手动将下载地址 URL 更改为 https://anti-ad.net/easylist.txt

  • 注:添加较大规则时,点击“保存”按钮后需要加载很长时间,如果页面右下角弹出报错信息,直接刷新页面就可以看到该规则已经添加成功

添加成功

AdGuardHome 配置成功!

拓展:
AdGuardHome 常用命令

    1. 启动服务:
1
/opt/AdGuardHome/AdGuardHome -s start
    1. 停止服务:
1
/opt/AdGuardHome/AdGuardHome -s stop
    1. 重启服务:
1
/opt/AdGuardHome/AdGuardHome -s restart
    1. 显示当前服务状态:
1
/opt/AdGuardHome/AdGuardHome -s status

3. AdGuardHome 升级

为了节约lxc模板内存,请按照如下步骤进行操作:
① 执行《六、 1. ① ② ③ ④ ⑤(替换)》的操作步骤
② 连接 SSH,直接粘贴如下所有命令:

1
chmod +x /opt/AdGuardHome/AdGuardHome && /data/AdGuardHome/AdGuardHome -s restart

4. AdGuardHome 卸载

① 删除开机启动项
执行《六、 1. ⑥》的操作步骤,删除添加的内容:

1
2
3
4
5
6
/opt/AdGuardHome/AdGuardHome -s install
/opt/AdGuardHome/AdGuardHome -s start
iptables -t nat -A PREROUTING -p tcp --dport 53 -j REDIRECT --to-ports 5353
iptables -t nat -A PREROUTING -p udp --dport 53 -j REDIRECT --to-ports 5353
ip6tables -t nat -A PREROUTING -p tcp --dport 53 -j REDIRECT --to-ports 5353
ip6tables -t nat -A PREROUTING -p udp --dport 53 -j REDIRECT --to-ports 5353

并保存
② 卸载 AdGuardHome
连接 SSH,直接粘贴如下所有命令:

1
2
3
4
5
/opt/AdGuardHome/AdGuardHome -s stop && /data/AdGuardHome/AdGuardHome -s uninstall && rm -rf /opt/AdGuardHome
iptables -t nat -A PREROUTING -p tcp --dport 53 -j REDIRECT --to-ports 53
iptables -t nat -A PREROUTING -p udp --dport 53 -j REDIRECT --to-ports 53
ip6tables -t nat -A PREROUTING -p tcp --dport 53 -j REDIRECT --to-ports 53
ip6tables -t nat -A PREROUTING -p udp --dport 53 -j REDIRECT --to-ports 53

③ 重启Linux 虚拟机

三、 效果图

1. IPv6 效果

2. BT 下载效果

UDP 连接正常,使用的是移动 500M 带宽
[

3. ShellCrash 效果

使用的是移动 300M 带宽

4. AdGuardHome 效果