网络其他

关注公众号 jb51net

关闭
网络 > 网络其他 >

网络管理常用命令之三 Netstat 命令详解(图文)

牟海川

Netstat

Netstat是一个监控TCP/IP网络的非常有用的工具,它可以显示路由表、实际的TCP网络连接,TCP和UDP监听,进程内存管理以及每一个网络接口设备的状态信息。Netstat用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况,让用户得知有哪些网络连接正在运作。

如果你的计算机有时候接收到的数据包导致出错数据或故障,你不必感到奇怪,TCP/IP可以容许这些类型的错误,并能够自动重发数据包。但如果累计的出错情况数目占到所接收的IP数据报相当大的百分比,或者它的数目正迅速增加,那么你就应该使用Netstat查一查为什么会出现这些情况了。

在命令行模式下,输入 netstat /? 可以显示帮助信息。

clip_image002

Netstat将提示以下统计信息:

1、协议(TCP或UDP)

2、本地地址:在本地计算机和正在使用的端口号的 IP 地址。 如果不指定-n参数显示在本地计算机的 IP 地址相对应的名称和端口的名称。如果端口尚未建立,端口号显示为星号。

3、外部地址:套接字连接到远程计算机的 IP 地址和端口号。 如果不指定-n参数显示对应的 IP 地址和端口的名称。 如果端口尚未建立,端口号显示为星号。

4、状态:表示一个TCP连接的状态,可能的状态如下所示:

LISTENING(Listening for a connection.) 侦听来自远方的TCP端口的连接请求

SYN-SENT(Active; sent SYN. Waiting for a matching connection request after having sent a connection request.) 再发送连接请求后等待匹配的连接请求

SYN-RECEIVED(Sent and received SYN. Waiting for a confirming connection request acknowledgment after having both received and sent connection requests.) 再收到和发送一个连接请求后等待对方对连接请求的确认

ESTABLISHED(Connection established.) 代表一个打开的连接

FIN-WAIT-1(Closed; sent FIN.) 等待远程TCP连接中断请求,或先前的连接中断请求的确认

FIN-WAIT-2(Closed; FIN is acknowledged; awaiting FIN.) 从远程TCP等待连接中断请求

CLOSE-WAIT(Received FIN; waiting to receive CLOSE.) 等待从本地用户发来的连接中断请求

CLOSING(Closed; exchanged FIN; waiting for FIN.) 等待远程TCP对连接中断的确认

LAST-ACK(Received FIN and CLOSE; waiting for FIN ACK.) 等待原来的发向远程TCP的连接中断请求的确认

TIME-WAIT(In 2 MSL (twice the maximum segment length) quiet wait after close. ) 等待足够的时间以确保远程TCP接收到连接中断请求的确认

CLOSED(Connection is closed.) 没有任何连接状态

有关TCP 连接的状态的详细信息,请参阅 RFC 793

不带选项

不带参数的netstat命令,显示活动的 TCP 连接。官方描述为:Used without parameters, netstat displays active TCP connections.

clip_image004

-a 选项

显示所有活动的 TCP 连接和计算机正在侦听的 TCP 和 UDP 端口。官方描述为:Displays all active TCP connections and the TCP and UDP ports on which the computer is listening.

-a 选项常用于获得你的本地系统开放的端口,用它您可以自己检查你的系统上有没有被安装木马。小于1024的端口通常运行一些网络服务,大于1024的端口用来与远程机器建立连接。

clip_image006

-e 选项

本选项用于显示关于以太网的统计数据。它列出的项目包括传送的数据报的总字节数、错误数、删除数、数据报的数量和广播的数量。这些统计数据既有发送的数据报数量,也有接收的数据报数量。这个选项可以用来统计一些基本的网络流量。此选项可以与 -s选项组合使用。-s参数会按照不同的协议分类统计。

如果网络变得缓慢或异常,可以通过该命令查看丢弃或错误数据包的比例。若接收的错误和发送的错误接近为零或全为零,网络的接口无问题。但当这两个字段有100个以上的出错分组时就可以认为是高出错率了。高的发送错表示本地网络饱和或在主机与网络之间有不良的物理连接; 高的接收错表示整体网络饱和、本地主机过载或物理连接有问题,可以用Ping命令统计误码率,进一步确定故障的程度。netstat -e 和ping结合使用能解决一大部分网络故障。

clip_image008

-n 选项

以数字形式显示地址和端口号,基本上可看作是 netstat –a的数字形式。

一般用netstat -an 来显示所有连接的端口并用数字表示。

clip_image010

-f 选项

显示外部地址的完全限定域名

clip_image012

-b 选项

显示包含于创建每个连接或监听端口的可执行组件。在某些情况下已知可执行组件拥有多个独立组件,并且在这些情况下包含于创建连接或监听端口的组件序列被显示。这种情况下,可执行组件名在底部的 [] 中,顶部是其调用的组件,等等,直到 TCP/IP部分。注意此选项可能需要很长时间,如果没有足够权限可能失败。

clip_image014

-o 选项

显示拥有的与每个连接关联的进程ID。

clip_image016

-r 选项

显示路由表,与route print命令的输出结果一样。

clip_image018

-s 选项

显示每个协议的统计。

clip_image020

-t 选项

显示当前连接的卸载状态

clip_image022

Interval选项

重新显示所选的统计,在每次显示之间暂停 interval 秒。按 CTRL+C 停止重新显示统计。如果省略该参数,netstat 将打印一次当前的配置信息。