我已将 sshd 配置为使用其他端口。我已使用 Firewalld 打开该端口:
$ sudo firewall-cmd --zone=public --add-port=22000/tcp --permanent
列表规则显示端口 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:
但是我无法从远程主机登录到端口 22000。如果我使用 iptables,它可以工作:
$ sudo iptables -I INPUT -p tcp --dport 22000 -j ACCEPT
我现在可以登录了。但是如何使用 Firewalld 打开端口?
编辑:根据要求:
$ sudo firewall-cmd --get-default-zone
public
和:
$ firewall-cmd --get-active-zones
public
interfaces: eth0 eth1
答案1
查看防火墙文档:
永久选项 --permanent 可用于永久设置选项。这些更改不会立即生效,只有在服务重新启动/重新加载或系统重新启动后才会生效。如果没有 --permanent 选项,更改将只是运行时配置的一部分。
当使用--permanent
选项时,您应该通过重新加载配置,firewall-cmd --reload
这是因为--permanent
选项将更改写入已保存的配置,而不是正在运行的配置。