查看 Linux 系统端口占用及对应进程

在 Ubuntu/Linux 系统中,查看当前系统中地址和端口的使用情况(即哪些进程在监听哪些端口),最常用的命令是 netstat 和 ss,其中 ss 是更现代、效率更高的工具。以下是具体用法:

1. 使用 ss 命令(推荐)

ss(Socket Statistics)是替代 netstat 的新工具,功能更强大,速度更快。

  • 查看所有正在使用的端口(包括 TCP、UDP)

ss -tuln

选项说明:

    • -t:显示 TCP 端口
    • -u:显示 UDP 端口
    • -l:只显示监听状态的端口(即正在被进程使用的端口)
    • -n:以数字形式显示 IP 地址和端口(不解析域名,速度更快)
  • 查看端口对应的进程信息

加上 -p 选项可以显示占用端口的进程 ID(PID)和进程名:

sudo ss -tulnp

(需要 sudo 权限才能看到所有进程的详细信息)

2. 使用 netstat 命令(传统工具)

netstat 是经典工具,部分系统可能默认不安装,若缺失可通过 sudo apt install net-tools 安装。

  • 查看所有监听端口

netstat -tuln

选项含义与 ss 相同:-t(TCP)、-u(UDP)、-l(监听)、-n(数字形式)。

  • 查看端口对应的进程

sudo netstat -tulnp

3. 查找特定端口的使用情况

如果想查询某个具体端口(例如 8080)是否被占用,可结合 grep 过滤:

# 用ss查询

ss -tulnp | grep 8080

# 用netstat查询

netstat -tulnp | grep 8080

输出结果中,LISTEN 状态表示端口正在被监听(已占用),同时会显示对应的 IP 地址(如 0.0.0.0 表示监听所有网卡,127.0.0.1 表示仅本地可访问)和进程信息。

关闭并释放指定端口的步骤

在 Linux 系统中,要关闭并释放指定端口,需要先找到占用该端口的进程,然后终止对应的进程。以下是具体步骤:

步骤 1:查找占用端口的进程 ID(PID)

使用 ss 或 netstat 命令,结合端口号查找对应的进程 ID。

例如,要查找占用 8080 端口 的进程:

# 方法1:使用ss(推荐)

sudo ss -tulnp | grep 8080

# 方法2:使用netstat(需安装net-tools)

sudo netstat -tulnp | grep 8080

输出示例(以 ss 为例):

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

其中 pid=1234 就是占用 8080 端口的进程 ID。

步骤 2:终止该进程以释放端口

使用 kill 命令终止进程,释放端口:

# 基本用法:kill + 进程ID

sudo kill 1234

  • 如果进程无法正常终止(如无响应),可使用强制终止命令:

sudo kill -9 1234  # -9表示强制终止

步骤 3:验证端口是否已释放

再次查询端口,确认已释放:

ss -tulnp | grep 8080  # 无输出则表示端口已释放

总结流程(以 8080 端口为例)

  • 快速查看所有端口占用:ss -tuln 或 netstat -tuln
  • 查看端口对应的进程:sudo ss -tulnp(推荐,更高效)
  • 查找特定端口:在上述命令后加 | grep 端口号
  • 查进程:sudo ss -tulnp | grep 8080 → 得到 PID(如 1234)
  • 杀进程:sudo kill -9 1234
  • 验结果:ss -tulnp | grep 8080

通过这些命令,可以清晰了解系统中哪些 IP 地址和端口正在被使用,以及对应的进程信息,方便排查端口冲突等问题。

Logo

电影级数字人,免显卡端渲染SDK,十行代码即可调用,工业级demo免费开源下载!

更多推荐