云计算百科
云计算领域专业知识百科平台

【过时技术】如何检查端口占用:netstat和lsof指令

该技术已经过时-2025年04月15日11:53:35

在网络故障排查和系统管理中,检查端口占用情况是一项常见且重要的任务。本文将详细介绍如何使用 netstat 和 lsof 这两个强大的工具来检查端口占用和相关服务。

1. 使用 netstat 查看端口占用

netstat (network statistics) 是一个用于显示网络连接、路由表、接口统计等信息的命令行工具。

1.1 最常用的 netstat 命令

netstat -an

这是最常用的形式,让我们解析其参数:

-a: 显示所有连接和监听端口 -n: 以数字形式显示地址和端口号,而不是尝试解析主机名、服务名或端口名 这个命令会显示所有的网络连接,包括 TCP、UDP,以及处于 LISTEN 状态的端口。

1.2 查看占用端口的进程

如果你想知道哪些进程占用了端口,可以添加 -p 参数:

sudo netstat -anp

注意:使用 -p 通常需要 root 权限。

1.3 netstat 输出解析

运行 netstat -anp 后,你会看到类似以下的输出:

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 1234/sshd
tcp6 0 0 :::80 :::* LISTEN 5678/nginx
udp 0 0 0.0.0.0:68 0.0.0.0:* 910/dhclient

  • Proto: 协议(TCP 或 UDP)
  • Recv-Q 和 Send-Q: 接收队列和发送队列中的字节数
  • Local Address: 本地地址和端口号
  • Foreign Address: 远程地址和端口号
  • State: 连接状态(如 LISTEN, ESTABLISHED 等)
  • PID/Program name: 使用该连接的进程ID和进程名称

1.4 其他有用的 netstat 参数

-t: 仅显示 TCP 连接 -u: 仅显示 UDP 连接 -l: 只显示监听状态(LISTEN)的连接 这些参数可以组合使用,例如:

1.5 查看特定端口

通常,我们的netstat指令要结合grep,比如我们只想查看特定端口(例如 8886):

netstat -an | grep 8886

在这里插入图片描述 可以看到-an指令基本上只能看到用什么协议,只是知道这个端口被占用了,让我们来使用-anp

netstat -anp | grep 8886

在这里插入图片描述

如果你是普通用户的话,你可以发现,你仍然是看不见的

普通用户需要提权

sudo netstat -anp | grep 8886

然后我可以看到进程号,以及是docker的服务占用了ipv4/ipv6协议下的8886端口 在这里插入图片描述

2. 使用 lsof 查看端口占用

lsof (List Open Files) 是另一个强大的工具,不仅可以查看端口占用,还可以查看进程打开的文件。

2.1 基本用法

查看所有网络连接:

sudo lsof -i

查看特定端口(如 8080):

sudo lsof -i :8080

2.2 lsof 输出解析

运行 sudo lsof -i 后,你会看到类似以下的输出:

COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
sshd 1234 root 3u IPv4 12345 0t0 TCP *:22 (LISTEN)
nginx 5678 www 6u IPv6 23456 0t0 TCP *:80 (LISTEN)

  • COMMAND: 进程名称
  • PID: 进程 ID
  • USER: 运行该进程的用户
  • FD: 文件描述符
  • TYPE: 文件类型
  • DEVICE: 设备号
  • SIZE/OFF: 文件大小或偏移量
  • NODE: 节点号
  • NAME: 文件名,对于网络连接,显示协议、本地地址、远程地址、状态

3. netstat 和 lsof 的比较

netstat 优势:

更直观的网络连接视图 在大多数系统中默认安装 参数组合灵活,适合快速检查

lsof 优势:

提供更详细的进程信息 可以同时查看文件系统和网络使用情况 在处理大量连接时通常比 netstat 更快

看自己习惯哪个吧

赞(0)
未经允许不得转载:网硕互联帮助中心 » 【过时技术】如何检查端口占用:netstat和lsof指令
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!