首页 >> 要闻简讯 > 甄选问答 >

问Linux端口是否被占用怎么查看

2026-05-06 08:59:50

答

【Linux端口是否被占用怎么查看】在日常的Linux系统管理中,经常需要检查某个端口是否被其他程序占用。特别是在部署服务、调试程序或排查网络问题时,了解端口状态是十分重要的。以下是几种常用的查看Linux端口是否被占用的方法,结合实际使用场景进行总结。

一、常用命令汇总

命令 功能说明 适用场景
`netstat -tuln` 显示所有监听中的TCP和UDP端口 快速查看当前系统监听的端口
`lsof -i :端口号` 查看指定端口被哪个进程占用 精确查找特定端口的占用情况
`ss -tuln` 类似于`netstat`,但更高效 高性能服务器上推荐使用
`ps -p -o comm=` 根据进程ID查看进程名称 与`lsof`配合使用,确认占用端口的进程
`fuser -n tcp <端口号>` 显示占用指定TCP端口的进程 可直接列出占用端口的PID

二、具体操作步骤

1. 使用 `netstat` 查看监听端口

执行以下命令:

```bash

netstat -tuln

```

输出示例:

```

tcp600 :::80:::LISTEN

tcp00 0.0.0.0:220.0.0.0:LISTEN

```

2. 使用 `lsof` 查找特定端口占用情况

若想查看端口 `8080` 是否被占用,执行:

```bash

lsof -i :8080

```

如果有输出,则表示该端口被占用。

3. 使用 `ss` 替代 `netstat`

```bash

ss -tuln

```

结果与 `netstat` 类似,但运行更快。

4. 通过 `fuser` 查看端口占用

```bash

fuser -n tcp 8080

```

输出结果会显示占用该端口的进程 PID。

5. 根据 PID 查看进程信息

如果已知 PID,可以使用:

```bash

ps -p 1234 -o comm=

```

来确认是哪个程序占用了端口。

三、注意事项

- 不同 Linux 发行版可能默认安装的工具略有差异,如 `netstat` 可能需要手动安装(如在 Ubuntu 中需安装 `net-tools` 包)。

- 使用 `lsof` 和 `fuser` 时,可能需要 root 权限才能查看所有进程。

- 在生产环境中,建议使用 `ss` 或 `lsof` 进行端口监控,避免使用较旧的 `netstat` 工具。

四、总结

方法 优点 缺点
`netstat` 简单易用 性能较差,不推荐用于高负载系统
`lsof` 精准查找 需要安装,部分系统默认未安装
`ss` 高效快速 对新手不够友好
`fuser` 直接显示 PID 仅支持 TCP/UDP 协议

通过上述方法,可以有效地判断 Linux 系统中某端口是否被占用,并快速定位到占用端口的进程。在实际工作中,建议结合多个命令使用,以提高排查效率。

 
最新文章