用 netstat 查出端口被占用,该怎么强制关闭进程?Windows 和 Linux 步骤有区别吗?

2025-07-22 0 286 百度已收录

启动程序时突然弹出 “端口已被占用”,是不是特让人抓狂?好不容易用 netstat 查出哪个端口被占了,却不知道怎么关掉那个进程,新手朋友估计得急得直跺脚。小编前几天帮同事处理这问题,他在 Windows 上折腾半天没搞定,换成 Linux 又一脸懵 —— 其实啊,Windows 和 Linux 关闭进程的步骤确实有点不一样,但都不算难,今天就一步步教你,看完你也能轻松搞定!


先复习下:怎么用 netstat 查出占用端口的进程?

不管是 Windows 还是 Linux,想关进程先得知道谁在占用端口,这步得用 netstat,简单说两句:
在 Windows 的命令提示符里输 “netstat -ano | findstr “端口号””,比如查 8080 端口就输 “netstat -ano | findstr “8080””,结果里 “LISTENING” 后面的数字就是进程 ID(比如 1234)。
在 Linux 的终端里输 “netstat -tunlp | grep 端口号”,比如 “netstat -tunlp | grep 8080”,会直接显示进程名和 ID(比如 “java 1234”)。
记不住也没关系,用到时翻出来看看,先把这步搞定,才能往下关进程。


Windows 下:三步搞定,任务管理器是好帮手

Windows 关进程相对直观,图形界面操作多,新手容易上手,小编分步骤给你说:

(1)用 netstat 找到进程 ID(PID)

就像刚才说的,打开命令提示符(Win+R 输 “cmd”),输 “netstat -ano | findstr “端口号””。比如你要开的程序需要用 8080 端口,输完命令后,假设看到 “TCP 0.0.0.0:8080 0.0.0.0:0 LISTENING 1234”,那 1234 就是你要找的 PID。
小编上次查 8080 端口,PID 是 1234,记下来就行,这步不难吧?

(2)打开任务管理器,找到对应的进程

按 Ctrl+Shift+Esc 直接打开任务管理器,点 “详细信息” 标签,这里能看到 “PID” 列,找到刚才记的 1234,旁边就是进程名,比如 “java.exe”—— 这就是占用 8080 端口的家伙。
要是没看到 PID 列,右键点表头(比如 “名称”),勾选 “PID” 就行,很简单的。

(3)强制关闭进程,一步到位

右键点那个进程,选 “结束任务”,弹出来的确认框点 “是”,搞定!这时候再启动你的程序,应该就不会提示端口被占用了。
有个新手朋友跟我说,他点了 “结束任务” 没反应,咋办?你试试右键选 “结束进程树”,有时候进程有子进程,得一起关掉才行,小编试过,这招特管用。


Linux 下:全靠命令行,但记住两句就行

Linux 没有图形界面的任务管理器(当然也有,但新手可能找不到),全靠命令行操作,看着复杂,其实就两句命令的事。

(1)用 netstat 找到进程 ID(PID)

打开终端,输 “sudo netstat -tunlp | grep 端口号”。比如查 80 端口,输 “sudo netstat -tunlp | grep 80”,会显示类似 “tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 5678/nginx”,这里 5678 就是 PID,nginx 是进程名。
输命令时可能要输密码,别慌,输的时候屏幕不显示,输完回车就行,Linux 都这样。

(2)用 kill 命令强制关掉进程

直接输 “sudo kill -9 5678”(5678 换成你的 PID),回车 —— 搞定!“-9” 就是强制关闭的意思,跟 Windows 里 “结束进程树” 差不多。
小编第一次用 Linux 时,输完 kill 命令没反应,后来才发现 PID 输错了,你输的时候多核对两遍,准没错。要是还关不掉,试试 “sudo kill -9 -5678”(在 PID 前加个 “-”),这是关掉整个进程组,一般都能解决。


两者步骤对比:一张表看明白区别

怕你记混,小编做了个简单对比表,一眼就能看出不一样:
用 netstat 查出端口被占用,该怎么强制关闭进程?Windows 和 Linux 步骤有区别吗?

步骤 Windows 系统 Linux 系统
查进程 ID netstat -ano | findstr “端口号” sudo netstat -tunlp | grep 端口号
关进程工具 任务管理器(图形界面) kill 命令(命令行)
强制关闭方式 右键 “结束进程树” sudo kill -9 PID
特殊情况处理 重启任务管理器重试 用 kill -9 -PID 关闭进程组

你看,Windows 靠鼠标点,Linux 靠命令输,核心都是先找 PID 再关进程,只是操作方式不一样。


新手常遇到的问题:关不掉咋办?

(1)进程 “杀不死”,提示 “拒绝访问”

Windows 里遇到这情况,多半是没以管理员身份运行命令提示符。你右键 “命令提示符”,选 “以管理员身份运行”,再关进程试试,小编上次就是这么解决的。
Linux 里提示 “permission denied”,加个 “sudo” 就行,比如 “sudo kill -9 5678”,管理员权限啥都能搞定。

(2)关掉进程后,端口还是被占用

这可能是进程没彻底关掉,或者有残留。Windows 里你重启下电脑,基本能解决;Linux 里输 “sudo netstat -tunlp | grep 端口号” 再查一次,要是还有,换个 PID 再 kill 一次,小编遇到过一次,连杀两次就好了。

(3)不知道端口对应的程序,不敢乱关

别慌,查 PID 的时候,Windows 任务管理器里能看到进程名(比如 “java.exe” 可能是 Tomcat),Linux 里 netstat 结果直接显示进程名(比如 “nginx”),根据名字判断是不是你要关的程序,不确定就先百度下进程名是啥,再动手。


小编的实在话

其实不管是 Windows 还是 Linux,只要记住 “先找 PID,再强制关” 这两步,基本都能搞定。Windows 用鼠标点着方便,Linux 命令行看着酷,新手不用怕命令行,多输两次就熟了。
遇到问题别慌,多试几次,实在不行重启电脑 —— 小编跟你说,重启有时候比啥都管用。关进程前最好确认下,别把系统进程关了,不然可能出麻烦。多练两次,你也能像老手一样,两分钟解决端口占用问题,真的不难!

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

兔格号 SEO运维 用 netstat 查出端口被占用,该怎么强制关闭进程?Windows 和 Linux 步骤有区别吗? https://www.tglzm.com/seo/wei-seo/3409.html

一个独行者,独揽万古

常见问题

相关文章

评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务