使用防火墙命令打开了一个端口供公众使用,我想将此端口限制到特定的 IP,我在此找到了答案地点。
我使用以下命令打开它:
$ firewall-cmd --permanent --zone=public --add-port=10050/tcp
$ firewall-cmd --reload
现在,我想利用我找到的信息将此端口的访问限制到特定 IP 地址。我是否需要先将此端口从公共访问中删除?
或者我是否只需添加如下新规则就可以解决问题?
$ firewall-cmd --new-zone=special
$ firewall-cmd --permanent --zone=special --add-rich-rule='
rule family="ipv4"
source address=”123.1.1.1"
port protocol="tcp" port="10050" accept'
我尝试了以下方法:
$ firewall-cmd --zone=public --remove-port=10050/tcp
$ firewall-cmd --reload
但是当我运行以下命令时:
$ firewall-cmd --list-ports
10050/tcp
仍显示。
请理解我不太熟悉服务器端配置。
解决方案:不要忘记--运行时到永久
$ firewall-cmd --zone=public --remove-port=10050/tcp
$ firewall-cmd --runtime-to-permanent
$ firewall-cmd --reload
答案1
解决方案:不要忘记--运行时到永久
$ firewall-cmd --zone=public --remove-port=10050/tcp
$ firewall-cmd --runtime-to-permanent
$ firewall-cmd --reload
答案2
# firewall-cmd --zone=public --remove-port=12345/tcp --permanent
# firewall-cmd --reload
将 12345 替换为您要删除的端口。
答案3
按照以下步骤操作即可:
$ firewall-cmd --zone=public --remove-port=10050/tcp
$ firewall-cmd --runtime-to-permanent
$ firewall-cmd --reload
$ systemctl restart firewalld
$ firewall-cmd --zone=public --list-ports
答案4
在我的 Fedora 服务器上,所有这些答案都是错误的。我的解决方案是:
firewall-cmd --remove-port=8081/tcp --permanent
firewall-cmd --reload
firewall-cmd --list-all
请注意,该命令firewall-cmd --permanent --remove-port=8081/tcp
抛出了错误“防火墙命令:错误:无法识别的参数:–-remove-port=8081/tcp“。