要使用firewall-cmd限制只允许指定IP访问,您可以使用--add-rich-rule选项创建一个富规则

sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" port port="80" protocol="tcp" source address="192.168.1.100" accept'

在这个示例中,我们创建了一个富规则,允许IP地址为192.168.1.100的设备通过TCP协议访问端口80。请根据您的实际需求修改IP地址、端口和协议。

如果您需要允许多个IP地址访问,可以为每个IP地址创建一个富规则。例如,允许192.168.1.100192.168.1.101访问端口80

sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" port port="80" protocol="tcp" source address="192.168.1.100" accept'
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" port port="80" protocol="tcp" source address="192.168.1.101" accept'

完成后,别忘了重新加载防火墙配置以使更改生效:

sudo firewall-cmd --reload

现在,只有指定的IP地址可以访问相应的端口。其他IP地址将无法访问该端口。

移除当前

要移除当前的防火墙规则,您可以使用firewall-cmd--remove-rich-rule选项

sudo firewall-cmd --permanent --remove-rich-rule='rule family="ipv4" port port="80" protocol="tcp" source address="192.168.1.100" accept'

在这个示例中,我们移除了之前创建的允许IP地址192.168.1.100通过TCP协议访问端口80的富规则。请根据您的实际需求修改IP地址、端口和协议。

如果您需要移除多个富规则,可以为每个富规则执行--remove-rich-rule命令。例如,移除允许192.168.1.100192.168.1.101访问端口80的富规则:

sudo firewall-cmd --permanent --remove-rich-rule='rule family="ipv4" port port="80" protocol="tcp" source address="192.168.1.100" accept'
sudo firewall-cmd --permanent --remove-rich-rule='rule family="ipv4" port port="80" protocol="tcp" source address="192.168.1.101" accept'

完成后,别忘了重新加载防火墙配置以使更改生效:

sudo firewall-cmd --reload

现在,指定的IP地址将无法访问相应的端口。如果需要,您可以随时添加新的富规则来允许其他IP地址访问该端口。