当防火墙运行时,我无法访问我的网站。当我关闭它时,它就可以正常工作。
我使用了这些规则将端口 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 命令本身并没有帮助。