如何查看端口被谁占用了?
你好,我是Hasity
今天分享的内容是:Windows/Linux端口被占用如何解决?
问题出现
Description:
Web server failed to start. Port 8082 was already in use.
Action:
Identify and stop the process that's listening on port 8082 or configure this application to listen on another port.
解决办法(Win)
我们发现是8082端口被占用,要在Windows上查看端口占用情况,可以按照以下步骤进行操作:
打开命令窗口:Win+R,输入cmd,回车。
查看所有端口情况:netstat -ano
。
查看指定端口使用情况:netstat -aon|findstr "端口号"
。
根据上一步看到的PID查看相应的进程或程序:tasklist|findstr "PID号"
。
我们发现是tim这个程序占用了这个端口
结束相应进程:taskkill /f /t /im 进程名
。
然后重新运行程序,成功运行
解决办法(Linux)
- 查看所有端口情况:
netstat -anp | grep xxx
netstat -tunlp |grep 端口号
netstat -anp和netstat -tunlp这两条命令都用于展示网络状态,但它们展示的内容和重点有所不同。
netstat -anp命令会显示所有的网络连接以及监听的端口和进程等相关情况。其中,“-a”参数表示显示所有的连接和监听端口,无论其状态如何;“-n”参数表示以数字形式显示地址和端口号,而不尝试使用域名、服务名或用户名;“-p”参数表示显示进程的PID和名称。
netstat -tunlp命令则主要用于显示TCP和UDP的端口状态,以及监听端口和相关进程的情况。其中,“-t”参数表示显示TCP协议的端口状态,“-u”参数表示显示UDP协议的端口状态,“-n”参数表示以数字形式显示地址和端口号,“-l”参数表示仅显示正在监听的端口。
因此,可以说netstat -anp命令显示的是所有网络连接、监听端口和相关进程的概况,而netstat -tunlp命令则侧重于展示TCP和UDP协议的端口状态和监听端口。
- 根据PID值杀死该进程
sudo kill -9 进程PID
进程PID"是占用该端口的进程的进程ID。通过"sudo kill -9"命令可以强制终止该进程。
请注意,在使用这些命令时,需要具有管理员权限。如果你没有管理员权限,则需要在命令前加上"sudo"。