常用操作系统管理 返回

  • 如何解决端口已被使用的问题

    • 发布人:peadmin
    • 阅读量:44
  • Web 服务器启动失败 8080 端口已被使用

    拉贾·安巴扎甘2021 年 2 月 21 日

    在这篇文章中,我们将尝试了解Web服务器 启动 失败 端口 8080 已在使用中的错误以及如何修复它。

    Web 服务器无法启动。 8080 端口已被使用

    为什么端口 8080 已被使用?

    在网络中,IP 地址标识每台机器。同样,网络端口标识机器上运行的应用程序或进程。当应用程序想要使用一个端口时,操作系统会绑定一个。但是,当多个应用程序要使用同一个端口时,就会出现端口冲突。

    在我们的例子中,端口 8080 已经被另一个应用程序使用,因此web 服务器无法启动。通常,您会在端口 8080、8081、9090 等情况下收到此错误。因此,通常,如果您收到“端口 8080 已在使用”错误,则可以确定另一个应用程序已在使用该端口.

    这很可能是由于您的最终配置错误,多次运行应用程序,或者没有使用正确的启动和关闭脚本

    修复Web服务器启动失败

    众所周知,原因是另一个进程正在同一端口上运行。要解决这个问题,您有两个选择。

    1. 尝试在 8080 以外的端口上运行应用程序。
    2. 识别并停止在该特定端口上运行的进程

    选项 1:在不同的端口上运行您的 Web 服务器

    大多数应用程序框架都提供了更改它们侦听的端口的选项。例如,您可以通过以下方式更改 Spring Boot 应用程序的应用程序端口。

    您可以在 application.properties 文件中提供具有不同端口号的server.port配置。

    
     

    server.port=9090

    代码语言: 属性 (properties )

    您还可以将端口号作为应用程序参数传递。

    
     

    java - jar my-server.jar --server.port=9090

    代码语言: bash ( bash )

    或 JVM 参数。

    
     

    java - jar -Dserver.port=9090 my-server.jar

    代码语言: bash ( bash )

    这样,应用程序在不同的端口上启动。因此“Web 服务器无法启动。避免了端口 8080 已在使用中”错误。

    有一篇关于如何以5 种不同方式更改默认 tomcat 端口号的详细帖子。您还可以在其官方文档中找到有关 Spring Boot 配置如何工作的更多详细信息。

    选项 2:杀死在端口 8080 上运行的服务器

    有时,另一个进程只是同一应用程序的旧实例或您不想运行的应用程序。在这些情况下,最好识别并杀死它们,以便您可以在该特定端口上启动应用程序。为此,您需要首先确定流程。其次,你需要杀死它。

    假设您在端口 8080 上运行时遇到错误。那么您应该使用以下命令来识别进程或服务。

    在 Linux/Mac 上查找并杀死在端口 8080 上运行的进程

    以下命令之一应提供在端口 8080 上运行的应用程序或服务的进程 ID (PID)。

    
     

    sudo lsof -n -i :8080 | grep LISTEN sudo netstat -nlp | grep :8080 sudo ss -lptn 'sport = :8080'

    代码语言: bash ( bash )

    修复 Web 服务器无法启动。 8080 端口已被使用

    python http服务器在端口8080上运行,PID为25321

    使用上述输出中的 PID,您可以使用以下命令终止该进程。

    
     

    #to kill process gracefully kill -15 25321

    代码语言: bash ( bash )

    或者

    
     

    #To force kill a process kill -9 25321

    代码语言: bash ( bash )

    通过杀掉占用8080端口的进程,web服务器就可以正常启动了。

    为了您的使用,请将进程 ID 替换为您在机器上找到的进程 ID。

    在windows上查找并杀死在8080端口上运行的进程

    同样,您可以运行以下命令来识别 Windows 中端口上运行的进程。

    
     

    netstat -ona | findstr :8080 | findstr LISTENING

    代码语言: bash ( bash )

    在 windows 中查找端口 8080 上运行的进程的命令

    进程 23928 监听 8080 端口

    获得进程 ID 后,可以使用以下命令将其杀死。

    
     

    taskkill /PID 25321 /F

    代码语言: bash ( bash )

    正如我之前所说,对于您的机器,进程 ID 可能不同。/F那里可以强制终止进程。在大多数情况下,您不需要此标志。

    结论

    因此,我们了解了端口的工作原理以及如何解决应用程序启动时出现“端口 8080 已被使用”的错误。如果您喜欢这篇文章,那么您可能想阅读以下标题

     

    原文

  • 2022-10-01