在 CentOS 8 中,打开的 tcp/8443 端口未显示在防火墙命令中?

在 CentOS 8 中,打开的 tcp/8443 端口未显示在防火墙命令中?

我在 CentOS 8 中打开了端口 8443,使用firewall-cmd如下方法:

sudo firewall-cmd --zone=public --permanent --add-port=8443/tcp

但是,虽然该命令成功运行,但当我运行 时它并没有显示在开放端口列表中sudo firewall-cmd --list-all。这是怎么回事?端口到底打开了没有?

public (active)
  target: default
  icmp-block-inversion: no
  interfaces: eno1
  sources: 
  services: cockpit dhcpv6-client ftp http https samba ssh telnet
  ports: 3389/tcp 23/tcp 9090/tcp 9091/tcp 9000/tcp 5222/tcp 4443/tcp 10000/udp 5443/tcp 8888/tcp 3000/tcp 1443/tcp
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 

答案1

添加规则后,您没有重新加载 FirewallD。

您正确添加了命令,但您需要重新加载 FirewallD 才能接收新规则。

我在 MacBook 上的 Vagrant VirtualBox VM 中加载了 CentOS 8 并进行了测试。在 VM 构建完成后,我首次登录时启用了 FirewallD 并运行了以下命令:

sudo firewall-cmd --list-all

这是我得到的输出;请注意端口区域是空白的:

public
  target: default
  icmp-block-inversion: no
  interfaces: 
  sources: 
  services: cockpit dhcpv6-client ssh
  ports: 
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 

然后我运行了您使用的确切命令,如下所示:

sudo firewall-cmd --zone=public --permanent --add-port=8443/tcp

检查sudo firewall-cmd --list-all显示的输出与上述完全相同。然后我重新加载了 FirewallD 规则,如下所示:

sudo firewall-cmd --reload

再次检查sudo firewall-cmd --list-all,端口 8443 已按要求列出:

public
  target: default
  icmp-block-inversion: no
  interfaces: 
  sources: 
  services: cockpit dhcpv6-client ssh
  ports: 8443/tcp
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules:

相关内容