This commit is contained in:
juewuy
2026-01-18 20:52:02 +08:00
parent 599dcdb15b
commit 966b59692e
7 changed files with 87 additions and 113 deletions

View File

@@ -551,7 +551,7 @@ EOF
sed -i '$s/},/}]}/' "$TMPDIR"/providers/outbounds_add.json
sed -i '$s/},/}]}/' "$TMPDIR"/providers/providers.json
#使用模版生成outbounds和rules模块
cat "$TMPDIR"/provider_temp_file | sed "s/{providers_tags}/$providers_tags/g" > "$TMPDIR"/providers/outbounds.json
cat "$TMPDIR"/provider_temp_file | sed "s/{providers_tags}/$providers_tags/g" | sed "s/\"providers_tags\"/$providers_tags/g" > "$TMPDIR"/providers/outbounds.json
rm -rf "$TMPDIR"/provider_temp_file
#调用内核测试
. "$CRASHDIR"/starts/check_core.sh && check_core && "$TMPDIR"/CrashCore merge "$TMPDIR"/config.json -C "$TMPDIR"/providers

View File

@@ -16,7 +16,7 @@ set_fw_filter() {
echo -e " 1 过滤非常用端口: \033[36m$common_ports\033[0m ————用于过滤P2P流量"
echo -e " 2 过滤局域网设备: \033[36m$mac_return\033[0m ————使用黑/白名单进行过滤"
echo -e " 3 过滤QUIC协议: \033[36m$quic_rj\033[0m ————优化视频性能"
echo -e " 4 过滤CN_IP(6)列表: \033[36m$cn_ip_route\033[0m ————优化性能不兼容Fake-ip"
echo -e " 4 过滤CN_IP(4/6)列表: \033[36m$cn_ip_route\033[0m ————优化性能"
echo -e " 5 自定义透明路由ipv4网段: 适合vlan等复杂网络环境"
echo -e " 6 自定义保留地址ipv4网段: 需要以保留地址为访问目标的环境"
echo "-----------------------------------------------"
@@ -105,80 +105,82 @@ set_fw_filter() {
}
set_common_ports() {
[ -z "$multiport" ] && multiport='22,80,443,8080,8443'
echo "-----------------------------------------------"
echo -e "\033[31m注意\033[0mMIX模式下所有fake-ip来源的非常用端口流量不会被过滤"
[ -n "$common_ports" ] &&
echo -e "当前放行端口:\033[36m$multiport\033[0m"
echo "-----------------------------------------------"
echo -e " 1 启用/关闭端口过滤: \033[36m$common_ports\033[0m"
echo -e " 2 添加放行端口"
echo -e " 3 移除指定放行端口"
echo -e " 4 重置默认放行端口"
echo -e " 5 重置为旧版放行端口"
echo -e " 0 返回上级菜单"
echo "-----------------------------------------------"
read -p "请输入对应数字 > " num
case $num in
1)
if [ "$common_ports" = ON ];then
common_ports=OFF
else
common_ports=ON
fi
setconfig common_ports "$common_ports"
set_common_ports
;;
2)
port_count=$(echo "$multiport" | awk -F',' '{print NF}' )
if [ "$port_count" -ge 15 ];then
echo -e "\033[31m最多支持设置放行15个端口请先减少一些\033[0m"
else
read -p "请输入要放行的端口号 > " port
if echo ",$multiport," | grep -q ",$port,";then
echo -e "\033[31m输入错误请勿重复添加\033[0m"
elif [ "$port" -lt 1 ] || [ "$port" -gt 65535 ]; then
echo -e "\033[31m输入错误请输入正确的数值(1-65535)\033[0m"
else
multiport=$(echo "$multiport,$port" | sed "s/^,//")
setconfig multiport "$multiport"
fi
fi
sleep 1
set_common_ports
;;
3)
read -p "请输入要移除的端口号 > " port
if echo ",$multiport," | grep -q ",$port,";then
if [ "$port" -lt 1 ] || [ "$port" -gt 65535 ]; then
echo -e "\033[31m输入错误请输入正确的数值(1-65535)\033[0m"
else
multiport=$(echo ",$multiport," | sed "s/,$port//; s/^,//; s/,$//")
setconfig multiport "$multiport"
fi
else
echo -e "\033[31m输入错误请输入已添加过的端口\033[0m"
fi
sleep 1
set_common_ports
;;
4)
multiport=''
setconfig multiport
sleep 1
set_common_ports
;;
5)
multiport='22,80,143,194,443,465,587,853,993,995,5222,8080,8443'
setconfig multiport "$multiport"
sleep 1
set_common_ports
;;
*)
errornum
;;
esac
while true; do
[ -z "$multiport" ] && multiport='22,80,443,8080,8443'
echo "-----------------------------------------------"
echo -e "\033[31m注意\033[0mMIX模式下所有fake-ip来源的非常用端口流量不会被过滤"
[ -n "$common_ports" ] &&
echo -e "当前放行端口:\033[36m$multiport\033[0m"
echo "-----------------------------------------------"
echo -e " 1 启用/关闭端口过滤: \033[36m$common_ports\033[0m"
echo -e " 2 添加放行端口"
echo -e " 3 移除指定放行端口"
echo -e " 4 重置默认放行端口"
echo -e " 5 重置为旧版放行端口"
echo -e " 0 返回上级菜单"
echo "-----------------------------------------------"
read -r -p "请输入对应数字 > " num
case "$num" in
"" | 0)
break
;;
1)
if [ "$common_ports" = ON ]; then
common_ports=OFF
else
common_ports=ON
fi
setconfig common_ports "$common_ports"
;;
2)
port_count=$(echo "$multiport" | awk -F',' '{print NF}')
if [ "$port_count" -ge 15 ]; then
echo -e "\033[31m最多支持设置放行15个端口请先减少一些\033[0m"
else
read -r -p "请输入要放行的端口号 > " port
if echo ",$multiport," | grep -q ",$port,"; then
echo -e "\033[31m输入错误请勿重复添加\033[0m"
elif [ "$port" -lt 1 ] || [ "$port" -gt 65535 ]; then
echo -e "\033[31m输入错误请输入正确的数值(1-65535)\033[0m"
else
multiport=$(echo "$multiport,$port" | sed "s/^,//")
setconfig multiport "$multiport"
fi
fi
sleep 1
;;
3)
read -r -p "请输入要移除的端口号 > " port
if echo ",$multiport," | grep -q ",$port,"; then
if [ "$port" -lt 1 ] || [ "$port" -gt 65535 ]; then
echo -e "\033[31m输入错误请输入正确的数值(1-65535)\033[0m"
else
multiport=$(echo ",$multiport," | sed "s/,$port//; s/^,//; s/,$//")
setconfig multiport "$multiport"
fi
else
echo -e "\033[31m输入错误请输入已添加过的端口\033[0m"
fi
sleep 1
;;
4)
multiport=''
setconfig multiport
sleep 1
;;
5)
multiport='22,80,143,194,443,465,587,853,993,995,5222,8080,8443'
setconfig multiport "$multiport"
sleep 1
;;
*)
errornum
sleep 1
;;
esac
done
}
set_cust_host_ipv4() { #自定义ipv4透明路由网段
[ -z "$replace_default_host_ipv4" ] && replace_default_host_ipv4="OFF"
. "$CRASHDIR"/starts/fw_getlanip.sh && getlanip

View File

@@ -7,7 +7,7 @@ running_status(){
if [ -n "$start_time" ]; then
time=$(($(date +%s) - start_time))
day=$((time / 86400))
[ "$day" = "0" ] && day='' || day="$day"
time=$(date -u -d @${time} +%H小时%M%S)
[ "$day" = "0" ] && day='' || day="$dayD"
time=$(date -u -d @${time} +%H:%M:%S)
fi
}

View File

@@ -14,35 +14,10 @@ FULL_EQ="=======================================================================
FULL_DASH="- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - "
# function to print content lines
# (using cursor jump with auto-wrapping and color handling)
# (using cursor jump)
content_line() {
local param="${1:-}"
# Calculate Available Text Width
local text_width=$((TABLE_WIDTH - 3))
# 1. Extract color codes (if present)
# Use sed to capture the leading ANSI Escape Code (\x1b is the hexadecimal representation of ESC)
# This line extracts \033[33m... from \033[33m and stores it in color_code
local color_code
color_code=$(echo -e "$param" | sed -n 's/^\(\x1b\[[0-9;]*m\).*/\1/p')
# 2. Generate Clean Text
# Use sed to remove all ANSI color codes, retaining only plain text content
# This allows fold to accurately count characters without premature line breaks
local clean_text
clean_text=$(echo -e "$param" | sed 's/\x1b\[[0-9;]*m//g')
if [ -z "$clean_text" ]; then
echo -e " \033[${TABLE_WIDTH}G||"
else
# 3. Insert line breaks in plain text
echo "$clean_text" | fold -s -w "$text_width" | while IFS= read -r line; do
# 4. Output Restructuring
# Force the addition of color_code to each line and append \033[0m to reset at the end
echo -e " ${color_code}${line}\033[0m\033[${TABLE_WIDTH}G||"
done
fi
echo -e " ${param}\033[${TABLE_WIDTH}G||"
}
# function to print sub content lines