如何在windows下查看端口被哪个进程占用及端口是否通畅(可访问)?

    xiaoxiao2022-07-12  193

    操作环境:windows

    在进入本文前,先思考以下几个问题:

    1. 如何查看端口使用情况?

    2. 如何查看指定端口使用情况?

    3. 如何查看端口对应的进程ID(即PID)?

    4. 如何根据PID查看是哪个程序占用了端口?

    5. 如何查看某个ip地址的端口是否通畅(可访问)?

    Windows提供了netstat命令,能够显示当前的 TCP/IP 网络连接情况,注意:只有安装了TCP/IP协议,才能使用netstat命令。 

    按照下面的步骤:

    1. 开始---->运行---->cmd,或者是window+R组合键,调出命令窗口

    2. 查看所有端口使用情况

    使用命令netstat -ano 该命令显示了端口使用情况 ip地址以及进程pid和端口状态等

     

    命令详解:

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

     

    端口状态解释:

    LISTENING时表示处于侦听状态,就是说该端口是开放的,等待连接,但还没有被连接。就像你房子的门已经敞开的,但还没有人进来。

    ESTABLISHED的意思是建立连接。表示两台机器正在通信。

    CLOSE_WAIT 对方主动关闭连接或者网络 异常导致连接中断

    TIME_WAIT我方主动调用close()断开连接,收到对方确认后状态变为TIME_WAIT

    3. 如何查看指定端口9200的使用情况以及其对应进程

    使用命令:netstat -ano|findstr "9200"

    图中可以看到端口9200的已被占用,并且占用该端口的进程的id为2876

    4. 根据步骤三种的进程ID 2876 查看是哪个程序占用的

    使用命令 tasklist|findstr "2876"

    发现是进程名为CLodopPrint32.exe在使用

     5. 如何查看某个ip地址的端口是否通畅(可访问)?

    使用telnet命令(如果该命令无法使用请在windows功能界面开启)

    下面是命令详解

    C:\Users\Administrator>telnet -h telnet [-a][-e escape char][-f log file][-l user][-t term][host [port]] -a 企图自动登录。除了用当前已登陆的用户名以外,与 -l 选项相同。 -e 跳过字符来进入 telnet 客户端提示。 -f 客户端登录的文件名 -l 指定远程系统上登录用的用户名称。 要求远程系统支持 TELNET ENVIRON 选项。 -t 指定终端类型。 支持的终端类型仅是: vt100, vt52, ansi 和 vtnt。 host 指定要连接的远程计算机的主机名或 IP 地址。 port 指定端口号或服务名。 C:\Users\Administrator>

    执行命令telnet 172.0.0.1 80001,出现如下信息说明端口不通

    执行命令telnet 10.10.7.83 6089出现如下信息说明端口6089是通的

     

     


     

    最新回复(0)