~增加对自定义保留地址段的输入校验机制

~尝试修复部分情况下安装时未正确初始化的bug
~修复nftables-redir模式下会错误运行tproxy模式的bug
This commit is contained in:
juewuy 2024-10-20 10:52:27 +08:00
parent 530c0c4ce6
commit d8a9ce9ec3
3 changed files with 10 additions and 8 deletions

View File

@ -61,8 +61,8 @@ gettar(){
echo 开始解压文件! echo 开始解压文件!
mkdir -p $CRASHDIR > /dev/null mkdir -p $CRASHDIR > /dev/null
tar -zxf '/tmp/ShellCrash.tar.gz' -C $CRASHDIR/ || tar -zxf '/tmp/ShellCrash.tar.gz' --no-same-owner -C $CRASHDIR/ tar -zxf '/tmp/ShellCrash.tar.gz' -C $CRASHDIR/ || tar -zxf '/tmp/ShellCrash.tar.gz' --no-same-owner -C $CRASHDIR/
if [ -f $CRASHDIR/init.sh ];then if [ -s $CRASHDIR/init.sh ];then
. $CRASHDIR/init.sh >/dev/null . $CRASHDIR/init.sh >/dev/null || $echo "\033[33m初始化失败请尝试本地安装\033[0m"
else else
rm -rf /tmp/ShellCrash.tar.gz rm -rf /tmp/ShellCrash.tar.gz
$echo "\033[33m文件解压失败\033[0m" $echo "\033[33m文件解压失败\033[0m"
@ -203,8 +203,8 @@ echo -----------------------------------------------
gettar gettar
echo ----------------------------------------------- echo -----------------------------------------------
echo ShellCrash 已经安装成功! echo ShellCrash 已经安装成功!
[ "$profile" = "~/.bashrc" ] && echo "请执行【source ~/.bashrc &> /dev/null】命令以加载环境变量" [ "$profile" = "~/.bashrc" ] && echo "请执行【. ~/.bashrc &> /dev/null】命令以加载环境变量"
[ -n "$(ls -l /bin/sh|grep -oE 'zsh')" ] && echo "请执行【source ~/.zshrc &> /dev/null】命令以加载环境变量" [ -n "$(ls -l /bin/sh|grep -oE 'zsh')" ] && echo "请执行【. ~/.zshrc &> /dev/null】命令以加载环境变量"
echo ----------------------------------------------- echo -----------------------------------------------
$echo "\033[33m输入\033[30;47m crash \033[0;33m命令即可管理\033[0m" $echo "\033[33m输入\033[30;47m crash \033[0;33m命令即可管理\033[0m"
echo ----------------------------------------------- echo -----------------------------------------------

View File

@ -808,12 +808,14 @@ setfirewall(){ #防火墙设置
[ -z "$reserve_ipv4" ] && reserve_ipv4="0.0.0.0/8 10.0.0.0/8 127.0.0.0/8 100.64.0.0/10 169.254.0.0/16 172.16.0.0/12 192.168.0.0/16 224.0.0.0/4 240.0.0.0/4" [ -z "$reserve_ipv4" ] && reserve_ipv4="0.0.0.0/8 10.0.0.0/8 127.0.0.0/8 100.64.0.0/10 169.254.0.0/16 172.16.0.0/12 192.168.0.0/16 224.0.0.0/4 240.0.0.0/4"
echo -e "当前网段:\033[36m$reserve_ipv4\033[0m" echo -e "当前网段:\033[36m$reserve_ipv4\033[0m"
echo -e "\033[33m地址必须是空格分隔错误的设置可能导致网络回环或启动报错请务必谨慎\033[0m" echo -e "\033[33m地址必须是空格分隔错误的设置可能导致网络回环或启动报错请务必谨慎\033[0m"
read -p "请输入 > " reserve_ipv4 read -p "请输入 > " text
if [ -n "$reserve_ipv4" ];then if [ -n "$(echo $text |grep -E "(((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])/(3[0-2]|[1-2]?[0-9]))( +|$)+"
)" ];then
reserve_ipv4="$text"
echo -e "已将保留地址网段设为:\033[32m$reserve_ipv4\033[0m" echo -e "已将保留地址网段设为:\033[32m$reserve_ipv4\033[0m"
setconfig reserve_ipv4 "\'$reserve_ipv4\'" setconfig reserve_ipv4 "\'$reserve_ipv4\'"
else else
echo -e "\033[31m操作已取消!\033[0m" echo -e "\033[31m输入有误,操作已取消!\033[0m"
fi fi
sleep 1 sleep 1
setfirewall setfirewall

View File

@ -1325,7 +1325,7 @@ start_nftables() { #nftables配置总入口
[ "$lan_proxy" = true ] && start_nft_route prerouting prerouting nat -100 [ "$lan_proxy" = true ] && start_nft_route prerouting prerouting nat -100
[ "$local_proxy" = true ] && start_nft_route output output nat -100 [ "$local_proxy" = true ] && start_nft_route output output nat -100
} }
[ "$redir_mod" = "Tproxy模式" ] && modprobe nft_tproxy >/dev/null 2>&1 || lsmod 2>/dev/null | grep -q nft_tproxy && { [ "$redir_mod" = "Tproxy模式" ] && ( modprobe nft_tproxy >/dev/null 2>&1 || lsmod 2>/dev/null | grep -q nft_tproxy ) && {
JUMP="meta l4proto {tcp, udp} mark set $fwmark tproxy to :$tproxy_port" #跳转劫持的具体命令 JUMP="meta l4proto {tcp, udp} mark set $fwmark tproxy to :$tproxy_port" #跳转劫持的具体命令
[ "$lan_proxy" = true ] && start_nft_route prerouting prerouting filter -150 [ "$lan_proxy" = true ] && start_nft_route prerouting prerouting filter -150
[ "$local_proxy" = true ] && { [ "$local_proxy" = true ] && {