目录
(一)、使用firewalld(适用于CentOS/RHEL 7+)
一、概述
防火墙开放的端口号指的是在网络中,允许数据通过的特定通信端口。在计算机网络中,端口号是用于区分不同网络服务的逻辑地址。每个通过网络进行通信的应用程序或服务都会使用一个或多个端口号。
当数据包在网络中传输时,它会包含源端口号和目标端口号,这样接收设备就可以知道该将数据发送到哪个应用程序。防火墙则可以根据预定的安全规则来允许或拒绝通过这些端口号的数据。
在Linux系统中,查看防火墙开放的端口号可以通过不同的命令来实现,具体取决于使用的防火墙软件。
二、查看防火墙开放的端口号的常用方法
(一)、使用firewalld(适用于CentOS/RHEL 7+)
1. 查看firewalld状态
使用如下命令:
sudo systemctl status firewalld
实际操作如下:
2. 查看所有开放的端口
使用如下命令:
sudo firewall-cmd --list-ports
实际操作如下:
3. 查看指定zone(如public)的开放端口
使用如下命令:
sudo firewall-cmd --zone=public --list-ports
(二)、使用iptables(多种Linux发行版)
1、查看iptables状态
查看iptables状态(对于CentOS 6等早期版本,可以使用sudo service iptables status):
(具体状态查看命令可能因系统配置而异,但通常iptables的状态可以通过系统服务管理工具来查看)
2. 查看所有iptables规则
查看所有iptables规则,并手动查找与开放端口相关的规则:
sudo iptables -L -n -v
或者,如果只对TCP端口感兴趣,可以使用:
sudo iptables -L INPUT -n --line-numbers | grep ACCEPT
注意:这个命令只是给出了一个查看TCP输入链中允许规则的示例,实际使用时可能需要根据iptables配置进行调整。
(三)、使用ufw(适用于Ubuntu/Debian)
查看ufw状态,使用如下命令:
sudo ufw status
这个命令会列出所有的ufw规则,包括允许或拒绝的端口。
(四)、使用 nftables
如果系统使用的是 nftables 作为防火墙管理工具,可以按照以下步骤查看开放的端口:
1、查看所有规则
sudo nft list ruleset
这将列出所有规则集中的规则。
2、查看特定链的规则
如果想查看特定链(如 input 链)的规则:
sudo nft list chain ip filter input
3、查看开放的端口
可以查找允许 TCP 或 UDP 流量进入的规则。例如,查找允许 TCP 流量进入的规则:
sudo nft list chain ip filter input | grep "accept tcp dport"
或者,查找允许 UDP 流量进入的规则:
sudo nft list chain ip filter input | grep "accept udp dport"
(五)、使用netstat或ss命令(辅助工具)
虽然netstat或ss命令不是直接查看防火墙开放端口的工具,但它们可以显示系统上哪些端口正在被监听。这有助于了解哪些服务可能正在运行并可能通过防火墙开放端口。
1. 使用netstat查看所有TCP监听端口
使用如下命令:
sudo netstat -tuln
实际操作如下:
2. 使用ss命令查看监听端口
使用ss命令查看监听端口(较新版本的Linux系统可能更常用):
sudo ss -tuln
实际操作如下:
注意:仅仅因为一个端口正在被监听,并不意味着它一定被防火墙开放。
三、使用其他方法或工具
还可以是使用其他方法或工具可以用于此目的,但它们的适用性和准确性可能因具体的Linux发行版和防火墙配置而异。
除了之前提到的使用firewalld、iptables、ufw以及netstat或ss命令来查看Linux防火墙开放的端口号外,还有一些其他方法或工具可以用于此目的,但它们的适用性和准确性可能因具体的Linux发行版和防火墙配置而异。以下是一些额外的建议:
(一)、使用nmap工具
Nmap(Network Mapper)是一个开源的网络扫描和安全审计工具。它可以帮助识别网络上的主机和服务,并检测开放的端口。
1. 安装nmap(如果尚未安装)
sudo apt-get install nmap 对于Debian/Ubuntu系统
sudo yum install nmap 对于CentOS/RHEL系统
2. 使用nmap扫描本地主机的开放端口
sudo nmap -sT -O localhost
或者,如果只想扫描特定的端口范围:
sudo nmap -p 1-65535 localhost
(二)、检查防火墙配置文件
对于某些Linux发行版和防火墙配置,可以直接检查防火墙的配置文件来了解哪些端口是开放的。这通常涉及查看/etc/firewalld/(对于firewalld)、/etc/sysconfig/iptables或/etc/iptables/rules.v4(对于iptables)等目录下的配置文件。
1. 使用文本编辑器(如vim、nano等)打开相应的配置文件。
2. 搜索与开放端口相关的规则或配置。
(三)、使用系统日志
在某些情况下,系统日志(如/var/log/messages、/var/log/syslog或/var/log/firewalld.log等)可能包含有关防火墙端口开放的信息。可以使用grep等文本搜索工具来查找与端口开放相关的日志条目。
1. 使用grep搜索日志文件中的端口信息
grep 'port' /var/log/firewalld.log
2.若知道特定的端口号,可直接搜索该端口号
grep '80/tcp' /var/log/firewalld.log
(四)注意事项
1. 权限要求
执行上述命令通常需要管理员权限(sudo)。
2. 准确性
直接检查防火墙配置文件通常是最准确的方法,但可能需要一定的防火墙配置知识。
3. 日志可用性
系统日志的可用性和内容可能因系统配置和防火墙软件而异。
4. 安全性
使用nmap等网络扫描工具时,请确保拥有扫描目标主机的适当权限,以避免违反网络安全政策或法律。
由此,查看Linux防火墙开放的端口号有多种方法,可以根据具体的系统配置和需求选择合适的方法。
文章正下方可以看到我的联系方式:鼠标“点击” 下面的 “威迪斯特-就是video system 微信名片”字样,就会出现我的二维码,欢迎沟通探讨。