1. 介绍
在Linux系统中,我们经常需要查看系统上开放的端口,以了解当前系统中运行的服务和应用程序。有多种方式可以实现这一目的,如使用命令行工具netstat和ss,以及使用图形化工具如nmap等。本文将介绍一种新的方式,通过使用lsof命令来查看系统开放的端口。
2. lsof命令
lsof是一种用于查看操作系统打开的文件和进程的工具,它可以列出系统上所有打开的文件和相应的进程信息。通过-l选项,我们可以只列出打开的网络连接。我们可以使用lsof来查看系统上开放的端口。
2.1 安装lsof命令
在大多数Linux发行版中,lsof命令已经预装了。如果您的系统没有安装lsof命令,您可以使用以下命令来安装:
sudo apt-get install lsof # Ubuntu/Debian
sudo yum install lsof # CentOS/RHEL
2.2 使用lsof命令查看系统开放的端口
使用lsof命令查看系统开放的端口非常简单,只需执行以下命令:
sudo lsof -i
以上命令将列出当前系统上所有打开的网络连接,包括对外开放的端口。
3. 解析lsof命令输出
通过执行lsof命令,我们可以得到类似以下的输出:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
sshd 746 root 3u IPv4 202354 0t0 TCP *:22 (LISTEN)
sshd 746 root 4u IPv6 202363 0t0 TCP *:22 (LISTEN)
apache2 978 www-data 4u IPv6 202373 0t0 TCP *:80 (LISTEN)
apache2 978 www-data 5u IPv6 202374 0t0 TCP *:443 (LISTEN)
每行输出表示一个打开的网络连接。其中,COMMAND列显示了打开该连接的进程的名称,PID列显示了进程的ID,USER列显示了进程的所有者,FD列显示了文件描述符,TYPE列显示了连接类型,DEVICE列显示了相应的设备信息,SIZE/OFF列显示了连接的大小或偏移量,NODE列显示了节点信息,NAME列显示了连接的IP地址和端口号。
4. 筛选lsof命令输出
使用lsof命令查看系统开放的端口时,我们通常只对某个特定的端口感兴趣,可以通过与grep命令结合使用来筛选输出。
sudo lsof -i | grep :80
以上命令将只输出对外开放的80端口的连接。
5. 结束语
通过使用lsof命令,我们可以方便地查看系统上开放的端口,并了解当前系统中运行的服务和应用程序。它是一种非常有用的工具,值得我们学习和掌握。希望本文对您了解Linux系统开放端口的方式有所帮助。