当前位置:首页>Linux>如何在 Linux 查看是什么程序打开的端口

如何在 Linux 查看是什么程序打开的端口

  • 2026-10-11 07:11:41
如何在 Linux 查看是什么程序打开的端口

在 Linux 中,查看某个端口被哪个程序(进程)占用,常用的命令有 ss、netstat、lsof 和 fuser。推荐优先使用 ss,它速度快而且是现代 Linux 的标准工具。


1. 使用 ss(推荐)

sudo ss -tulpn | grep :端口号
  • -t:显示 TCP 端口
  • -u:显示 UDP 端口
  • -l:仅显示监听状态的端口
  • -p:显示进程名和 PID
  • -n:以数字形式显示端口号(不解析服务名)

示例:查看 80 端口

sudo ss -tulpn | grep :80

输出会包含类似 users:(("nginx",pid=1234,fd=6)) 的信息,直接告诉你进程名和 PID。

如果想查看所有监听的端口及其进程,可省略 grep:

sudo ss -tulpn

2. 使用 netstat(传统方法)

sudo netstat -tulpn | grep :端口号

参数含义同上。如果系统提示 netstat 命令未找到,需先安装 net-tools:

# Debian/Ubuntusudo apt install net-tools# CentOS/RHELsudo yum install net-tools

3. 使用 lsof(列出打开的文件)

sudo lsof -i :端口号

直接显示占用该端口的进程详细信息(进程名、PID、用户等)。

示例:

sudo lsof -i :3306

输出样例:

COMMAND   PID  USER   FD   TYPE DEVICE SIZE/OFF NODE NAMEmysqld   1122 mysql   20u  IPv4  21542      0t0  TCP *:mysql (LISTEN)

4. 使用 fuser(快速查找进程 PID)

sudo fuser 端口号/tcp# 或sudo fuser 端口号/udp

只输出 PID,可以结合其他命令使用,比如:

sudo fuser 80/tcp# 输出类似:80/tcp:  1234ps -p 1234 -o comm=   # 查看 PID 对应的进程名

注意事项

  • 必须加 sudo 或以 root 运行,否则无法看到其他用户启动的进程信息(PID 一列会显示 -)。
  • 如果你想查找的端口不是监听状态(例如客户端临时端口),可以去掉 -l 参数,直接用 ss -tupn 或 netstat -tupn。

最新文章

随机文章