Skip to main content

如何使用Netstat命令

使用netstat监控网络连接信息 [LinuxCast IT播客] (四月 2024)

使用netstat监控网络连接信息 [LinuxCast IT播客] (四月 2024)
Anonim

netstat命令是用于显示的命令提示符命令 非常 有关计算机与其他计算机或网络设备通信的详细信息。

具体来说,netstat命令可以显示有关各个网络连接,整体和特定于协议的网络统计信息的详细信息,以及更多信息,这些信息可以帮助解决某些类型的网络问题。

Netstat命令可用性

在大多数Windows版本的命令提示符中都可以使用netstat命令,包括Windows 10,Windows 8,Windows 7,Windows Vista,Windows XP,Windows Server操作系统和某些旧版本的Windows。

某些netstat命令开关和其他netstat命令语法的可用性可能因操作系统而异。

Netstat命令语法

netstat的 -一个 -b -e -F -n -o -p 协议 -r -s -t -X -y 时间间隔 /?

如何阅读命令语法

单独执行netstat命令以显示所有活动TCP连接的相对简单列表,对于每个连接,将显示本地IP地址(您的计算机),外部IP地址(另一台计算机或网络设备)以及它们各自的端口号,以及TCP状态。

-一个 =此开关显示活动的TCP连接,具有侦听状态的TCP连接以及正在侦听的UDP端口。

-b 这个netstat开关非常类似于 -o 下面列出的开关,但不显示PID,将显示进程的实际文件名。运用 -b 过度 -o 看起来它可能会为您节省一两步,但使用它有时可以大大延长netstat完全执行所需的时间。

-e =将此开关与netstat命令一起使用可显示有关网络连接的统计信息。此数据包括自建立连接以来接收和发送的字节,单播数据包,非单播数据包,丢弃,错误和未知协议。

-F = -F switch将强制netstat命令在可能的情况下显示每个外部IP地址的完全限定域名(FQDN)。

-n =使用 -n 切换以防止netstat尝试确定外部IP地址的主机名。根据您当前的网络连接,使用此开关可以大大减少netstat完全执行所需的时间。

-o =许多故障排除任务的便捷选项, -o switch显示与每个显示的连接关联的进程标识符(PID)。有关使用的更多信息,请参阅下面的示例 netstat -o.

-p =使用 -p 切换为仅显示特定的连接或统计信息 协议 。您不能定义多个 协议 马上,你也不能执行netstat -p 没有定义 协议 .

协议 =指定时 协议 随着 -p 选项,你可以使用 TCP, UDP, tcpv6, 要么 udpv6。如果你使用 -s-p 要按协议查看统计信息,您可以使用 ICMP, IP, ICMPv6报, 要么 IPv6的 除了我提到的前四个。

-r =执行netstat -r 显示IP路由表。这与使用route命令执行相同 路线打印.

-s = -s option可与netstat命令一起使用,以按协议显示详细的统计信息。您可以使用以下方法将显示的统计信息限制为特定协议 -s 选项并指定它 协议 ,但一定要使用 -s 之前 -p 协议 何时一起使用开关。

-t =使用 -t 切换到显示当前TCP烟囱卸载状态,代替通常显示的TCP状态。

-X =使用 -X 显示所有NetworkDirect侦听器,连接和共享端点的选项。

-y = -y switch可用于显示所有连接的TCP连接模板。你不能用 -y 与任何其他netstat选项。

时间间隔 =这是您希望netstat命令自动重新执行的时间(以秒为单位),仅在您使用Ctrl-C结束循环时停止。

/? =使用帮助开关显示有关netstat命令的几个选项的详细信息。

通过使用重定向运算符将您在屏幕上看到的内容输出到文本文件,使命令行中的所有netstat信息更易于使用。有关完整说明,请参见如何将命令输出重定向到文件。

Netstat命令示例

netstat -f

在第一个示例中,我执行netstat以显示所有活动的TCP连接。但是,我确实希望以FQDN格式看到我连接的计算机-F而不是简单的IP地址。

以下是您可能会看到的示例:

活动连接 原始本地地址外部地址状态 TCP 127.0.0.1:5357 VM-Windows-7:49229 TIME_WAIT TCP 127.0.0.1:49225 VM-Windows-7:12080 TIME_WAIT TCP 192.168.1.14:49194 75.125.212.75:http CLOSE_WAIT TCP 192.168.1.14:49196 a795sm.avast.com:http CLOSE_WAIT TCP 192.168.1.14:49197 a795sm.avast.com:http CLOSE_WAIT TCP 192.168.1.14:49230 TIM-PC:wsd TIME_WAIT TCP 192.168.1.14:49231 TIM-PC:icslap ESTABLISHED TCP 192.168.1.14:49232 TIM-PC:netbios-ssn TIME_WAIT TCP 192.168.1.14:49233 TIM-PC:netbios-ssn TIME_WAIT TCP :: 1:2869 VM-Windows-7:49226 ESTABLISHED TCP :: 1:49226 VM-Windows-7:icslap ESTABLISHED

如您所见,在此示例中,netstat执行时有11个活动的TCP连接。唯一的协议(在 原 列)是TCP,这是因为我没有使用 -一个.

您还可以在中查看三组IP地址 本地地址 列 - 我的实际IP地址 192.168.1.14 以及我的环回地址的IPv4和IPv6版本,以及每个连接使用的端口。该 国外地址 列列出了FQDN( 75.125.212.75 由于某种原因没有解决)以及该端口。

最后, 州 列列出了该特定连接的TCP状态。

netstat -o

在此示例中,netstat将正常运行,因此它仅显示活动的TCP连接,但我们还希望查看相应的进程标识符-o对于每个连接,我们可以确定计算机上的哪个程序启动了每个程序。

这是计算机显示的内容:

活动连接 原始本地地址外部地址状态PID TCP 192.168.1.14:49194 75.125.212.75:http CLOSE_WAIT 2948 TCP 192.168.1.14:49196 a795sm:http CLOSE_WAIT 2948 TCP 192.168.1.14:49197 a795sm:http CLOSE_WAIT 2948

你可能注意到了新的 PID 柱。在这种情况下,PID都是相同的,这意味着我的计算机上的相同程序打开了这些连接。

确定由PID表示的程序 2948 在计算机上,您只需打开任务管理器,单击即可 流程 选项卡,并注意 图像名称 列在我正在寻找的PID旁边 PID 柱。1

使用netstat命令 -o 在追踪哪个程序占用的带宽太大时,选项非常有用。它还可以帮助找到目的地,在这种情况下,某种恶意软件甚至是其他合法的软件可能会在未经您许可的情况下发送信息。

虽然这个和前面的示例都在同一台计算机上运行,​​并且彼此只需一分钟,但您可以看到活动TCP连接列表有很大不同。这是因为您的计算机经常连接到网络上的各种其他设备并通过互联网断开连接。

netstat -s -p tcp -f

在第三个例子中,我们希望看到协议特定的统计数据-s但不是全部,只是TCP统计数据-p TCP 。我们还希望以FQDN格式显示外部地址-F.

这就是上面显示的netstat命令在示例计算机上生成的内容:

IPv4的TCP统计信息 活动开启= 77 被动开启= 21 连接尝试失败= 2 重置连接= 25 当前连接= 5 收到的细分= 7313 发送的细分= 4824 细分重新传输= 5 活动连接 原始本地地址外部地址状态 TCP 127.0.0.1:2869 VM-Windows-7:49235 TIME_WAIT TCP 127.0.0.1:2869 VM-Windows-7:49238 ESTABLISHED TCP 127.0.0.1:49238 VM-Windows-7:icslap ESTABLISHED TCP 192.168.1.14:49194 75.125.212.75:http CLOSE_WAIT TCP 192.168.1.14:49196 a795sm.avast.com:http CLOSE_WAIT TCP 192.168.1.14:49197 a795sm.avast.com:http CLOSE_WAIT

如您所见,将显示TCP协议的各种统计信息,以及当时所有活动的TCP连接。

netstat -e -t 5

在最后一个示例中,执行netstat命令以显示一些基本的网络接口统计信息-e并且这些统计数据每五秒在命令窗口中不断更新-t 5 .

这是屏幕上产生的内容:

接口统计 已收到已发送 字节22132338 1846834 单播包19113 9869 非单播数据包0 0 丢弃0 0 错误0 0 未知协议0 接口统计 已收到已发送 字节22134630 1846834 单播包19128 9869 非单播数据包0 0 丢弃0 0 错误0 0 未知协议0 ^ C

各种信息,你可以在这里看到我在中列出的信息 -e 显示上面的语法。

netstat命令仅自动执行一次额外的时间,如结果中的两个表所示。请注意 ^ C 在底部,表示Ctrl-C中止命令用于停止重新运行命令。

Netstat相关命令

netstat命令通常与其他与网络相关的命令提示符命令(如nslookup,ping,tracert,ipconfig等)一起使用。

1您可能必须手动将PID列添加到任务管理器。您可以通过从“任务管理器”中的“查看” - >“选择列”中选择“PID(进程标识符)”复选框来执行此操作。如果未找到您要查找的PID,您可能还必须单击“进程”选项卡上的“显示所有用户的进程”按钮。