Loading... # Linux 中查看端口占用情况 在 Linux 系统中,查看某个端口的占用情况是管理员日常维护的一部分。了解哪个服务或进程正在使用特定端口有助于我们更好地管理网络服务或者排查端口占用问题。本文将以 Redis 使用的 6379 端口为例,演示如何使用不同的工具来检查端口占用情况,并对输出结果进行详细解读。 #### 1. 使用 `netstat` 命令查看端口占用 `netstat` 命令是一个用于显示网络连接、路由表、接口统计、伪装连接以及多播成员的命令行工具。它非常适合用于查看端口的监听状态。 **命令:** ```bash netstat -tuln | grep :6379 ``` **输出示例:** ```bash [root@localhost ~]# netstat -tuln | grep :6379 tcp 0 0 0.0.0.0:6379 0.0.0.0:* LISTEN tcp6 0 0 :::6379 :::* LISTEN ``` **输出解释:** * `tcp`: 表示这是一个 TCP 连接。 * `0.0.0.0:6379`: 表示监听在所有 IPv4 地址上的 6379 端口。 * `tcp6` 和 `:::6379`: 表示监听在所有 IPv6 地址上的 6379 端口。 * `LISTEN`: 表示端口处于监听状态,即正在等待连接。 从这个输出中可以看出,Redis 服务正在监听所有 IPv4 和 IPv6 地址的 6379 端口。 #### 2. 使用 `ss` 命令查看端口占用 `ss` 是一个更现代的工具,用于显示网络套接字信息,替代了较老的 `netstat`。它在处理大量套接字时更高效。 **命令:** ```bash ss -tuln | grep :6379 ``` **输出示例:** ```bash [root@localhost ~]# ss -tuln | grep :6379 tcp LISTEN 0 128 0.0.0.0:6379 0.0.0.0:* tcp LISTEN 0 128 [::]:6379 [::]:* ``` **输出解释:** * `LISTEN`: 表示端口处于监听状态。 * `0.0.0.0:6379`: 表示监听在所有 IPv4 地址的 6379 端口。 * `[::]:6379`: 表示监听在所有 IPv6 地址的 6379 端口。 `ss` 命令输出的信息与 `netstat` 类似,但它更加精简,效率更高。 #### 3. 使用 `lsof` 命令查看端口占用 `lsof` 命令用于列出当前系统打开的文件。在 UNIX 系统中,几乎一切都是文件,包括网络套接字。因此,`lsof` 也可以用于查看端口占用情况。 **命令:** ```bash lsof -i :6379 ``` **输出示例:** ```bash [root@localhost ~]# lsof -i :6379 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME docker-pr 12959 root 4u IPv4 283972 0t0 TCP *:redis (LISTEN) docker-pr 12966 root 4u IPv6 285207 0t0 TCP *:redis (LISTEN) ``` **输出解释:** * `COMMAND`: 使用端口的命令或服务名称。这里是 `docker-pr`,表示该端口由 Docker 代理服务占用。 * `PID`: 进程 ID。这里显示的 PID 是 `12959` 和 `12966`。 * `USER`: 运行该进程的用户。这里是 `root`。 * `FD`: 文件描述符。`4u` 表示这是一个打开的套接字。 * `TYPE`: 套接字的类型。`IPv4` 和 `IPv6` 表示分别监听在 IPv4 和 IPv6 地址上。 * `NODE NAME`: 显示端口名称和状态。这里的 `*:redis (LISTEN)` 表示监听在 Redis 的默认端口上。 `lsof` 提供了比 `netstat` 和 `ss` 更详细的信息,包括具体的进程名称和 PID。 #### 4. 使用 `fuser` 命令查看端口占用 `fuser` 命令用于显示哪个进程正在使用指定的文件、目录或套接字。在查看端口占用时,它可以快速定位使用端口的进程。 **命令:** ```bash fuser 6379/tcp ``` **输出示例:** ```bash [root@localhost ~]# fuser 6379/tcp 6379/tcp: 12959 12966 ``` **输出解释:** * `12959` 和 `12966`: 表示占用 6379 端口的进程 ID。与 `lsof` 输出结果中的 PID 一致。 `fuser` 是快速查看端口被哪个进程占用的工具,输出结果简洁明了。 ### 总结 通过以上的示例,展示了如何在 Linux 系统中使用 `netstat`、`ss`、`lsof` 和 `fuser` 命令查看端口占用情况。每种工具都有其独特的功能和用途: * `netstat` 和 `ss` 可以显示网络连接的详细信息。 * `lsof` 不仅可以查看端口占用,还能显示占用该端口的具体进程信息。 * `fuser` 可以快速定位占用指定端口的进程。 这些命令可以帮助我们轻松识别和管理系统中正在监听的端口,并找到使用它们的进程,确保能够有效地管理和维护服务器的网络服务。 最后修改:2024 年 09 月 17 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 2 如果文章有帮助到你,请随意赞赏
2 条评论
每一个段落都紧密相连,逻辑清晰,展现了作者高超的写作技巧。
意象选取精妙,营造出空灵意境。