使用Windows NetStat命令检查Windows中的打开端口
在本教程中,我们将学习如何运行“netstat”命令以检查Windows操作系统中的打开端口。
我们还将查看命令选项以及如何使用“findstr”命令(类似于grep)来过滤NetStat输出。
要检查打开端口,请以管理员身份打开命令提示符(或者powershell),然后按如下方式运行'netstat'命令:
netstat -aon
该命令显示大量信息。
我们应该注意的是聆听状态的本地地址。
正如我们在上一个屏幕截图中看到的,在我的Windows 10计算机中,端口22(SSH)是打开的。
管理员可以运行以下命令仅在没有所有其他详细信息的情况下仅显示已打开的端口:
netstat -aon | findstr /i listening
一个重要的一点是,即使处于收听状态,Windows防火墙也可能阻止端口。
在具有高级安全性的Windows Defender防火墙中,必须有一个相应的入站防火墙规则来匹配侦听端口(任何具有绿色复选标记的内容是开放规则)。
输出的外部地址列显示了连接的远程端的计算机/服务器的IP地址和端口。
要检查端口是否从远程计算机打开,管理员可以根据Windows计算机的IP地址从远程计算机运行“Telnet”命令。
例如,要检查端口22是否已打开,我将从远程计算机运行“telnet”命令,如下所示:
telnet IP_ADDRESS 22
用Windows计算机的实际IP地址替换IP_Address。
使用Findstr过滤NetStat
管理员可以使用“findstr”cmd命令(类似于'grep')来基于字符串模式来过滤'netstat'命令数据。
例如,运行以下命令以检查“time_wait”状态下的TCP连接。
netstat -a | findstr /i TIME_WAIT
'/i'选项是不敏感匹配的。
命令选项
Windows NetStat命令,没有任何命令行参数,显示有源TCP连接。
它还包括一些有用的命令选项,以显示各种形式的网络连接和端口,例如基于协议显示连接和打开的端口,查找连接/端口,查看网络静态数据的进程ID,并找到利用连接的应用程序和端口。
-a | 显示Windows正在侦听的所有网络连接和端口(包括IPv4或者IPv6地址)。 |
-b | 输出显示哪些应用程序正在使用每个活动连接和端口(需要管理权限)。 |
-e | 显示网络统计信息,例如错误、字节数以及发送和接收的数据包。 |
-n | 以数字格式显示地址和端口。 |
-f | 使用时,输出将包含IP地址的完全限定域名(FQDN)(如果可用)。 |
-o | 显示包含进程ID(PID)的附加列。 |
-p | 显示特定协议的数据(例如,-p TCP)。协议可以是以下之一:TCP、UDP、TCPv6或者UDPv6。如果与-s选项结合使用,则协议可以是TCP、UDP、ICMP、IP、TCPv6、UDPv6、ICMPv6或者IPv6。 |
-r | 检查Windows路由表。 |
-s | 显示每个协议(IPv4、IPv6、ICMPv4、ICMPv6、TCP和UDP)的详细网络统计信息。 |
interval | 设置自动更新输出的时间间隔(秒)。 |
示例:使用netstat命令
列出所有活动的TCP连接:
netstat
检查打开端口:
netstat -aon | findstr /i listening
只想查看TCP协议的信息:
netstat -a -p tcp
显示网络统计信息:
netstat -s
实时网络监视在以下示例中,我们设置了5秒的时间间隔,以实时检查主动网络连接。
数字5导致命令每五秒钟重复一次(按“Ctrl + C”以QUIT)。
netstat -n 5
如果我们需要有关Windows NetStat命令的更多信息,在命令提示符中 执行netstat \?
。