Netstat是在内核中访问网络连接状态及其相关信息的程序,它能提供TCP连接,TCP和UDP监听,进程内存管理的相关报告。
Netstat是控制台命令,是一个监控TCP/IP网络的非常有用的工具,它可以显示路由表、实际的网络连接以及每一个网络接口设备的状态信息。Netstat用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况。
-
显示网络连接状态:netstat命令可以显示当前计算机的网络连接状态,包括本地地址、外部地址、连接状态等信息。这有助于用户了解当前的网络连接情况,包括哪些连接是活动的,哪些连接已经关闭等。
-
显示网络统计信息:netstat命令还可以显示TCP/IP协议统计信息,如TCP连接、UDP端口、接口信息等。这些统计信息可以帮助用户了解网络的使用情况和性能,从而进行相应的优化和调整。
-
检测网络问题:通过查看网络连接状态和统计信息,netstat命令可以帮助用户诊断网络问题,如网络连接故障、网络延迟、数据包丢失等。这对于网络管理员和开发人员来说非常有用,可以帮助他们及时发现问题并进行修复。
-
监测网络流量:netstat命令还可以监测网络流量,通过查看网络接口的统计信息,了解网络的使用情况和流量状况。这对于优化网络配置和调整带宽限制非常有帮助,可以提高网络性能和可靠性。
-
防止网络攻击:通过查看网络连接状态,netstat命令可以帮助管理员防止网络攻击。管理员可以及时发现异常连接和潜在攻击,从而采取相应措施进行防范和应对。此外,通过监测网络流量,还可以发现恶意软件和网络病毒的传播情况,加强网络安全防护。
总之,netstat命令在Windows操作系统中扮演着重要的角色,它可以帮助用户更好地了解本地和远程网络的状态,检测网络中存在的问题,并进行相应的优化和调整。无论是对于网络管理员、开发人员还是普通用户来说,掌握netstat命令的使用方法和功能都是非常有价值的。
netstat命令可显示协议统计信息和当前 TCP/IP 网络连接,下图以windows系统中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 将打印当前的配置信息一次。
即连接状态。
在原模式中没有状态,在用户数据报协议中也经常没有状态,于是状态列可以空出来。若有状态,通常取值为:
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
命令示例,这些示例基于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