Linux下查看端口占用:一步搞定

Linux下查看端口占用:一步搞定

在Linux操作系统中,查看端口占用是一个常见的需求。无论是为了排查问题还是为了监控网络连接,了解哪些端口正在被使用是非常重要的。本文将介绍如何在Linux下快速地查看端口占用情况。

使用netstat命令

要查看端口占用情况,可以使用netstat命令。netstat是一个功能强大的工具,可以显示网络连接、路由表和网络接口等信息。

要查看所有端口的占用情况,可以使用以下命令:

netstat -tuln

上述命令中,参数-t表示显示TCP连接,参数-u表示显示UDP连接,参数-l表示只显示监听状态的端口,参数-n表示以数字形式显示端口号。

输出结果将显示正在监听的TCP和UDP端口号,以及相应的进程ID(PID)和进程名称。在这些信息中,可以找到你所关心的端口占用情况。

例如,下面是netstat命令的一部分输出结果:

Active Internet connections (only servers)

Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name

tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1417/sshd

tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 979/cupsd

tcp6 0 0 :::22 :::* LISTEN 1417/sshd

tcp6 0 0 ::1:631 :::* LISTEN 979/cupsd

udp 0 0 0.0.0.0:5353 0.0.0.0:* 743/avahi-daemon: r

udp 0 0 0.0.0.0:68 0.0.0.0:* 659/dhclient

udp 0 0 0.0.0.0:631 0.0.0.0:* 915/cups-browsed

udp 0 0 0.0.0.0:5353 0.0.0.0:* 743/avahi-daemon: r

udp6 0 0 :::5353 :::* 743/avahi-daemon: r

udp6 0 0 :::39214 :::* 659/dhclient

udp6 0 0 :::5353 :::* 743/avahi-daemon: r

上述输出结果显示了当前正在监听的TCP和UDP端口,以及它们对应的进程信息。

使用lsof命令

除了netstat命令外,还可以使用lsof命令来查看端口占用情况。

lsof是一个强大的工具,可以用于查看已打开的文件和进程。通过指定端口号,可以查看该端口被哪个进程占用。

要查看某个端口的占用情况,可以使用以下命令:

lsof -i :端口号

上述命令中,参数-i表示查看网络连接,参数:端口号表示指定的端口。

输出结果将显示该端口的占用情况,包括进程ID(PID)、进程名称、用户和文件描述符等。

例如,下面是lsof命令的一部分输出结果:

COMMAND    PID USER   FD   TYPE   DEVICE SIZE/OFF NODE NAME    

sshd 1417 root 3u IPv4 20448 0t0 TCP *:ssh (LISTEN)

sshd 1417 root 4u IPv6 20450 0t0 TCP *:ssh (LISTEN)

上述输出结果显示了端口号为22的占用情况,其中PID为1417的进程是正在监听该端口的进程。

使用ss命令

另一个查看端口占用情况的工具是ss命令。ss是一个更快速和更精简的替代品,它可以用于查看套接字、网络连接和进程信息。

要查看所有端口的占用情况,可以使用以下命令:

ss -tuln

上述命令中,参数-t表示显示TCP连接,参数-u表示显示UDP连接,参数-l表示只显示监听状态的端口,参数-n表示以数字形式显示端口号。

输出结果将与netstat命令类似,显示正在监听的TCP和UDP端口号,以及相应的进程ID和进程名称。

例如,下面是ss命令的一部分输出结果:

State       Recv-Q Send-Q Local Address:Port          Peer Address:Port   

LISTEN 0 128 *:22 *:*

LISTEN 0 128 :::22 :::*

LISTEN 0 5 :::5353 :::*

上述输出结果显示了正在监听的TCP和UDP端口,以及它们的本地地址和远程地址。

总结

本文介绍了三种在Linux下查看端口占用情况的方法:使用netstat命令、lsof命令和ss命令。这些工具都是功能强大且易于使用的,可以帮助我们快速地了解正在使用的端口。

通过运行这些命令,可以获取端口号、相应的进程ID和进程名称等信息,以便进行后续的排查或监控操作。

有时候,我们可能只关心某个特定端口的占用情况,这时可以使用-lsof命令或ss命令来查询。

无论是网络管理员还是开发人员,了解如何查看端口占用是非常有用的。希望本文的内容能帮助读者更好地理解和应用这些命令。

操作系统标签