~优化小闪存模式占用

~为singboxp内核入站添加always_resolve_udp适配
~dns模式及启动提示文字调整
~内核更新界面增加版本号显示
~修复网络错误时检测更新界面会陷入死循环的bug
This commit is contained in:
juewuy
2024-02-07 13:08:57 +08:00
parent f4ebf101f5
commit 4a2db9c481
4 changed files with 18 additions and 11 deletions

View File

@@ -901,6 +901,7 @@ getcore(){ #下载内核文件
[ -n "$(pidof CrashCore)" ] && ${CRASHDIR}/start.sh stop #停止内核服务防止内存不足 [ -n "$(pidof CrashCore)" ] && ${CRASHDIR}/start.sh stop #停止内核服务防止内存不足
[ -f ${TMPDIR}/core_new.tar.gz ] && { [ -f ${TMPDIR}/core_new.tar.gz ] && {
mkdir -p ${TMPDIR}/core_tmp mkdir -p ${TMPDIR}/core_tmp
[ "$BINDIR" = "$TMPDIR" ] && rm -rf ${TMPDIR}/CrashCore #小闪存模式防止空间不足
tar -zxf "${TMPDIR}/core_new.tar.gz" ${tar_para} -C ${TMPDIR}/core_tmp/ tar -zxf "${TMPDIR}/core_new.tar.gz" ${tar_para} -C ${TMPDIR}/core_tmp/
for file in $(find ${TMPDIR}/core_tmp 2>/dev/null);do for file in $(find ${TMPDIR}/core_tmp 2>/dev/null);do
[ -f $file ] && [ -n "$(echo $file | sed 's#.*/##' | grep -iE '(CrashCore|sing|meta|mihomo|clash|premium)')" ] && mv -f $file ${TMPDIR}/core_new [ -f $file ] && [ -n "$(echo $file | sed 's#.*/##' | grep -iE '(CrashCore|sing|meta|mihomo|clash|premium)')" ] && mv -f $file ${TMPDIR}/core_new
@@ -1077,16 +1078,16 @@ setcore(){ #内核选择菜单
echo -e "\033[36m如需本地上传请将二进制文件上传至 /tmp 目录后重新运行crash命令\033[0m" echo -e "\033[36m如需本地上传请将二进制文件上传至 /tmp 目录后重新运行crash命令\033[0m"
echo ----------------------------------------------- echo -----------------------------------------------
echo -e "1 \033[43;30m Clash \033[0m \033[32m占用低\033[0m" echo -e "1 \033[43;30m Clash \033[0m \033[32m占用低\033[0m"
echo -e " (开源基础内核) \033[33m不支持Tun、Rule-set等\033[0m" echo -e " >>\033[32m$clash_v \033[33m不支持Tun、Rule-set等\033[0m"
echo -e " 说明文档: \033[36;4mhttps://lancellc.gitbook.io\033[0m" echo -e " 说明文档: \033[36;4mhttps://lancellc.gitbook.io\033[0m"
echo -e "2 \033[43;30m SingBox \033[0m \033[32m支持全面占用低\033[0m" echo -e "2 \033[43;30m SingBox \033[0m \033[32m支持全面占用低\033[0m"
echo -e " (sing-box主干) \033[33m不支持providers\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 " 说明文档: \033[36;4mhttps://sing-box.sagernet.org\033[0m"
echo -e "3 \033[43;30m Mihomo \033[0m \033[32m多功能支持全面\033[0m" echo -e "3 \033[43;30m Mihomo \033[0m \033[32m多功能支持全面\033[0m"
echo -e " (Meta/Mihomo) \033[33m内存占用较高\033[0m" echo -e " >>\033[32m$meta_v \033[33m内存占用较高\033[0m"
echo -e " 说明文档: \033[36;4mhttps://wiki.metacubex.one\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" echo -e "4 \033[43;30m SingBoxP \033[0m \033[32m支持ssr、providers、dns并发……\033[0m"
echo -e " (sing-box分支) \033[33mPuerNya分支版本\033[0m" echo -e " >>\033[32m$singboxp_v \033[33mPuerNya分支版本\033[0m"
echo -e " 说明文档: \033[36;4mhttps://sing-box.sagernet.org\033[0m" echo -e " 说明文档: \033[36;4mhttps://sing-box.sagernet.org\033[0m"
echo ----------------------------------------------- echo -----------------------------------------------
echo -e "5 \033[36m自定义内核\033[0m $custcore" echo -e "5 \033[36m自定义内核\033[0m $custcore"
@@ -1599,6 +1600,7 @@ setserver(){
read -p "请输入对应字母或数字 > " num read -p "请输入对应字母或数字 > " num
case $num in case $num in
0) 0)
checkupdate=false
;; ;;
[1-99]) [1-99])
url_id_new=$(grep -E "^1|$release_name" ${CRASHDIR}/configs/servers.list | sed -n ""$num"p" | awk '{print $1}') url_id_new=$(grep -E "^1|$release_name" ${CRASHDIR}/configs/servers.list | sed -n ""$num"p" | awk '{print $1}')
@@ -1703,7 +1705,7 @@ checkupdate(){
else else
echo -e "\033[31m检查更新失败请尝试切换其他安装源\033[0m" echo -e "\033[31m检查更新失败请尝试切换其他安装源\033[0m"
setserver setserver
checkupdate [ "$checkupdate" = false ] || checkupdate
fi fi
rm -rf ${TMPDIR}/version_new rm -rf ${TMPDIR}/version_new
} }

View File

@@ -159,7 +159,7 @@ errornum(){
echo -e "\033[31m请输入正确的字母或数字\033[0m" echo -e "\033[31m请输入正确的字母或数字\033[0m"
} }
startover(){ startover(){
echo -e "\033[32m$corename服务已启动\033[0m" echo -e "\033[32m服务已启动\033[0m"
echo -e "请使用 \033[4;36mhttp://$host$hostdir\033[0m 管理内置规则" echo -e "请使用 \033[4;36mhttp://$host$hostdir\033[0m 管理内置规则"
if [ "$redir_mod" = "纯净模式" ];then if [ "$redir_mod" = "纯净模式" ];then
echo ----------------------------------------------- echo -----------------------------------------------
@@ -1204,6 +1204,7 @@ normal_set(){ #基础设置
} }
set_dns_mod(){ set_dns_mod(){
[ "$dns_mod" = mix ] && [ "$crashcore" != singbox -o "$crashcore" != singboxp ] && dns_mod=redir_host
echo ----------------------------------------------- echo -----------------------------------------------
echo -e "当前DNS运行模式为\033[47;30m $dns_mod \033[0m" echo -e "当前DNS运行模式为\033[47;30m $dns_mod \033[0m"
echo -e "\033[33m切换模式后需要手动重启服务以生效\033[0m" echo -e "\033[33m切换模式后需要手动重启服务以生效\033[0m"
@@ -1213,7 +1214,7 @@ normal_set(){ #基础设置
echo -e " 2 redir_host模式\033[32m兼容性更好\033[0m" echo -e " 2 redir_host模式\033[32m兼容性更好\033[0m"
echo -e " 需搭配加密DNS使用" echo -e " 需搭配加密DNS使用"
echo -e " 3 mix混合模式 \033[32m内部realip外部fakeip\033[0m" echo -e " 3 mix混合模式 \033[32m内部realip外部fakeip\033[0m"
echo -e " 限singbox1.8.0+内核!" echo -e " 依赖geosite-cn.(db/srs)数据库"
echo " 0 返回上级菜单" echo " 0 返回上级菜单"
read -p "请输入对应数字 > " num read -p "请输入对应数字 > " num
if [ -z "$num" ]; then if [ -z "$num" ]; then
@@ -1232,7 +1233,7 @@ normal_set(){ #基础设置
echo ----------------------------------------------- echo -----------------------------------------------
echo -e "\033[36m已设为 $dns_mod 模式!!\033[0m" echo -e "\033[36m已设为 $dns_mod 模式!!\033[0m"
elif [ "$num" = 3 ]; then elif [ "$num" = 3 ]; then
if [ "$crashcore" = singbox -o "$crashcore" = singboxp ] && [ "$core_v" != '1.7.8' ];then if [ "$crashcore" = singbox -o "$crashcore" = singboxp ];then
dns_mod=mix dns_mod=mix
setconfig dns_mod $dns_mod setconfig dns_mod $dns_mod
echo ----------------------------------------------- echo -----------------------------------------------

View File

@@ -672,10 +672,10 @@ EOF
[ -n "$authentication" ] && { [ -n "$authentication" ] && {
username=$(echo $authentication | awk -F ':' '{print $1}') #混合端口账号密码 username=$(echo $authentication | awk -F ':' '{print $1}') #混合端口账号密码
password=$(echo $authentication | awk -F ':' '{print $2}') password=$(echo $authentication | awk -F ':' '{print $2}')
userpass=', "users": [{ "username": "'$username'", "password": "'$password'" }]' userpass='"users": [{ "username": "'$username'", "password": "'$password'" }], '
} }
[ "$sniffer" = "已启用" ] && sniffer=true || sniffer=false #域名嗅探配置 [ "$sniffer" = "已启用" ] && sniffer=true || sniffer=false #域名嗅探配置
[ "$crashcore" = singboxp ] && always_resolve_udp='"always_resolve_udp": true,'
cat > ${TMPDIR}/jsons/inbounds.json <<EOF cat > ${TMPDIR}/jsons/inbounds.json <<EOF
{ {
"inbounds": [ "inbounds": [
@@ -684,7 +684,8 @@ EOF
"tag": "mixed-in", "tag": "mixed-in",
"listen": "0.0.0.0", "listen": "0.0.0.0",
"listen_port": $mix_port, "listen_port": $mix_port,
"sniff": false$userpass $userpass
"sniff": false
}, { }, {
"type": "direct", "type": "direct",
"tag": "dns-in", "tag": "dns-in",
@@ -702,6 +703,7 @@ EOF
"tag": "tproxy-in", "tag": "tproxy-in",
"listen": "::", "listen": "::",
"listen_port": $tproxy_port, "listen_port": $tproxy_port,
$always_resolve_udp
"sniff": true, "sniff": true,
"sniff_override_destination": $sniffer "sniff_override_destination": $sniffer
} }
@@ -719,6 +721,7 @@ EOF
"inet4_address": "198.18.0.0/16", "inet4_address": "198.18.0.0/16",
"auto_route": false, "auto_route": false,
"stack": "system", "stack": "system",
$always_resolve_udp
"sniff": true, "sniff": true,
"sniff_override_destination": $sniffer "sniff_override_destination": $sniffer
} }

View File

@@ -50,6 +50,7 @@ update_core(){ #自动更新内核
[ -n "$(pidof CrashCore)" ] && ${CRASHDIR}/start.sh stop #停止内核服务防止内存不足 [ -n "$(pidof CrashCore)" ] && ${CRASHDIR}/start.sh stop #停止内核服务防止内存不足
[ -f ${TMPDIR}/core_new.tar.gz ] && { [ -f ${TMPDIR}/core_new.tar.gz ] && {
mkdir -p ${TMPDIR}/core_new mkdir -p ${TMPDIR}/core_new
[ "$BINDIR" = "$TMPDIR" ] && rm -rf ${TMPDIR}/CrashCore #小闪存模式防止空间不足
tar -zxf "${TMPDIR}/core_new.tar.gz" ${tar_para} -C ${TMPDIR}/core_new/ tar -zxf "${TMPDIR}/core_new.tar.gz" ${tar_para} -C ${TMPDIR}/core_new/
for file in $(find ${TMPDIR}/core_tmp 2>/dev/null);do for file in $(find ${TMPDIR}/core_tmp 2>/dev/null);do
[ -f $file ] && [ -n "$(echo $file | sed 's#.*/##' | grep -iE '(CrashCore|sing|meta|mihomo|clash|premium)')" ] && mv -f $file ${TMPDIR}/core_new [ -f $file ] && [ -n "$(echo $file | sed 's#.*/##' | grep -iE '(CrashCore|sing|meta|mihomo|clash|premium)')" ] && mv -f $file ${TMPDIR}/core_new