Linux查询网络端口:快速掌握端口使用情况

1. 概述

在Linux操作系统中,网络端口是用于标识网络上的不同服务或应用程序的数字。通过查询网络端口,我们可以了解到正在运行的服务,以及它们所使用的端口号。在本文中,我们将介绍如何快速查询Linux系统上的网络端口使用情况。

2. netstat命令

2.1 使用netstat命令查询所有端口

netstat命令是一个强大的网络工具,可以用于查询网络连接、路由表等网络相关信息。通过加上"-l"参数,我们可以查询所有正在监听的端口:

netstat -l

这样,netstat将会列出所有正在监听的端口以及对应的服务名称。以下是一个示例输出:

Proto Recv-Q Send-Q Local Address           Foreign Address         State      

tcp6 0 0 :::22 :::* LISTEN

tcp6 0 0 :::80 :::* LISTEN

tcp6 0 0 :::443 :::* LISTEN

上述示例中,可以看到系统监听了22、80和443端口,并且分别对应SSH、HTTP和HTTPS服务。

2.2 使用netstat命令查询指定端口

如果我们只想查询某个特定端口的使用情况,可以使用"-n"参数禁用域名解析,并加上"-p"参数指定协议类型。例如,下面的命令将查询80端口的使用情况:

netstat -nlp | grep :80

该命令将会列出所有使用80端口的进程及其对应的PID(进程ID)。以下是一个示例输出:

tcp6       0      0 :::80                   :::*                    LISTEN      1234/nginx

上述示例中,可以看到80端口由PID为1234的nginx进程监听。

3. lsof命令

3.1 使用lsof命令查询所有端口

lsof(List Open Files)命令是一个用于查看系统中打开的文件和进程的工具。通过加上"-i"参数,我们可以查询所有网络连接:

lsof -i

该命令将会列出系统中所有打开的网络连接,包括对应的进程信息。以下是一个示例输出:

COMMAND   PID    USER   FD   TYPE DEVICE SIZE/OFF NODE NAME

sshd 1234 root 3u IPv6 12345 0t0 TCP *:ssh (LISTEN)

nginx 5678 www 3u IPv4 56789 0t0 TCP *:http (LISTEN)

nginx 5678 www 4u IPv6 56790 0t0 TCP *:http (LISTEN)

上述示例中,可以看到系统上有一个sshd进程监听了ssh(端口号为22),以及一个nginx进程监听了http(端口号为80)。

3.2 使用lsof命令查询指定端口

如果我们只想查询某个特定端口的使用情况,可以使用"-i"参数指定端口号。例如,下面的命令将查询80端口的使用情况:

lsof -i :80

该命令将会列出所有使用80端口的进程及其对应的PID(进程ID)。以下是一个示例输出:

COMMAND   PID    USER   FD   TYPE DEVICE SIZE/OFF NODE NAME

nginx 5678 www 3u IPv4 56789 0t0 TCP *:http (LISTEN)

nginx 5678 www 4u IPv6 56790 0t0 TCP *:http (LISTEN)

上述示例中,可以看到80端口由PID为5678的nginx进程监听。

4. 总结

通过使用netstat和lsof命令,我们可以快速查询Linux系统上的网络端口使用情况。netstat适用于查询所有端口或指定协议类型的端口,而lsof适用于查询所有网络连接或指定端口的连接。根据实际需要选择合适的命令进行查询,可以帮助我们更好地了解系统的网络配置和运行状态。

操作系统标签