Linux - firewall-cmd 命令添加端口规则不生效排查

文章目录

  • [linux 防火墙 firewall-cmd 命令详解](#linux 防火墙 firewall-cmd 命令详解)
  • 问题排查

linux 防火墙 firewall-cmd 命令详解

基本语法

bash 复制代码
firewall-cmd --zone=zone-name --add-service=service-name --permanent

命令参数

bash 复制代码
--zone:指定要添加服务的区域名称。
--add-service:指定要添加的服务名称。
--permanent:指定该规则永久生效。

除此之外,还有其他可选参数:

bash 复制代码
--list-all:列出所有规则。
--reload:重新加载防火墙规则。
--permanent:将规则保存到永久配置中,以便系统重启后仍然有效。
--delete-service:删除服务。
--list-services:列出当前系统中所有可用服务。
--add-source:添加一个 IP 或 IP 段。
--remove-source:删除一个 IP 或 IP 段。
--list-sources:列出所有已添加的 IP 或 IP 段。
--add-port:添加端口。
--remove-port:删除端口。
--list-ports:列出所有已添加的端口。
--add-rich-rule:添加一个更加复杂的规则。
--query-service:查询服务是否可用。
--get-zones:列出所有可用的区域。
--zone=zone-name:指定一个区域。

示例

添加端口:

bash 复制代码
firewall-cmd --zone=public --add-port=80/tcp --permanent

删除端口:

bash 复制代码
firewall-cmd --zone=public --remove-port=80/tcp --permanent

添加服务:

bash 复制代码
firewall-cmd --zone=public --add-service=http --permanent

删除服务:

bash 复制代码
firewall-cmd --zone=public --remove-service=http --permanent

列出所有规则:

bash 复制代码
firewall-cmd --list-all

重新加载防火墙规则:

bash 复制代码
firewall-cmd --reload

列出所有可用的服务:

bash 复制代码
firewall-cmd --list-services

注意事项

  • 在修改防火墙规则时,建议使用 --permanent 选项,以便该规则在系统重启后仍然有效

问题排查

如果 firewall-cmd 命令添加端口规则后没有生效,有几个可能的原因,你可以检查以下步骤:

  1. 确保 firewalld 在运行 :首先确保 firewalld 服务正在运行。你可以使用以下命令检查它的状态:

    bash 复制代码
    sudo systemctl status firewalld

    如果 firewalld 没有运行,你可以使用 systemctl 启动它:

    bash 复制代码
    sudo systemctl start firewalld
  2. 检查所使用的区域(zone) :确保你正在为正确的防火墙区域(zone)添加端口规则。如果你的系统不是使用 public 区域,请将区域名称更改为适合你的情况。可以使用 firewall-cmd --get-default-zone 命令来查看默认的区域。

  3. 确认规则已添加:执行以下命令检查是否已成功添加规则:

    bash 复制代码
    sudo firewall-cmd --list-ports

    这会列出当前配置的端口列表。确保你的端口已列在其中。

  4. 重新加载防火墙规则:在添加或更改规则后,需要重新加载防火墙规则以使更改生效。可以使用以下命令进行重新加载:

    bash 复制代码
    sudo firewall-cmd --reload
  5. 检查其他防火墙规则 :有时候,防火墙规则之间可能存在冲突。确保没有其他规则阻止了端口 9092 的流量。你可以使用 sudo firewall-cmd --list-all 命令查看所有规则,检查是否存在任何与所需规则冲突的规则。

如果你仍然遇到问题,可能需要检查系统日志以获取更多信息,以便进一步诊断问题。通常,firewalld 的错误信息可以在 /var/log/firewalld/var/log/messages 中找到。

最后,如果你使用的是特定的防火墙区域或有定制需求,确保你的 firewall-cmd 命令中的区域名称和端口号是正确的。如果你有更多的详细信息或特定的错误消息,可以提供它们以便更好地帮助你解决问题。

https://docs.diladele.com/tutorials/transparently_filtering_https_centos/firewall.html

相关推荐
广东大榕树信息科技有限公司3 分钟前
如何通过动环监控系统提升机房安全与管理效率?
运维·网络·物联网·国产动环监控系统·动环监控系统
怪我冷i3 分钟前
wsl Ubuntu切换中科大源
linux·windows·ubuntu·ai编程·ai写作
FenceRain3 分钟前
Linux 使用脚本删除文件
linux
QT 小鲜肉3 分钟前
【Linux命令大全】001.文件管理之chgrp命令(实操篇)
android·linux·运维·笔记
qq13267029403 分钟前
grafana 未授权访问漏洞设置iptables指定IP访问,拒绝其他所有IP
linux·服务器·网络·iptables·防火墙策略
春日见4 分钟前
ubuntu以前可以联网,突然无法上网了
linux·服务器·ubuntu·debug
曹牧5 分钟前
内部服务错误500
服务器·开发语言
gaize12135 分钟前
一台服务器能做什么
服务器·云计算
ID_180079054738 分钟前
淘宝关键词搜索 API 系列 数据返回参考(附解析与实战)
java·服务器·前端
鸠摩智首席音效师9 分钟前
如何在 CentOS 上设置 Apache Worker MPM ?
linux·centos·apache