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"