防火墙开放端口

查看防火墙已开放端口:

firewall-cmd --list-all

防火墙开放端口:(开放端口后需重载防火墙):

firewall-cmd --zone=public --add-port=3306/tcp --permanent 

(开3306端口)

重启防火墙:

firewall-cmd --reload

<think>我们正在使用firewalld作为防火墙管理工具,根据引用内容,查看防火墙开放端口的方法如下: 1. 使用`firewall-cmd --list-ports`命令可以列出当前开放端口(默认作用域为public) 2. 如果需要指定区域(如public),可以使用`firewall-cmd --zone=public --list-ports` 3. 另外,还可以使用`firewall-cmd --list-all`来查看更详细的信息,包括服务、端口等 注意:以上命令需要root权限,因此通常需要加上sudo。 根据引用[5]:查看所有打开的端口:`firewall-cmd --zone=public --list-ports` 因此,我们可以这样操作: 步骤: 1. 打开终端 2. 输入命令:`sudo firewall-cmd --list-ports` 或者更详细地指定区域:`sudo firewall-cmd --zone=public --list-ports` 另外,如果需要查看所有区域的详细信息,可以使用:`sudo firewall-cmd --list-all-zones`,但这会输出大量信息。 通常,我们只需要查看当前激活区域的开放端口,所以使用`sudo firewall-cmd --list-ports`即可。 如果系统有多个区域,并且想知道当前活动的区域,可以使用:`sudo firewall-cmd --get-active-zones`(引用[5]) 所以,我们可以这样回答用户: 为了查看防火墙开放了哪些端口,请执行以下步骤: 1. 首先,确保防火墙服务正在运行(如果未运行,则没有开放端口): ```bash sudo systemctl status firewalld ``` 如果状态为`active (running)`,则继续。 2. 查看当前防火墙开放端口: ```bash sudo firewall-cmd --list-ports ``` 或者指定区域(通常默认区域为public): ```bash sudo firewall-cmd --zone=public --list-ports ``` 3. 如果想查看更详细的信息(包括服务、端口等),可以使用: ```bash sudo firewall-cmd --list-all ``` 4. 如果想知道哪些区域是活动的,可以使用: ```bash sudo firewall-cmd --get-active-zones ``` 注意:这些命令都是查看运行时配置,如果要查看永久配置,需要在命令中加入`--permanent`选项,例如: ```bash sudo firewall-cmd --permanent --list-ports ``` 但请注意,永久配置可能没有立即生效,需要重启防火墙或重新加载配置才能生效。 另外,如果防火墙没有运行,那么上述命令可能会没有输出或者提示错误。因此,请先确保防火墙服务是运行状态。 根据引用[2],我们可以先检查防火墙状态。 所以,完整步骤: 步骤1:检查防火墙状态 步骤2:根据状态决定是否继续(如果防火墙未运行,则没有开放端口) 步骤3:使用命令查看开放端口 示例输出: 如果开放了80/tcp和5866/tcp,则输出: ``` 80/tcp 5866/tcp ``` 如果没有任何开放端口,则输出为空。 注意:在CentOS/RHEL 7及以上版本中,默认使用firewalld,而之前的版本可能使用iptables。用户的问题中引用都是关于firewalld的,所以假设用户使用的是firewalld。 如果用户使用的是iptables,则需要使用不同的命令(如`iptables -L -n`),但根据引用内容,用户明确在问firewalld。 因此,我们按照firewalld来回答。 最后,生成相关问题。</think>### 如何查看防火墙开放端口 #### 一、查看防火墙开放端口的完整方法 1. **基础查看命令** 使用以下命令直接列出所有开放端口: ```bash sudo firewall-cmd --list-ports ``` ✅ 输出示例:`5866/tcp 3306/tcp 80/tcp` (显示所有已开放的TCP/UDP端口)[^1][^5] 2. **按区域查看**(更详细) 指定特定区域(如public)查看端口: ```bash sudo firewall-cmd --zone=public --list-ports ``` 🔍 适用场景:当服务器配置多区域策略时[^1][^3] 3. **查看完整防火墙配置** 获取包括服务、端口等完整信息: ```bash sudo firewall-cmd --list-all ``` 📝 输出包含: ``` ports: 5866/tcp 80/tcp services: ssh dhcpv6-client ``` 4. **验证永久规则** 检查永久生效的端口配置: ```bash sudo firewall-cmd --permanent --list-ports ``` ⚠️ 注意:不带`--permanent`仅显示临时规则[^3][^4] #### 二、操作步骤详解 ```mermaid graph TD A[开始] --> B[检查防火墙状态] B --> C{防火墙是否运行?} C -->|是| D[执行 list-ports 命令] C -->|否| E[启动防火墙服务] D --> F[分析输出结果] F --> G[结束] ``` 1. **先确认防火墙状态**: ```bash sudo systemctl status firewalld ``` - ✅ 正常状态:`active (running)`[^2] - ❌ 未运行时需启动: ```bash sudo systemctl start firewalld ``` 2. **执行查看命令**: ```bash sudo firewall-cmd --list-ports # 基础查看 sudo firewall-cmd --list-all # 详细信息 ``` 3. **结果解读**: - 端口格式:`端口号/协议`(如`5866/tcp`) - 无输出 = 未开放任何端口 - 带`(default)`标记 = 默认区域配置 #### 三、特殊情况处理 1. **多区域配置时** 先确认活动区域: ```bash sudo firewall-cmd --get-active-zones ``` 再针对特定区域查询: ```bash sudo firewall-cmd --zone=work --list-ports ``` 2. **端口开放但无法访问** 检查服务绑定: ```bash sudo ss -tuln | grep 5866 ``` ✅ 正常应显示:`LISTEN 0 128 0.0.0.0:5866` 3. **永久规则未生效** 更新防火墙配置: ```bash sudo firewall-cmd --reload ``` --- ### 📌 关键命令总结 | 命令 | 作用 | 示例输出 | |------|------|----------| | `firewall-cmd --list-ports` | 列出所有开放端口 | `5866/tcp 80/tcp` | | `firewall-cmd --list-all` | 显示完整配置 | 包含端口/服务/区域 | | `firewall-cmd --get-active-zones` | 查看活动区域 | `public: eth0` | | `firewall-cmd --permanent --list-ports` | 查看永久规则 | `3306/tcp` | --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值