netstat是用于查看端口占用及关联进程的网络统计工具,支持Windows和Linux系统,需管理员/root权限获取完整信息,还可使用PowerShell替代。
如果您需要确认某个端口是否已被其他进程占用,或排查服务启动失败的原因,则可能需要查看当前系统的端口占用情况。netstat 是一个常用的网络统计工具,可用于列出活动的网络连接、监听端口及关联的进程信息。以下是使用 netstat 命令查询端口占用情况的具体方法:
一、查看所有监听端口及对应进程
该方法适用于快速定位哪些端口处于监听状态,并显示占用它们的进程 ID(PID)和程序名称,需具备管理员权限才能看到所有进程信息。
1、打开命令提示符(Windows)或终端(Linux/macOS)。
2、输入命令:netstat -ano | findstr :端口号(Windows),其中“端口号”替换为实际要查询的数字,例如 netstat -ano | findstr :8080。
3、若需查看全部监听端口及其 PID,可执行:netstat -ano -p TCP | findstr LISTENING。
4、根据输出中的 PID,在任务管理器(Windows)或使用 tasklist | findstr “PID” 进一步确认进程名称。
二、在 Linux 系统中结合 netstat 与 grep 查询指定端口
Linux 下 netstat 默认可能未安装,需先确保 net-tools 已部署;该方法通过过滤输出精准定位目标端口的监听状态与进程归属。
1、检查 netstat 是否可用:which netstat 或 netstat –version。
2、若未安装,执行:sudo apt install net-tools(Debian/Ubuntu)或 sudo yum install net-tools(CentOS/RHEL)。
3、查询指定端口(如 3306):sudo netstat -tulnp | grep :3306。
4、解析输出字段:第 7 列为 pid/program name,格式为“1234/mysqld”,其中 1234 即为进程 ID。
三、使用 netstat 显示进程名而非仅 PID(Linux 需 root 权限)
该方式可直接在 netstat 输出中显示可读性强的程序名称,避免额外查 PID 步骤,但必须以 root 或 sudo 方式运行。
1、执行完整监听列表命令:sudo netstat -tulnep。
2、观察输出中 “Program name” 列,该列将显示类似 sshd: /usr/sbin/sshd 的完整路径信息。