使用 firewalld 打开端口似乎不起作用

mik*_*ana 9 ssh iptables firewalld

我已将 sshd 配置为位于不同的端口上。我已经使用 firewalld 打开了那个端口:

$ sudo firewall-cmd --zone=public --add-port=22000/tcp --permanent    
Run Code Online (Sandbox Code Playgroud)

列表规则显示端口 22000 是开放的:

$ sudo firewall-cmd --permanent --zone=public --list-all
public (default)
  interfaces:
  sources:
  services: dhcpv6-client ssh
  ports: 22000/tcp 
  masquerade: no
  forward-ports: 
  icmp-blocks:
  rich rules:
Run Code Online (Sandbox Code Playgroud)

但是我无法从远程主机登录到端口 22000。如果我使用 iptables,它可以工作:

$ sudo iptables -I INPUT -p tcp --dport 22000 -j ACCEPT
Run Code Online (Sandbox Code Playgroud)

我现在可以登录了。但是如何使用 Firewalld 打开端口

编辑:根据要求:

 $ sudo firewall-cmd --get-default-zone
 public
Run Code Online (Sandbox Code Playgroud)

和:

 $ firewall-cmd --get-active-zones
 public
  interfaces: eth0 eth1
Run Code Online (Sandbox Code Playgroud)

小智 8

请参阅firewalld 文档

永久选项 --permanent 可用于永久设置选项。这些更改不会立即生效,只有在服务重启/重新加载或系统重启后才会生效。如果没有 --permanent 选项,更改将只是运行时配置的一部分。

使用--permanent选项时,您应该重新加载配置firewall-cmd --reload
这是因为--permanent选项将更改写入保存的配置,而不是运行配置。