From 31feb0c3f55ac3a259cff1a5876299b4dc549aa6 Mon Sep 17 00:00:00 2001 From: juewuy Date: Mon, 27 Jan 2025 21:23:57 +0800 Subject: [PATCH] =?UTF-8?q?~=E4=BC=98=E5=8C=96=E5=86=85=E6=A0=B8=E5=90=8D?= =?UTF-8?q?=E7=A7=B0=E6=98=BE=E7=A4=BA=20~=E8=87=AA=E5=AE=9A=E4=B9=89?= =?UTF-8?q?=E8=A7=84=E5=88=99=E5=88=97=E8=A1=A8=E5=A2=9E=E5=8A=A0=E8=BF=9B?= =?UTF-8?q?=E7=A8=8B=E5=90=8D=E5=8C=B9=E9=85=8D=EF=BC=8Cmeta=E5=86=85?= =?UTF-8?q?=E6=A0=B8=E5=A2=9E=E5=8A=A0=E8=BF=9B=E7=A8=8B=E5=8C=B9=E9=85=8D?= =?UTF-8?q?=E8=87=AA=E5=8A=A8=E5=BC=80=E5=85=B3=E6=9C=BA=E5=88=B6=20~?= =?UTF-8?q?=E4=BF=AE=E5=A4=8Dmeta=E5=86=85=E6=A0=B8mix=E6=A8=A1=E5=BC=8FGo?= =?UTF-8?q?oglePlay=E4=B8=8B=E8=BD=BD=E5=A4=B1=E8=B4=A5=E7=9A=84=E9=97=AE?= =?UTF-8?q?=E9=A2=98=20~=E4=BF=AE=E5=A4=8D=E4=B8=80=E4=BA=9B=E6=97=A0?= =?UTF-8?q?=E6=84=8F=E4=B9=89=E7=9A=84=E6=8A=A5=E9=94=99=E6=8F=90=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- scripts/menu.sh | 2 +- scripts/start.sh | 20 ++++++++++++++------ scripts/webget.sh | 8 ++++---- 3 files changed, 19 insertions(+), 11 deletions(-) diff --git a/scripts/menu.sh b/scripts/menu.sh index 01b7a7c..d46a39d 100644 --- a/scripts/menu.sh +++ b/scripts/menu.sh @@ -95,7 +95,7 @@ ckstatus() { #检测系统端口占用 checkport fi - [ "$crashcore" = singbox -o "$crashcore" = singboxp ] && corename=SingBox || corename=Clash + corename=$(echo $crashcore | sed 's/singbox/SingBox/' | sed 's/clash/Clash/' | sed 's/meta/Mihomo/') [ "$firewall_area" = 5 ] && corename='转发' [ -f ${TMPDIR}/debug.log -o -f ${CRASHDIR}/debug.log -a -n "$PID" ] && auto="\033[33m并处于debug状态!\033[0m" #输出状态 diff --git a/scripts/start.sh b/scripts/start.sh index a0063ab..1408578 100644 --- a/scripts/start.sh +++ b/scripts/start.sh @@ -240,7 +240,7 @@ check_clash_config() { #检查clash配置文件 cat "$TMPDIR"/proxies.yaml sleep 1 echo ----------------------------------------------- - echo "请尝试使用其他生成方式!" + echo "请尝试使用6-2或者6-3的方式生成配置文件!" exit 1 fi rm -rf "$TMPDIR"/proxies.yaml @@ -274,7 +274,7 @@ check_singbox_config() { #检查singbox配置文件 if ! grep -qE '"(socks|http|shadowsocks(r)?|vmess|trojan|wireguard|hysteria(2)?|vless|shadowtls|tuic|ssh|tor|outbound_providers)"' "$core_config_new"; then echo ----------------------------------------------- logger "获取到了配置文件【$core_config_new】,但似乎并不包含正确的节点信息!" 31 - echo "请尝试使用其他生成方式!" + echo "请尝试使用6-2或者6-3的方式生成配置文件!" exit 1 fi #检测并去除无效策略组 @@ -380,7 +380,7 @@ modify_yaml() { #修饰clash配置文件 exper='experimental: {ignore-resolve-fail: true, interface-name: en0}' #Meta内核专属配置 [ "$crashcore" = 'meta' ] && { - [ "$redir_mod" != "纯净模式" ] && find_process='find-process-mode: "off"' + [ "$redir_mod" != "纯净模式" ] && [ -z "$(grep 'PROCESS' "$CRASHDIR"/yamls/*.yaml)" ] && find_process='find-process-mode: "off"' } #dns配置 [ -z "$(cat "$CRASHDIR"/yamls/user.yaml 2>/dev/null | grep '^dns:')" ] && { @@ -399,7 +399,14 @@ dns: EOF if [ "$dns_mod" != "redir_host" ]; then cat "$CRASHDIR"/configs/fake_ip_filter "$CRASHDIR"/configs/fake_ip_filter.list 2>/dev/null | grep -v '#' | sed "s/^/ - '/" | sed "s/$/'/" >>"$TMPDIR"/dns.yaml - [ "$dns_mod" = "mix" ] && echo ' - "rule-set:geosite-cn"' >>"$TMPDIR"/dns.yaml #插入cn过滤规则 + [ "$dns_mod" = "mix" ] && { + #插入过滤规则 + cat >>"$TMPDIR"/dns.yaml <>"$TMPDIR"/dns.yaml #使用fake-ip模拟redir_host fi @@ -836,6 +843,7 @@ EOF sed 's/- GEOSITE,/{ "geosite": [ "/g' | sed 's/- IP-CIDR6,/{ "ip_cidr": [ "/g' | sed 's/- DOMAIN,/{ "domain": [ "/g' | + sed 's/- PROCESS-NAME,/{ "process_name": [ "/g' | sed 's/,/" ], "outbound": "/g' | sed 's/$/" },/g' | sed '1i\{ "route": { "rules": [ ' | @@ -1448,9 +1456,9 @@ start_firewall() { #路由规则总入口 [ "$firewall_mod" = 'iptables' ] && start_iptables [ "$firewall_mod" = 'nftables' ] && start_nftables #修复部分虚拟机dns查询失败的问题 - [ "$firewall_area" = 2 -o "$firewall_area" = 3 ] && [ -z "$(grep 'nameserver 127.0.0.1' /etc/resolv.conf 2>/dev/null)" ] && { + [ "$firewall_area" = 2 -o "$firewall_area" = 3 ] && [ -z "$(grep 'nameserver 127.0.0.1' /etc/resolv.conf 2>/dev/null)" ] && [ -w /etc/resolv.conf ] && { 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 + sed -i "$line i\nameserver 127.0.0.1 #shellcrash-dns-repair" /etc/resolv.conf 2>/dev/null } #openwrt使用dnsmasq转发DNS if [ "$dns_redir" = "已开启" -a "$firewall_area" -le 3 -a "$dns_no" != "已禁用" ]; then diff --git a/scripts/webget.sh b/scripts/webget.sh index f4ba4e7..35d79f5 100644 --- a/scripts/webget.sh +++ b/scripts/webget.sh @@ -103,7 +103,7 @@ setrules(){ #自定义规则 0) ;; 1) - rule_type="DOMAIN-SUFFIX DOMAIN-KEYWORD IP-CIDR SRC-IP-CIDR DST-PORT SRC-PORT GEOIP GEOSITE IP-CIDR6 DOMAIN" + rule_type="DOMAIN-SUFFIX DOMAIN-KEYWORD IP-CIDR SRC-IP-CIDR DST-PORT SRC-PORT GEOIP GEOSITE IP-CIDR6 DOMAIN PROCESS-NAME" rule_group="DIRECT#REJECT$(get_rule_group)" set_rule_type setrules @@ -1484,7 +1484,7 @@ setcore(){ #内核选择菜单 echo -e "2 \033[43;30m SingBox \033[0m: \033[32m支持全面占用低\033[0m" echo -e " >>\033[32m$singbox_v \033[33m不支持providers\033[0m" echo -e " 说明文档: \033[36;4mhttps://sing-box.sagernet.org\033[0m" - echo -e "3 \033[43;30m Meta \033[0m: \033[32m多功能,支持全面\033[0m" + echo -e "3 \033[43;30m Mihomo \033[0m: \033[32m(原meta内核)支持全面\033[0m" echo -e " >>\033[32m$meta_v \033[33m占用略高,GeoSite可能不兼容华硕固件\033[0m" echo -e " 说明文档: \033[36;4mhttps://wiki.metacubex.one\033[0m" echo -e "4 \033[43;30m SingBoxP \033[0m: \033[32m支持ssr、providers、dns并发……\033[0m" @@ -2273,8 +2273,8 @@ userguide(){ } && echo "已成功开启ipv4转发,如未正常开启,请手动重启设备!" || echo "开启失败!请自行谷歌查找当前设备的开启方法!" fi #禁止docker启用的net.bridge.bridge-nf-call-iptables - sysctl -w net.bridge.bridge-nf-call-iptables=0 - sysctl -w net.bridge.bridge-nf-call-ip6tables=0 + sysctl -w net.bridge.bridge-nf-call-iptables=0 > /dev/null 2>&1 + sysctl -w net.bridge.bridge-nf-call-ip6tables=0 > /dev/null 2>&1 elif [ "$num" = 2 ];then setconfig redir_mod "Redir模式" [ -n "$(echo $cputype | grep -E "linux.*mips.*")" ] && setconfig crashcore "clash"