Windows查看端口占用并关闭进程

查看所有端口

netstat -ano

指定端口

netstat -ano|findstr "端口号"

例如 netstat -ano|findstr 2828
在这里插入图片描述

netstat

简介

显示协议统计信息和当前 TCP/IP 网络连接。

语法

netstat [-a] [-b] [-e] [-f] [-n] [-o] [-p <proto>] [-q] [-r] [-s] [-t] [-x] [-y] [interval]

参数

参数描述
-a显示所有连接和侦听端口。
-b显示在创建每个连接或侦听端口时涉及的可执行文件。在某些情况下,已知可执行文件托管多个独立的组件,此时会显示创建连接或侦听端口时涉及的组件序列。在此情况下,可执行文件的名称位于底部 [] 中,它调用的组件位于顶部,直至达到 TCP/IP。注意,此选项可能很耗时,并且可能因为你没有足够的权限而失败。
-e显示以太网统计信息。此选项可以与 -s 选项结合使用。
-f显示外部地址的完全限定域名(FQDN)。
-n以数字形式显示地址和端口号。
-o显示拥有的与每个连接关联的进程 ID (PID)。
-p 显示 proto 指定的协议的连接;proto 可以是下列任何一个: TCP、UDP、TCPv6 或 UDPv6。如果与 -s 选项一起用来显示每个协议的统计信息,proto 可以是下列任何一个: IP、IPv6、ICMP、ICMPv6、TCP、TCPv6、UDP 或 UDPv6。
-q显示所有连接、侦听端口和绑定的非侦听 TCP 端口。绑定的非侦听端口不一定与活动连接相关联。
-r显示路由表。
-s显示每个协议的统计信息。默认情况下,显示 IP、IPv6、ICMP、ICMPv6、TCP、TCPv6、UDP 和 UDPv6 的统计信息;-p 选项可用于指定默认的子网。
-t显示当前连接卸载状态。
-x显示 NetworkDirect 连接、侦听器和共享终结点。
-y显示所有连接的 TCP 连接模板。无法与其他选项结合使用。
interval重新显示选定的统计信息,各个显示间暂停的间隔秒数。按 CTRL+C 停止重新显示统计信息。如果省略,则 netstat 将打印当前的配置信息一次。

使用端口的服务
查看使用端口的服务需要用进程号进行过滤。比如前面查出来的 4772。

tasklist|findstr "进程号"

在这里插入图片描述

taskkill命令用法详解

关闭服务

taskkill /pid  进程号 /t /f

在这里插入图片描述

定义:

是用来终止进程的;
可用来结束至少一个进程,可以根据进程 id 或图像名来结束进程;

taskkill [/S system [/U username [/P [password]]]]
{ [/FI filter] [/PID processid | /IM imagename] } [/F] [/T]

参数列表:

    /S    system           指定要连接到的远程系统。

    /U    [domain\]user    指定应该在哪个用户上下文
                           执行这个命令。

    /P    [password]       为提供的用户上下文指定
                           密码。如果忽略,提示输入。

    /F                     指定要强行终止
                           进程。

    /FI   filter           指定筛选进或筛选出查询的
                           的任务。

    /PID  process id       指定要终止的进程的
                           PID。

    /IM   image name       指定要终止的进程的
                           图像名。通配符 '*'
                           可用来指定所有图像名。

    /T                     Tree kill: 终止指定的进程
                           和任何由此启动的子进程。

    /?                     显示帮助/用法。

筛选器:

 筛选器名                有效运算符                          有效值
-----------         ---------------                   --------------
    STATUS              eq, ne                      运行 | 没有响应
    IMAGENAME           eq, ne                            图像名
    PID            eq, ne, gt, lt, ge, le                 PID 值
    SESSION       eq, ne, gt, lt, ge, le                  会话编号
    CPUTIME       eq, ne, gt, lt, ge, le               CPU 时间,格式为
    MEMUSAGE      eq, ne, gt, lt, ge, le               内存使用,单位为 KB
    USERNAME             eq, ne                           用户名,格式为
                                                         [domain\]user
    MODULES              eq, ne                             DLL 名
    SERVICES             eq, ne                             服务名
    WINDOWTITLE          eq, ne                             窗口标题

注意:

  1. 只有带有筛选器的情况下,才能跟 /IM 切换使用通配符 ‘*’。
  2. 其中eq代表“equal”, ne代表”not equal”!
    注意: 远程进程总是要强行终止,
    不管是否指定了 /F 选项。

例如:

TASKKILL /S system /F /IM notepad.exe /T
TASKKILL /PID 1230 /PID 1241 /PID 1253 /T
TASKKILL /F /IM notepad.exe
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
您好,我能够帮您回答这个问题。以下是通过Java代码检测电脑某端口是否被占用并显示占用程序的方法: ```java import java.net.*; public class CheckPort { public static void main(String[] args) { int port = 8080; // 要检测的端口号 try { ServerSocket serverSocket = new ServerSocket(port); serverSocket.close(); System.out.println("该端口号未被占用!"); } catch (Exception e) { System.out.println("该端口号已被占用!"); String command = "lsof -i:" + port; // Mac/Linux系统下获取占用端口进程命令 // String command = "netstat -aon|findstr \"" + port + "\""; // Windows系统下获取占用端口进程命令 try { Process process = Runtime.getRuntime().exec(command); BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream())); String line; while ((line = reader.readLine()) != null) { System.out.println(line); } } catch (Exception ex) { ex.printStackTrace(); } } } } ``` 以上代码通过创建一个ServerSocket来检测指定端口是否被占用,若未被占用关闭ServerSocket,若被占用则通过执行命令(Mac/Linux系统下为“lsof -i:端口号”,Windows系统下为“netstat -aon|findstr '端口号'”)获取占用端口进程信息并输出到控制台。 注意:要想获取占用某个端口进程信息,需要在Mac/Linux系统下安装lsof命令,并使用管理员权限运行Java程序(否则执行命令时可能无法获取到全部信息);Windows系统下执行命令可能需要使用管理员权限或在命令提示符中切换到系统盘(如C:\)再执行命令。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

荷逸同学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值