梦应逍遥 发表于 2024-10-11 12:38:43

如何检查端口占用:netstat和lsof指令

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

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

netstat -an
这是最常用的形式,让我们解析其参数:
-a: 显示全部连接和监听端口
-n: 以数字形式显示所在和端口号,而不是实行解析主机名、服务名或端口名
这个下令会显示全部的网络连接,包括 TCP、UDP,以及处于 LISTEN 状态的端口。
1.2 检察占用端口的历程

如果你想知道哪些历程占用了端口,可以添加 -p 参数:
sudo netstat -an
p
   留意:利用 -p 通常需要 root 权限。
1.3 netstat 输出解析
运行 netstat -an
p 后,你会看到雷同以下的输出:

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 https://i-blog.csdnimg.cn/direct/e6de3af434d946a6a62aa68b30f23979.png
可以看到-an指令基本上只能看到用什么协议,只是知道这个端口被占用了,让我们来利用-anp
netstat -an
p | grep 8886 https://i-blog.csdnimg.cn/direct/7b9d37f51b1f4841a3395a647ec47ff9.png
   如果你是平凡用户的话,你可以发现,你仍然是看不见的
平凡用户需要提权
sudo netstat -an
p | grep 8886 然后我可以看到历程号,以及是docker的服务占用了ipv4/ipv6协议下的8886端口
https://i-blog.csdnimg.cn/direct/da26ee7ee47a481f83289f20c2443ad3.png
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    3uIPv4    12345      0t0TCP *:22 (LISTEN)
nginx      5678   www   6uIPv6    23456      0t0TCP *:80 (LISTEN)


[*]COMMAND: 历程名称
[*]PID: 历程 ID
[*]USER: 运行该历程的用户
[*]FD: 文件形貌符
[*]TYPE: 文件类型
[*]DEVICE: 设备号
[*]SIZE/OFF: 文件大小或偏移量
[*]NODE: 节点号
[*]NAME: 文件名,对于网络连接,显示协议、当地所在、远程所在、状态
3. netstat 和 lsof 的比力

netstat 上风:

更直观的网络连接视图
在大多数体系中默认安装
参数组合机动,适合快速检查
lsof 上风:

提供更详细的历程信息
可以同时检察文件体系和网络利用情况
在处理惩罚大量连接时通常比 netstat 更快
看自己习惯哪个吧

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 如何检查端口占用:netstat和lsof指令