删除后 Firewall-cmd 直接规则仍会保留

删除后 Firewall-cmd 直接规则仍会保留

当防火墙运行时,我无法访问我的网站。当我关闭它时,它就可以正常工作。

我使用了这些规则将端口 8443 重定向至常规 443。

firewall-cmd --zone=public --permanent --direct --add-rule ipv4 nat OUTPUT 0 -p tcp -o lo --dport 443 -j REDIRECT --to-ports 8443

firewall-cmd --zone=public --permanent --direct --add-rule ipv4 nat PREROUTING 0 -p tcp --dport 443 -j REDIRECT --to-ports 8443

我不再需要它们了(运行 Apache 代理)。我尝试删除它们

firewall-cmd --zone=public --permanent --direct --remove-rule ipv4 nat OUTPUT 0 -p tcp -o lo --dport 443 -j REDIRECT --to-ports 8443

firewall-cmd --zone=public --permanent --direct --remove-rule ipv4 nat PREROUTING 0 -p tcp --dport 443 -j REDIRECT --to-ports 8443

规则没有消失。我在 iptables 中找到了它们。我刷新 nat iptables使用命令:

iptables -t nat -F  

刷新后我可以连接到网站。当我重新启动计算机时,规则仍然存在,并且网页不可用。如何永久删除规则?命令是否正确?

防火墙cmd配置:

root@my_hostname]# firewall-cmd --list-all --zone=public

public (active)
  target: default
  icmp-block-inversion: no
  interfaces: eth0
  sources:
  services: ssh https http
  ports:  443/tcp 44443/tcp 8443/tcp 8081/tcp
  protocols:
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:

答案1

解决了:执行 iptables-flush 并再次运行命令后,规则被永久删除。奇怪的是,运行firewall-cmd --remove 命令本身并没有帮助。

相关内容