Junki
Junki
Published on 2025-02-11 / 47 Visits
0
0

Linux 查询端口占用情况

在Linux系统中,有多种方法可以查询端口是否被占用,下面为你详细介绍几种常见的方式。

1. 使用netstat命令

netstat是一个用于查看网络连接、路由表和网络接口统计信息的工具,结合特定选项可以方便地查询端口占用情况。

命令语法

netstat -tulnp | grep 端口号
  • -t:显示TCP连接。
  • -u:显示UDP连接。
  • -l:仅显示监听状态的连接。
  • -n:以数字形式显示地址和端口号。
  • -p:显示占用该端口的进程的PID和名称。

示例

假设要查询8080端口是否被占用,可执行以下命令:

netstat -tulnp | grep 8080

如果该端口被占用,会输出相关进程信息,例如:

tcp        0      0 0.0.0.0:8080            0.0.0.0:*               LISTEN      1234/java

这表明8080端口被PID为1234的Java进程占用。

2. 使用lsof命令

lsof(list open files)用于列出当前系统打开文件的信息,网络连接也被视为文件,因此可以用它来查询端口占用情况。

命令语法

lsof -i :端口号

示例

查询8080端口是否被占用:

lsof -i :8080

如果端口被占用,会输出占用该端口的进程信息,例如:

COMMAND  PID  USER   FD   TYPE  DEVICE SIZE/OFF NODE NAME
java    1234  user   10u  IPv6  12345      0t0  TCP *:8080 (LISTEN)

这显示8080端口被PID为1234的Java进程占用。

3. 使用ss命令

ss是一个用于获取socket统计信息的工具,它可以替代netstat,并且速度更快。

命令语法

ss -tulnp | grep 端口号
  • -t:显示TCP连接。
  • -u:显示UDP连接。
  • -l:仅显示监听状态的连接。
  • -n:以数字形式显示地址和端口号。
  • -p:显示占用该端口的进程的PID和名称。

示例

查询8080端口是否被占用:

ss -tulnp | grep 8080

若端口被占用,会输出类似以下信息:

tcp   LISTEN 0      128    0.0.0.0:8080       0.0.0.0:*    users:(("java",pid=1234,fd=10))

这说明8080端口被PID为1234的Java进程占用。


Comment