Closed bsdcpp closed 2 months ago
start.sh,在清楚shellcrash_dns shellcrash shellcrash_out shellcrash_dns_out引用前清不掉,另外,建议麻烦能不能在iptables后面加个-w,防止和其他正在处理的含有iptables的脚本冲突,谢谢。
stop_firewall() { #还原防火墙配置 #获取局域网host地址 getlanip #重置iptables相关规则 ckcmd iptables && { #清理shellcrash自建表 for table in shellcrash_dns shellcrash shellcrash_out shellcrash_dns_out; do iptables -w -t nat -F $table 2>/dev/null iptables -w -t nat -X $table 2>/dev/null done for table in shellcrash_mark shellcrash_mark_out; do iptables -w -t mangle -F $table 2>/dev/null iptables -w -t mangle -X $table 2>/dev/null done #dns iptables -w -t nat -D PREROUTING -p tcp --dport 53 -j shellcrash_dns 2>/dev/null iptables -w -t nat -D PREROUTING -p udp --dport 53 -j shellcrash_dns 2>/dev/null iptables -w -t nat -D OUTPUT -p udp --dport 53 -j shellcrash_dns_out 2>/dev/null iptables -w -t nat -D OUTPUT -p tcp --dport 53 -j shellcrash_dns_out 2>/dev/null #redir
目前我本地用脚本修改,请大佬看看有没有问题:
sc_replace_iptables_w() { grep 'iptables -w' ${1} > /dev/null || sed -i 's/iptables\s\+-j/iptables -w -j/g;s/iptables\s\+-t/iptables -w -t/g;s/iptables\s\+-I/iptables -w -I/g;s/iptables\s\+-A/iptables -w -A/g;s/iptables\s\+-D/iptables -w -D/g;' ${1} grep 'ip6tables -w' ${1} > /dev/null || sed -i 's/ip6tables\s\+-t/ip6tables -w -t/g;s/ip6tables\s\+-I/ip6tables -w -I/g;s/ip6tables\s\+-A/ip6tables -w -A/g;s/ip6tables\s\+-D/ip6tables -w -D/g;' ${1} }
4个文件需要处理 sc_replace_iptables_w start.sh sc_replace_iptables_w menu.sh sc_replace_iptables_w update.sh sc_replace_iptables_w init.sh
同样的情况,请求增加-w参数
这个清不掉的原因是什么?添加-w能解决问题吗?
是两个问题,清不掉应该是顺序问题,就是这个表里的shellcrash_dns链还有引用,导致删不掉,应该放到下面去就可以了。 -w主要是某些系统定时任务也在随机执行iptables任务,碰到一起就会报错,加了-w(wait的意思吧)就会等待另一个释放锁后执行。
Verify steps
Description
start.sh,在清楚shellcrash_dns shellcrash shellcrash_out shellcrash_dns_out引用前清不掉,另外,建议麻烦能不能在iptables后面加个-w,防止和其他正在处理的含有iptables的脚本冲突,谢谢。
目前我本地用脚本修改,请大佬看看有没有问题: