Windows监听端口查看指南:Netstat与Powershell命令详解
Windows监听端口查看指南:Netstat与Powershell命令详解
在Windows系统中,监听端口是计算机当前正在使用的端口,用于建立计算机之间的网络连接。虽然打开、监听和关闭网络端口的过程是无缝的,但识别当前打开或监听的端口可以帮助解决与网络相关的问题。本文将介绍两种主要方法:使用Netstat命令和PowerShell命令,帮助IT专业人士和系统管理员快速查看Windows系统中正在使用的监听端口。
在Windows中,有两个主要命令可用于检查打开的监听端口:
- Netstat(命令提示符)
- Get-NetTCPConnection(PowerShell)
这两个命令对于IT Pro和系统管理员非常有用,本文将介绍如何使用「命令提示符」和PowerShell查看Windows打开和监听的端口。
监听端口的类型
打开或监听的端口是Windows中应用程序或服务正在使用的端口,用于与其它网络设备建立连接。在Windows中有两种类型的连接端口:
- TCP(传输控制协议)
- UDP(用户数据报协议)
Windows中的不同应用程序会打开不同的端口(TCP或UDP),UDP速度更快但不太安全,而TCP速度较慢但更安全。
使用Netstat命令查看Windows监听端口
要查看Windows占用的监听端口,请按以下步骤操作:
- 在「开始」菜单中搜索
cmd
,选择「以管理员身份运行」以打开「命令提示符」。 - 按以下方式运行Netstat命令:
netstat -a#或netstat -ano
-a
开关显示Windows正在监听的所有活动连接,包括TCP和UDP。-o
开关显示每个进程的PID。-n
开关以数值形式显示IP地址和端口号。
使用Netstat在命令提示符中检查侦听端口
上述命令会输出以下内容:
- 协议(TCP或UDP)
- 本地地址(当前Windows设备的IP地址)
- 外部地址(远程设备的IP地址)
- 状态(Listening、Established、Time_Wait和Close_Wait)
- PID(打开该端口的进程PID)
3.「本地地址」中的「:」冒号后面跟的数字是监听端口号。如果只查看监听状态的端口,可以运行以下命令:
netstat -aon | findstr /i listening
使用Netstat在命令提示符中列出所有侦听端口
「外部地址」字段中的0.0.0.0:0
表示该端口用于广播。
您可以配合以下参数与Netstat命令一起使用:
参数 | 描述 |
---|---|
-a | 显示包括TCP和UDP在内的所有连接。 |
-n | 以数值形式显示IP地址和端口号。 |
-o | 显示进程PID。 |
-p | 显示特定协议的连接。 |
-r | 显示内核路由表。 |
-s | 按协议显示统计信息。 |
-t | 显示当前活动的连接。 |
-f | 将IP地址解析为FQDN。 |
-e | 显示网络统计信息,包括错误、字节数、发送和接收的数据包等。 |
interval | 命令自动再次运行的时间间隔(以秒为单位)。 |
使用Powershell查看Windows监听端口
Get-NetTCPConnection cmdlet是PowerShell中与Netstat命令相对应的命令。它能够查看与Netstat类似的信息。您可以使用Get-NetTCPConnection
命令输出以下信息:
- 本地地址
- 本地端口
- 远程地址
- 远程端口
- 状态
- 可以使用
Where-Object
过滤器对输出内容进行筛选,它类似于findstr
命令:
Get-NetTCPConnection | Where-Object {$_.State -eq 'Listen'}
使用PowerShell查看Windows监听端口占用
- 还可以使用
-State
参数按状态筛选连接列表:
Get-NetTCPConnection -State Listen
这将显示所有处于「监听」状态的端口。
- 也可以使用端口号来应用筛选器:
Get-NetTCPConnection -LocalPort 22
- 可以运行以下命令以获取每个连接的详细信息:
Get-NetTCPConnection | Select-Object -Property *
Get-NetTCPConnection选择对象属性
Get-NetTCPConnection与Netstat之间的主要区别在于,可以使用Invoke-Command
命令远程调用。
PowerShell还提供了另一个GetNetStat
命令,用于在Windows以外的操作系统(如Linux)上查看打开或监听的端口。GetNetStat是一个跨平台模块,可在安装PowerShell的计算机上运行。