1. 介绍
防火墙是保护计算机免受未经授权访问和恶意攻击的重要组成部分。在Linux系统中,有多种工具可以用来配置和管理防火墙,比如iptables和ufw。无论使用哪种工具,了解开放的端口是非常重要的。本文将介绍如何查看Linux系统上防火墙开放的端口。
2. 使用netstat命令查看开放的端口
netstat是一个用于查看网络连接、路由表和网络接口等信息的命令。可以使用netstat命令来查看当前系统上开放的端口。
2.1 查看所有开放的端口
netstat -tuln
上述命令可以列出当前系统上所有开放的TCP和UDP端口。其中,参数-t表示查看TCP端口,-u表示查看UDP端口,-l表示只显示监听状态的端口,-n表示使用端口号代替服务名称。
以下是一个netstat命令的示例输出:
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:5432 0.0.0.0:* LISTEN
tcp6 0 0 :::80 :::* LISTEN
udp 0 0 0.0.0.0:68 0.0.0.0:*
从上述输出中可以看出,系统当前开放的端口包括22、5432和80。
2.2 查看指定端口的监听情况
netstat -tuln | grep 端口号
使用上述命令可以查看指定端口的监听情况。只需要将端口号替换为实际的端口号。
以下是一个netstat命令的示例输出:
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
从上述输出中可以看出,系统当前监听22端口。
3. 使用nmap命令查看开放的端口
nmap是一个用于网络探测和安全扫描的工具。它可以用来扫描远程主机上的开放端口。
3.1 扫描指定主机的开放端口
nmap -p 端口号 主机地址
使用上述命令可以扫描指定主机上的开放端口。只需要将端口号替换为实际的端口号,主机地址替换为实际的主机地址。
以下是一个nmap命令的示例输出:
Starting Nmap 7.60 ( https://nmap.org ) at 2021-10-10 10:00 EDT
Nmap scan report for example.com (192.0.2.1)
Host is up (0.030s latency).
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
443/tcp closed https
从上述输出中可以看出,主机example.com开放了22、80端口。
3.2 扫描本地主机的开放端口
nmap -p 端口号 127.0.0.1
使用上述命令可以扫描本地主机上的开放端口。只需要将端口号替换为实际的端口号。
以下是一个nmap命令的示例输出:
Starting Nmap 7.60 ( https://nmap.org ) at 2021-10-10 10:00 EDT
Nmap scan report for localhost (127.0.0.1)
Host is up (0.0001s latency).
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
从上述输出中可以看出,本地主机开放了22、80端口。
4. 使用firewall-cmd命令查看开放的端口(仅适用于使用firewalld服务的系统)
firewalld是Linux系统上的一个动态防火墙管理工具。它提供了firewall-cmd命令,可以用来配置和管理防火墙规则。
4.1 查看所有开放的端口
firewall-cmd --list-ports
上述命令可以列出当前系统上所有已经打开的端口。以下是一个firewall-cmd命令的示例输出:
80/tcp 443/tcp
从上述输出中可以看出,系统当前开放了80和443端口。
4.2 查看指定端口的状态
firewall-cmd --query-port=端口号/协议
使用上述命令可以查询指定端口的开放状态。只需要将端口号和协议替换为实际的端口号和协议。
以下是一个firewall-cmd命令的示例输出:
yes
从上述输出中可以看出,指定的端口已经打开。
5. 总结
查看防火墙开放的端口对于保护计算机安全和检测网络服务状态非常重要。本文介绍了使用netstat、nmap和firewall-cmd命令来查看Linux系统上防火墙开放的端口。通过学习这些命令,您可以更好地了解和管理系统的安全性和网络连接。