Linux端口占用排查:ss/lsof快速定位

互联网资讯

Linux端口占用排查:ss/lsof快速定位

2026-08-29 12:26


介绍Linux查看端口占用的常用命令与排查流程。

linux 查看端口占用

在 Linux 系统中,查看端口占用情况是排查服务异常、端口冲突、连接失败等问题时非常常见的操作。很多应用启动失败时,经常会提示类似“Address already in use”或“端口已被占用”,这时就需要快速定位是哪个进程占用了指定端口。下面介绍几种常用的 Linux 查看端口占用方法。

一、使用 ss 命令查看端口占用

ss 是 Linux 中推荐使用的网络状态查看工具,很多发行版中已经默认安装。

查看 TCP 端口占用情况:

ss -tunlp

常用参数说明:

  • -t:查看 TCP 连接
  • -u:查看 UDP 连接
  • -n:不解析域名,直接显示 IP 和端口
  • -l:只显示监听状态的端口
  • -p:显示占用端口的进程信息

例如,查看 8080 端口是否被占用:

ss -tunlp | grep 8080

如果端口被占用,通常会看到类似输出:

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

这表示 8080 端口被 java 进程占用,进程 ID 为 1234

二、使用 netstat 命令查看端口占用

netstat 也是常见的网络查看命令,不过在一些新系统中可能没有默认安装。

查看监听端口:

netstat -tunlp

查看指定端口:

netstat -tunlp | grep 8080

如果命令提示 netstat: command not found,可以通过安装 net-tools 软件包来使用它。

三、使用 lsof 命令查看端口占用

lsof 可以查看当前系统中打开的文件、网络连接和进程信息,也常用于查看端口占用。

查看指定端口:

lsof -i:8080

查看 TCP 端口:

lsof -i tcp:8080

查看 UDP 端口:

lsof -i udp:53

示例输出:

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

其中 PID 就是进程 ID,可以根据它进一步查看或结束进程。

四、使用 fuser 命令查看端口占用

fuser 命令可以直接查看占用某个端口的进程 ID。

查看 TCP 端口:

fuser -v 8080/tcp

查看 UDP 端口:

fuser -v 53/udp

如果需要直接结束占用端口的进程,可以使用:

fuser -k 8080/tcp

该命令会终止占用 8080 TCP 端口的进程,因此使用时需要谨慎,避免误杀重要服务。

五、根据进程 ID 查看详细信息

当已经通过 ssnetstatlsoffuser 找到进程 ID 后,可以使用 ps 命令查看进程详细信息:

ps -ef | grep 1234

或者:

ps aux | grep 1234

这样可以查看进程对应的启动命令、所属用户、资源占用情况等信息,方便判断该进程是否应该继续运行。

六、常见排查流程

遇到端口被占用时,可以按照以下流程处理:

  1. 使用 ss -tunlp | grep 端口号 查看占用端口的进程;
  2. 确认进程名称和进程 ID;
  3. 使用 ps -ef | grep PID 查看进程详细信息;
  4. 判断该进程是否为正常服务;
  5. 如果确认不需要该进程,可以使用 kill 命令结束它。

例如:

kill 1234

如果进程无法正常结束,可以使用:

kill -9 1234

不过 kill -9 属于强制结束进程,可能导致数据丢失,应谨慎使用。

七、查看监听地址的含义

在查看端口占用时,经常能看到 0.0.0.0127.0.0.1 或具体 IP 地址。

  • 0.0.0.0:8080:表示监听所有网络接口,外部机器也可以访问;
  • 127.0.0.1:8080:表示只允许本机访问;
  • 192.168.1.10:8080:表示只监听指定网卡或指定 IP。

如果服务无法从外部访问,除了检查端口是否监听,还需要检查防火墙、安全组、服务配置等。

总结

Linux 查看端口占用常用命令包括 ssnetstatlsoffuser。其中 ss 更适合作为首选工具,lsoffuser 在定位具体进程时非常方便。排查端口占用的核心思路是:先找到占用端口的进程 ID,再确认进程身份,最后根据业务需求选择保留、重启或终止该进程。掌握这些命令,可以快速解决端口冲突、服务启动失败和访问异常等问题。


标签: Linux 端口占用 进程ID