~修复虚拟机、容器代理会意外导致网络中断及IP访问无法连接等问题
This commit is contained in:
@@ -1401,14 +1401,17 @@ set_firewall_area() { #防火墙模式设置
|
|||||||
read -p "请输入对应数字 > " num
|
read -p "请输入对应数字 > " num
|
||||||
case $num in
|
case $num in
|
||||||
1)
|
1)
|
||||||
vm_redir=已开启
|
if [ -n "$vm_ipv4" ];then
|
||||||
|
vm_redir=已开启
|
||||||
|
else
|
||||||
|
echo -e "\033[33m请先运行容器再运行脚本或者手动设置网段\033[0m"
|
||||||
|
fi
|
||||||
;;
|
;;
|
||||||
2)
|
2)
|
||||||
echo -e "多个网段请用空格连接,可运行容器后使用【ip route】命令查看网段地址"
|
echo -e "多个网段请用空格连接,可运行容器后使用【ip route】命令查看网段地址"
|
||||||
echo -e "示例:\033[32m10.88.0.0/16 172.17.0.0/16\033[0m"
|
echo -e "示例:\033[32m10.88.0.0/16 172.17.0.0/16\033[0m"
|
||||||
read -p "请输入自定义网段 > " text
|
read -p "请输入自定义网段 > " text
|
||||||
[ -n "$text" ] && vm_ipv4=$text
|
[ -n "$text" ] && vm_ipv4=$text && vm_redir=已开启
|
||||||
vm_redir=已开启
|
|
||||||
;;
|
;;
|
||||||
3)
|
3)
|
||||||
vm_redir=未开启
|
vm_redir=未开启
|
||||||
@@ -1418,6 +1421,7 @@ set_firewall_area() { #防火墙模式设置
|
|||||||
esac
|
esac
|
||||||
setconfig vm_redir $vm_redir
|
setconfig vm_redir $vm_redir
|
||||||
setconfig vm_ipv4 "\'$vm_ipv4\'"
|
setconfig vm_ipv4 "\'$vm_ipv4\'"
|
||||||
|
sleep 1
|
||||||
set_firewall_area
|
set_firewall_area
|
||||||
;;
|
;;
|
||||||
*) errornum ;;
|
*) errornum ;;
|
||||||
|
|||||||
@@ -1282,6 +1282,7 @@ start_nft_route() { #nftables-route通用工具
|
|||||||
[ "$1" = 'prerouting_vm' ] && HOST_IP="$(echo $vm_ipv4 | sed 's/ /, /g')"
|
[ "$1" = 'prerouting_vm' ] && HOST_IP="$(echo $vm_ipv4 | sed 's/ /, /g')"
|
||||||
#添加新链
|
#添加新链
|
||||||
nft add chain inet shellcrash $1 { type $3 hook $2 priority $4 \; }
|
nft add chain inet shellcrash $1 { type $3 hook $2 priority $4 \; }
|
||||||
|
[ "$1" = 'prerouting_vm' ] && nft add rule inet shellcrash $1 ip saddr != {$HOST_IP} return #仅代理虚拟机流量
|
||||||
#过滤dns
|
#过滤dns
|
||||||
nft add rule inet shellcrash $1 tcp dport 53 return
|
nft add rule inet shellcrash $1 tcp dport 53 return
|
||||||
nft add rule inet shellcrash $1 udp dport 53 return
|
nft add rule inet shellcrash $1 udp dport 53 return
|
||||||
|
|||||||
Reference in New Issue
Block a user