ShellCrash 搭配 AdGuardHome 安装和配置教程-sing-box 方案
ShellCrash介绍
功能简介:
~通过管理脚本在Shell环境下便捷使用
~支持在Shell环境下管理
~支持在线导入订阅及配置链接
~支持配置定时任务,支持配置文件定时更新
~支持在线安装及使用本地网页面板管理内置规则
~支持路由模式、本机模式等多种模式切换
~支持在线更新
设备支持:
~支持各种基于OpenWrt或使用OpenWrt二次定制开发的路由器设备
~支持各种运行标准Linux系统(如Debian/CenOS/Armbian等)的设备
~兼容Padavan固件(保守模式)、潘多拉固件以及华硕/梅林固件
~兼容各类使用Linux内核定制开发的各类型设备
使用方式:
~确认设备已经开启SSH并获取root权限(带GUI桌面的Linux设备可使用自带终端安装)
~使用SSH连接工具(如putty,JuiceSSH,系统自带终端等)路由器或Linux设备的SSH管理界面或终端界面
~之后在SSH界面执行目标设备对应的安装命令,并按照后续提示完成安装
在线安装:
(如无法连接或出现SSL连接错误,请尝试更换各种不同的安装源!)
~标准Linux设备安装:
1 | sudo -i #切换到root用户,如果需要密码,请输入密码 |
或者
1 | sudo -i #切换到root用户,如果需要密码,请输入密码 |
~路由设备使用curl安装:
1 | #GitHub源(可能需要代理) |
或者
1 | #jsDelivrCDN源 |
或者
1 | #作者私人源 |
~路由设备使用wget安装:
1 | #GitHub源(可能需要代理) |
或者
1 | #jsDelivrCDN源 |
~老旧设备使用低版本wge安装:
1 | #作者私人http内测源 |
~虚拟机/Docker环境安装:
虚拟机或Docker环境推荐使用Alpine镜像安装
这里以Docker为例(其他虚拟机请自行查找安装Alpine镜像安装教程)
1 | #注意,以下命令请分步执行! |
使用脚本:
安装完成管理脚本后,执行如下命令使用~
1 | Clash #进入对话 |
运行时的额外依赖:
大部分的设备/系统都已经预装了以下的大部分依赖,使用时如无影响可以无视之
1 | curl/wget 必须 全部缺少时无法在线安装及更新,无法使用节点保存功能 |
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 面板
注:
-
- 启动 Clash 服务后,面板 Dashboard 访问链接为:http://172.16.1.3:9999/ui
-
- 初次打开需要添加“后端地址:
http://172.16.1.3:9999
- 初次打开需要添加“后端地址:
⑦ 进入主菜单-> 6 导入配置文件
注:
-
- 选择 1 在线生成 singboxp 配置文件,粘贴你的订阅链接并回车,输入“1”并再次回车即可
-
- 选择 2 在线获取完整配置文件,需要一定的 sing-box 知识储备,请查看《[生成带有自定义策略组和规则的 sing-box 配置文件直链-geodata 方案](https://github.com/DustinWin/clash_singbox-tutorials/blob/main/教程合集/sing-box/基础篇/生成带有自定义出站和规则的 sing-box 配置文件直链-geodata 方案.md)》或《[生成带有自定义策略组和规则的 sing-box 配置文件直链-ruleset 方案](https://github.com/DustinWin/clash_singbox-tutorials/blob/main/教程合集/sing-box/基础篇/生成带有自定义出站和规则的 sing-box 配置文件直链-ruleset 方案.md)》
导入配置文件完成后不要启动 sing-box 服务
⑧ 导入 DNS 配置 dns.json
连接 SSH 后执行如下命令:
注:
-
- 由于 ShellCrash 采用的 DNS 模式为
mix
,ShellCrash 传给 AdGuardHome 的国外域名对应 IP 为假 IP,会导致 AdGuardHome 检查更新和下载更新 DNS 黑名单时失败
- 由于 ShellCrash 采用的 DNS 模式为
-
- dns.json 中添加了 AdGuardHome 常用域名,包括:
adguardteam.github.io
(AdGuardHome 自带 DNS 黑名单下载域名)、adrules.top
(常用广告拦截下载域名)、anti-ad.net
(常用广告拦截下载域名)和static.adtidy.org
(AdGuardHome 检查更新域名)并使用国内 DNS 进行解析
- dns.json 中添加了 AdGuardHome 常用域名,包括:
1 | # 规则集使用的是 geodata 方案 |
导入 DNS 配置文件完成后,启动 sing-box 服务即可
ShellCrash 配置成功!
拓展:
ShellCrash 常用命令
-
- 打开配置:
1 | crash |
-
- 启动服务:
1 | $CRASHDIR/start.sh start |
-
- 停止服务:
1 | $CRASHDIR/start.sh stop |
-
- 重启服务:
1 | $CRASHDIR/start.sh restart |
-
- 更新订阅:
1 | $CRASHDIR/start.sh update_config |
-
- 查看帮助和说明:
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 | chmod +x /etc/AdGuardHome/AdGuardHome |
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 | h3://dns.alidns.com/dns-query |
“Bootstrap DNS 服务器”设置为:
1 | 223.5.5.5 |
直接点击“应用”即可
“速度限制”输入“0”,勾选“启用 EDNS 客户端子网”和“启用 DNSSEC”,然后点击下方的“保存”
勾选“乐观缓存”,并点击“保存”
⑤ 进入过滤器->DNS 黑名单->添加黑名单->从列表中选择,推荐勾选“区域”里的“CHN: anti-AD”,然后点击“保存”
- 注:若下载不稳定或失败,可手动将下载地址 URL 更改为
https://anti-ad.net/easylist.txt
- 注:添加较大规则时,点击“保存”按钮后需要加载很长时间,如果页面右下角弹出报错信息,直接刷新页面就可以看到该规则已经添加成功
添加成功
AdGuardHome 配置成功!
拓展:
AdGuardHome 常用命令
-
- 启动服务:
1 | /opt/AdGuardHome/AdGuardHome -s start |
-
- 停止服务:
1 | /opt/AdGuardHome/AdGuardHome -s stop |
-
- 重启服务:
1 | /opt/AdGuardHome/AdGuardHome -s restart |
-
- 显示当前服务状态:
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 | /opt/AdGuardHome/AdGuardHome -s install |
并保存
② 卸载 AdGuardHome
连接 SSH,直接粘贴如下所有命令:
1 | /opt/AdGuardHome/AdGuardHome -s stop && /data/AdGuardHome/AdGuardHome -s uninstall && rm -rf /opt/AdGuardHome |
③ 重启Linux 虚拟机
三、 效果图
1. IPv6 效果
2. BT 下载效果
UDP 连接正常,使用的是移动 500M 带宽
[
3. ShellCrash 效果
使用的是移动 300M 带宽