4

使用 Netstat 或 Powershell 查看 Windows 监听端口占用

 1 year ago
source link: https://www.sysgeek.cn/windows-check-listening-ports/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client
Powershell

监听端口是计算机当前正在使用的端口,用于建立计算机之间的网络连接。虽然打开、监听和关闭网络端口的过程是无缝的,但识别当前打开或监听的端口可以帮助解决与网络相关的问题。

在 Windows 中,有两个主要命令可用于检查打开的监听端口:

这两个命令对于 IT Pro 和系统管理员非常有用,本文将介绍如何使用「命令提示符」和 PowerShell 查看 Windows 打开和监听的端口。

监听端口的类型

打开或监听的端口是 Windows 中应用程序或服务正在使用的端口,用于与其它网络设备建立连接。在 Windows 中有两种类型的连接端口:

  • TCP(传输控制协议)
  • UDP(用户数据报协议)

Windows 中的不同应用程序会打开不同的端口(TCP 或 UDP),UDP 速度更快但不太安全,而 TCP 速度较慢但更安全。

使用 Netstat 命令查看 Windows 监听端口

要查看 Windows 占用的监听端口,请按以下步骤操作:

1在「开始」菜单中搜索 cmd – 选择「以管理员身份运行」以打开「命令提示符」。

2按以下方式运行 Netstat 命令:

复制
netstat -a
#或
netstat -ano
  • -a 开关显示 Windows 正在监听的所有活动连接,包括 TCP 和 UDP。
  • -o 开关显示每个进程的 PID。
  • -n 开关以数值形式显示 IP 地址和端口号。
使用 Netstat 在命令提示符中检查侦听端口
使用 Netstat 在命令提示符中检查侦听端口

上述命令会输出以下内容:

  • 协议(TCP 或 UDP)
  • 本地地址(当前 Windows 设备的 IP 地址)
  • 外部地址(远程设备的 IP 地址)
  • 状态(Listening、Established、Time_Wait 和 Close_Wait)
  • PID(打开该端口的进程 PID)

3「本地地址」中的「:」冒号后面跟的数字是监听端口号。如果只查看监听状态的端口,可以运行以下命令:

复制
netstat -aon | findstr /i listening
使用 Netstat 在命令提示符中列出所有侦听端口
使用 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 命令输出以下信息:

1可以使用 Where-Object 过滤器对输出内容进行筛选,它类似于 findstr 命令:

复制
Get-NetTCPConnection | Where-Object {$_.State -eq 'Listen'}
使用 PowerShell 查看 Windows 监听端口占用
使用 PowerShell 查看 Windows 监听端口占用

2还可以使用 -State 参数按状态筛选连接列表:

复制
Get-NetTCPConnection -State Listen

这将显示所有处于「监听」状态的端口。

3也可以使用端口号来应用筛选器:

复制
Get-NetTCPConnection -LocalPort 22

4可以运行以下命令以获取每个连接的详细信息:

复制
Get-NetTCPConnection | Select-Object -Property *
Get-NetTCPConnection 选择对象属性
Get-NetTCPConnection 选择对象属性

Get-NetTCPConnectionNetstat 之间的主要区别在于,可以使用 Invoke-Command 命令远程调用。

PowerShell 还提供了另一个 GetNetStat 命令 ,用于在 Windows 以外的操作系统(如 Linux)上查看打开或监听的端口。GetNetStat 是一个跨平台模块,可在安装 PowerShell 的计算机上运行。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK