Netstat命令的作用、参数及示例详解

点击蓝字
关注我


Netstat是在内核中访问网络连接状态及其相关信息的程序,它能提供TCP连接,TCP和UDP监听,进程内存管理的相关报告。

Netstat是控制台命令,是一个监控TCP/IP网络的非常有用的工具,它可以显示路由表、实际的网络连接以及每一个网络接口设备的状态信息。Netstat用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况。

netstat命令的主要作用
  1. 显示网络连接状态:netstat命令可以显示当前计算机的网络连接状态,包括本地地址、外部地址、连接状态等信息。这有助于用户了解当前的网络连接情况,包括哪些连接是活动的,哪些连接已经关闭等。

  2. 显示网络统计信息:netstat命令还可以显示TCP/IP协议统计信息,如TCP连接、UDP端口、接口信息等。这些统计信息可以帮助用户了解网络的使用情况和性能,从而进行相应的优化和调整。

  3. 检测网络问题:通过查看网络连接状态和统计信息,netstat命令可以帮助用户诊断网络问题,如网络连接故障、网络延迟、数据包丢失等。这对于网络管理员和开发人员来说非常有用,可以帮助他们及时发现问题并进行修复。

  4. 监测网络流量:netstat命令还可以监测网络流量,通过查看网络接口的统计信息,了解网络的使用情况和流量状况。这对于优化网络配置和调整带宽限制非常有帮助,可以提高网络性能和可靠性。

  5. 防止网络攻击:通过查看网络连接状态,netstat命令可以帮助管理员防止网络攻击。管理员可以及时发现异常连接和潜在攻击,从而采取相应措施进行防范和应对。此外,通过监测网络流量,还可以发现恶意软件和网络病毒的传播情况,加强网络安全防护。

总之,netstat命令在Windows操作系统中扮演着重要的角色,它可以帮助用户更好地了解本地和远程网络的状态,检测网络中存在的问题,并进行相应的优化和调整。无论是对于网络管理员、开发人员还是普通用户来说,掌握netstat命令的使用方法和功能都是非常有价值的。


netstat命令支持的参数

netstat命令可显示协议统计信息和当前 TCP/IP 网络连接,下图以windows系统netstat命令为例,介绍其支持的参数:

Netstat命令的作用、参数及示例详解

NETSTAT [-a] [-b] [-e] [-f] [-n] [-o] [-p proto] [-r] [-s] [-t] [-x] [-y] [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。

  -q     显示所有连接、侦听端口和绑定的非侦听 TCP 端口。绑定的非侦听端口不一定与活动连接相关联。

  -r     显示路由表。

  -s    显示每个协议的统计信息。默认情况下,显示 IP、IPv6、ICMP、ICMPv6、TCP、TCPv6、UDP 和 UDPv6 的统计信息;-p 选项可用于指定默认的子网。

  -t     显示当前连接卸载状态。

  -x     显示 NetworkDirect 连接、侦听器和共享终结点。

  -y     显示所有连接的 TCP 连接模板。无法与其他选项结合使用。

interval    重新显示选定的统计信息,各个显示间暂停的间隔秒数。按 CTRL+C 停止重新显示统计信息。如果省略,则 netstat 将打印当前的配置信息一次。


TCP/UDP常见连接状态

即连接状态。

在原模式中没有状态,在用户数据报协议中也经常没有状态,于是状态列可以空出来。若有状态,通常取值为:

    LISTEN   侦听来自远方的TCP端口的连接请求;

   SYN-SENT  在发送连接请求后等待匹配的连接请求

SYN-RECEIVED 在收到和发送一个连接请求后等待对方对连接请求的确认

 ESTABLISHED 代表一个打开的连接

  FIN-WAIT-1 等待远程TCP连接中断请求,或先前的连接中断请求的确认

  FIN-WAIT-2 从远程TCP等待连接中断请求

  CLOSE-WAIT 等待从本地用户发来的连接中断请求

   CLOSING   等待远程TCP对连接中断的确认

   LAST-ACK  等待原来的发向远程TCP的连接中断请求的确认

  TIME-WAIT  等待足够的时间以确保远程TCP接收到连接中断请求的确认

    CLOSED   没有任何连接状态


netstat命令使用示例

以下是一些实际的netstat命令示例,这些示例基于Windows操作系统的命令提示符输出:


示例 1:显示所有活动的TCP连接

netstat -an
C:Users>netstat -an

Proto  Local Address          Foreign Address        State
TCP    0.0.0.0:135            0.0.0.0:0              LISTENING
TCP    0.0.0.0:445            0.0.0.0:0              LISTENING
TCP    192.168.1.100:139      0.0.0.0:0              LISTENING
TCP    192.168.1.100:49274    203.0.113.1:443        ESTABLISHED
TCP    192.168.1.100:50371    104.16.58.3:443       ESTABLISHED
...

此示例显示了所有活动的TCP连接,包括本地地址、外部地址和连接状态。


示例 2:显示所有活动的TCP和UDP连接,以及监听的端口

netstat -ano
C:Users>netstat -ano

Proto  Local Address          Foreign Address        State           PID
TCP    0.0.0.0:135            0.0.0.0:0              LISTENING       4
TCP    0.0.0.0:445            0.0.0.0:0              LISTENING       4
UDP    0.0.0.0:5353           *:*                                     1234
...

此示例显示了所有活动的TCP和UDP连接,以及监听的端口。还包括了与每个连接关联的进程ID(PID)。


示例 3:显示路由表

netstat -r
C:Users>netstat -r

===========================================================================
Interface List
01 ...00 15 17 d9 6c 22 ...... Intel(R) Ethernet Connection (2) I219-V ...
02 ...00 50 56 c0 00 01 ...... VirtualBox Host-Only Ethernet Adapter ...
03 ...00 00 00 00 00 00 00 e0 Microsoft Teredo Tunneling Adapter ...
...

===========================================================================

Routing Tables

===========================================================================
Interface List
01 ...00 15 17 d9 6c 22 ...... Intel(R) Ethernet Connection (2) I219-V ...
...

===========================================================================
IPv4 Route Table
===========================================================================
Active Routes:
Network Destination        Netmask          Gateway       Interface  Metric
0.0.0.0          0.0.0.0      192.168.1.1     192.168.1.100     20
127.0.0.0        255.0.0.0         On-link         127.0.0.1    306
127.0.0.1  255.255.255.255         On-link         127.0.0.1    306
127.255.255.255  255.255.255.255         On-link         127.0.0.1    306
192.168.1.0    255.255.255.0         On-link       192.168.1.100    276
192.168.1.100  255.255.255.255         On-link       192.168.1.100    276
192.168.1.255  255.255.255.255         On-link       192.168.1.100    276
224.0.0.0        240



示例 4:显示所有活动的TCP连接和关联的进程ID及程序名称

在Windows上,要显示每个TCP连接关联的进程ID和程序名称,你需要使用-o-b参数(请注意,-b参数可能需要管理员权限)。

netstat -anob
C:Users>netstat -anob

Active Connections

Proto  Local Address          Foreign Address        State           PID    Process Name
TCP    0.0.0.0:135            0.0.0.0:0              LISTENING       4      svchost.exe
TCP    0.0.0.0:445            0.0.0.0:0              LISTENING       4      svchost.exe
TCP    192.168.1.100:139      0.0.0.0:0              LISTENING       4      svchost.exe
TCP    192.168.1.100:49372    93.184.216.34:443      ESTABLISHED     2476   chrome.exe
...

此示例显示了所有活动的TCP连接,以及每个连接关联的进程ID和程序名称。


示例 5:显示特定协议的统计信息

netstat -s -p tcp
C:Users>netstat -s -p tcp

TCP statistics:

Active Opens                = 1234
Active Closes               = 567
Failed Connection Attempts  = 89
Reset Connections           = 10
Current Connections         = 23
...

此示例显示了TCP协议的统计信息,包括活动打开的连接、活动关闭的连接、失败的连接尝试、重置的连接和当前连接数等。


示例 6:显示网络接口的统计信息

netstat -i
C:Users>netstat -i

Interface Statistics

Interface               RX Packets  RX Bytes  TX Packets  TX Bytes  Collisions
Local Area Connection *    1234567   12345678    9876543   987654323        0
...

此示例显示了每个网络接口的统计信息,包括接收和发送的数据包数量、接收和发送的字节数以及冲突数(如果适用)。


示例 7:显示特定端口的统计信息

如果想知道特定端口(例如端口80)的统计信息,你可以使用以下命令:

netstat -ano | findstr
C:Users>netstat -ano | findstr :80

此命令会显示所有与端口80相关的连接,包括本地地址、外部地址、状态以及关联的进程ID。


示例 8:显示网络连接的详细信息

使用-e参数可以显示关于每个连接的扩展信息,如路由表项。

netstat -ane
C:Users>netstat -ane

Active Connections

Proto  Recv-Q  Send-Q  Local Address          Foreign Address        State
TCP    0       0       192.168.1.100:12345    203.0.113.1:80         ESTABLISHED
...


示例 9:显示网络连接的时间戳

在较新版本的Windows上,你可以使用-t参数来显示每个连接建立或最后活动的时间。

netstat -ant
C:Users>netstat -ant

Active Connections

Proto  Recv-Q  Send-Q  Local Address          Foreign Address        State       Timestamp
TCP    0       0       192.168.1.100:12345    203.0.113.1:80         ESTABLISHED   2023-10-23 12:34:56
...


示例 10:显示持续时间较长的连接

可以使用-p参数与-t参数结合,来查找持续时间较长的连接。

netstat -antp
C:Users>netstat -antp | sort-object -property Timestamp -Descending | select-object -First 10

此命令会列出持续时间最长的10个连接。注意,这个示例使用了PowerShell的管道和排序功能。


示例 11:显示IP、TCP、UDP的统计信息

netstat -s -e
C:Users>netstat -s -e

IP, ICMP, TCP, and UDP statistics:

IP Packets Received = 123456
IP Packets Sent = 654321
ICMP Messages Received = 7890
ICMP Messages Sent = 123
TCP Segments Received = 234567
TCP Segments Sent = 765432
TCP Connections Established = 890
TCP Connections Terminated = 789
UDP Datagrams Received = 345678
UDP Datagrams Sent = 987654
...

此命令会显示IP、ICMP、TCP和UDP的统计信息,包括接收和发送的数据包数量、建立的TCP连接数等。

注意:上述命令和输出可能会根据你使用的Windows版本和配置有所不同。同时,某些命令可能需要管理员权限才能完全执行。此外,如果你在使用类Unix系统(如Linux或macOS),netstat命令的语法和选项可能会有所不同。


END

原文始发于微信公众号(运维小站OpsStation):Netstat命令的作用、参数及示例详解

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/260621.html

(0)
电脑万事屋的头像电脑万事屋

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!