From 13faff0bb6157e5d717476036e6964b609db6bfc Mon Sep 17 00:00:00 2001 From: juewuy Date: Mon, 15 Dec 2025 21:06:22 +0800 Subject: [PATCH] =?UTF-8?q?~=E6=8F=90=E4=BE=9B=E6=9B=B4=E5=A5=BD=E7=9A=84?= =?UTF-8?q?=E5=AE=B9=E5=99=A8=E5=85=BC=E5=AE=B9=E6=80=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- scripts/init.sh | 29 +++++++++++++++++++---------- scripts/start.sh | 2 +- 2 files changed, 20 insertions(+), 11 deletions(-) diff --git a/scripts/init.sh b/scripts/init.sh index 1730b8e0..4cdb733d 100644 --- a/scripts/init.sh +++ b/scripts/init.sh @@ -1,7 +1,7 @@ #!/bin/sh # Copyright (C) Juewuy -version=1.9.3beta7fix +version=1.9.3beta8 setdir() { dir_avail() { @@ -159,12 +159,12 @@ setconfig() { #脚本配置工具 fi } #特殊固件识别及标记 -[ -f "/etc/storage/started_script.sh" ] && { - systype=Padavan #老毛子固件 +[ -f "/etc/storage/started_script.sh" ] && { #老毛子固件 + systype=Padavan initdir='/etc/storage/started_script.sh' } -[ -d "/jffs" ] && { - systype=asusrouter #华硕固件 +[ -d "/jffs" ] && { #华硕固件 + systype=asusrouter [ -f "/jffs/.asusrouter" ] && initdir='/jffs/.asusrouter' [ -d "/jffs/scripts" ] && initdir='/jffs/scripts/nat-start' #华硕启用jffs @@ -173,7 +173,8 @@ setconfig() { #脚本配置工具 } [ -f "/data/etc/crontabs/root" ] && systype=mi_snapshot #小米设备 [ -w "/var/mnt/cfg/firewall" ] && systype=ng_snapshot #NETGEAR设备 - +#容器内环境 +grep -qE '/(docker|lxc|kubepods|crio|containerd)/' /proc/1/cgroup || [ -f /run/.containerenv ] || [ -f /.dockerenv ] && systype=container #检查环境变量 [ -z "$CRASHDIR" -a -n "$clashdir" ] && CRASHDIR=$clashdir [ -z "$CRASHDIR" -a -d /tmp/SC_tmp ] && setdir @@ -290,7 +291,6 @@ if [ "$systype" = "mi_snapshot" -o "$systype" = "ng_snapshot" ]; then uci set firewall.ShellCrash.path="$CRASHDIR/misnap_init.sh" uci set firewall.ShellCrash.enabled='1' uci commit firewall - setconfig systype $systype else rm -rf ${CRASHDIR}/misnap_init.sh fi @@ -303,6 +303,18 @@ fi #华硕下载大师启动额外设置 [ -f "$dir/asusware.arm/etc/init.d/S50downloadmaster" ] && [ -z "$(grep 'ShellCrash' $dir/asusware.arm/etc/init.d/S50downloadmaster)" ] && sed -i "/^PATH=/a\\$CRASHDIR/start.sh init & #ShellCrash初始化脚本" "$dir/asusware.arm/etc/init.d/S50downloadmaster" +#容器环境额外设置 +[ "$systype" = 'container' ] && { + setconfig userguide '1' + setconfig crashcore 'meta' + setconfig redir_mod "混合模式" + setconfig dns_mod 'mix' + setconfig firewall_area '1' + setconfig firewall_mod 'nftables' + setconfig start_old '已开启' + echo "$CRASHDIR/menu.sh" >> /etc/profile +} +setconfig systype $systype #删除临时文件 rm -rf /tmp/*rash*gz rm -rf /tmp/SC_tmp @@ -360,7 +372,4 @@ sed -i "s/redir_mod=Nft混合/redir_mod=Tproxy模式/g" $configpath sed -i "s/redir_mod=Tproxy混合/redir_mod=Tproxy模式/g" $configpath sed -i "s/redir_mod=纯净模式/firewall_area=4/g" $configpath -#清理路由器空间 -[ -d /data/etc_bak ] && rm -rf /data/etc_bak - echo -e "\033[32m脚本初始化完成,请输入\033[30;47m crash \033[0;33m命令开始使用!\033[0m" diff --git a/scripts/start.sh b/scripts/start.sh index bc6eae0c..de041770 100644 --- a/scripts/start.sh +++ b/scripts/start.sh @@ -1554,7 +1554,7 @@ start_firewall() { #路由规则总入口 [ "$firewall_mod" = 'iptables' ] && start_iptables [ "$firewall_mod" = 'nftables' ] && start_nftables #修复部分虚拟机dns查询失败的问题 - [ "$firewall_area" = 2 -o "$firewall_area" = 3 ] && [ -z "$(grep '127.0.0.1' /etc/resolv.conf 2>/dev/null)" ] && [ -w /etc/resolv.conf ] && { + [ "$firewall_area" = 2 -o "$firewall_area" = 3 ] && [ -z "$(grep '127.0.0.1' /etc/resolv.conf 2>/dev/null)" ] && [ "$systype" != 'container' ] && { line=$(grep -n 'nameserver' /etc/resolv.conf | awk -F: 'FNR==1{print $1}') sed -i "$line i\nameserver 127.0.0.1 #shellcrash-dns-repair" /etc/resolv.conf >/dev/null 2>&1 }