使用netstat、ss、lsof等命令可查看Linux端口占用情况,如sudo netstat -tulnp查看监听端口,sudo ss -tulnp | grep :3306查找特定端口,sudo lsof -i :5000查询指定端口进程,结合pidof与ss查服务端口,或通过/proc//net/tcp手动分析。

如果您在使用Linux系统时需要排查某个端口是否被占用,或者希望了解当前系统中哪些服务正在使用特定端口,可以通过多种命令工具实现对端口占用情况的查看和监控。以下是常用的方法。
本文运行环境:Dell XPS 13,Ubuntu 22.04
netstat 是一个网络统计工具,能够显示网络连接、路由表、接口统计信息以及端口监听状态。尽管在较新系统中逐渐被取代,但仍广泛可用。
1、打开终端并输入以下命令以列出所有正在监听的端口:
sudo netstat -tulnp
其中 -t 显示 TCP 连接,-u 显示 UDP 连接,-l 仅显示监听状态的端口,-n 以数字形式显示地址和端口号,-p 显示占用端口的进程 ID 和程序名。
2、通过 grep 过滤特定端口,例如查看 80 端口是否被占用:
sudo netstat -tulnp | grep :80
ss(Socket Statistics)是 netstat 的现代替代工具,具有更快的执行速度和更详细的输出,推荐在支持的系统上优先使用。
1、在终端中运行以下命令查看所有监听中的 TCP 和 UDP 端口:
sudo ss -tulnp
参数含义与 netstat 类似,-t 表示 TCP,-u 表示 UDP,-l 表示监听状态,-n 禁止解析服务名称,-p 显示关联进程。
2、若需查找特定端口,如 3306(MySQL),可执行:
sudo ss -tulnp | grep :3306
lsof 可以列出打开的文件,而网络套接字在 Linux 中也被视为特殊类型的文件,因此可用于精确查找端口占用情况。
1、安装 lsof(如未预装):
sudo apt install lsof
2、查看指定端口(如 5000)被哪个进程占用:
sudo lsof -i :5000
该命令将返回进程名、PID、用户及网络相关信息。
3、若要查看所有网络连接相关的打开文件:
sudo lsof -i
当已知服务名称但不确定其使用的端口时,可通过进程名反查其绑定的端口。
1、先获取服务的进程 ID,例如查看 Nginx 相关进程:
pidof nginx
2、将获取到的 PID 代入 ss 命令中查看其端口使用情况:
sudo ss -tulnp | grep
或直接使用管道组合命令:
sudo ss -tulnp | grep $(pidof nginx)
/proc 文件系统提供了内核和进程的实时信息,每个进程在其目录下的 fd 和 net 子目录中包含网络连接详情。
1、首先通过 ps 或 pgrep 找到目标进程的 PID,例如:
pgrep apache2
2、进入对应进程的 net 目录查看 socket 使用情况:
cat /proc/
此文件列出所有 TCP 连接,其中本地地址字段中的端口号为十六进制格式,需转换后对照确认。
3、可配合工具进行端口解码,例如将十六进制端口转为十进制:
printf "%d\n" 0x1F90
该命令将十六进制 1F90 转换为十进制 8080。
以上就是LINUX如何查看端口占用情况_Linux端口使用监控方法的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号