netstat
Netstat用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况。
如果你的计算机有时候接收到的数据报导致出错数据或故障,你不必感到奇怪,TCP/IP可以容许这些类型的错误,并能够自动重发数据报。但如果累计的出错情况数目占到所接收的IP数据报相当大的百分比,或者它的数目正迅速增加,那么你就应该使用Netstat查一查为什么会出现这些情况了。
Netstat详细参数列表
(Winxp)
C:\>netstat/?
显示协议统计信息和当前TCP/IP网络连接。
NETSTAT[-a][-b][-e][-n][-o][-pproto][-r][-s][-v][interval]
-a显示所有连接和监听端口。
-b显示包含于创建每个连接或监听端口的可执行组件。在某些情况下已知可执行组件
拥有多个独立组件,并且在这些情况下包含于创建连接或监听端口的组件序列被显示。
这种情况下,可执行组件名在底部的[]中,顶部是其调用的组件,等等,直到TCP/IP
部分。注意此选项可能需要很长时间,如果没有足够权限可能失败。
-e显示以太网统计信息。此选项可以与-s
选项组合使用。
-n以数字形式显示地址和端口号。
-o显示与每个连接相关的所属进程ID。
-pproto显示proto指定的协议的连接;proto可以是
下列协议之一:TCP、UDP、TCPv6或UDPv6。
如果与-s选项一起使用以显示按协议统计信息,proto可以是下列协议之一:
IP、IPv6、ICMP、ICMPv6、TCP、TCPv6、UDP或UDPv6。
-r显示路由表。
-s显示按协议统计信息。默认地,显示IP、
IPv6、ICMP、ICMPv6、TCP、TCPv6、UDP和UDPv6的统计信息;
-p选项用于指定默认情况的子集。
-v与-b选项一起使用时将显示包含于
为所有可执行组件创建连接或监听端口的
组件。
interval重新显示选定统计信息,每次显示之间
暂停时间间隔(以秒计)。按CTRL+C停止重新
显示统计信息。如果省略,netstat显示当前
配置信息(只显示一次)
(Win2000)
C:\>netstat/?
DisplaysprotocolstatisticsandcurrentTCP/IPnetworkconnections.
NETSTAT[-a][-e][-n][-s][-pproto][-r][interval]
-aDisplaysallconnectionsandlisteningports.
-eDisplaysEthernetstatistics.Thismaybecombinedwiththe-s
option.
-nDisplaysaddressesandportnumbersinnumericalform.
-pprotoShowsconnectionsfortheprotocolspecifiedbyproto;proto
maybeTCPorUDP.Ifusedwiththe-soptiontodisplay
per-protocolstatistics,protomaybeTCP,UDP,orIP.
-rDisplaystheroutingtable.
-sDisplaysper-protocolstatistics.Bydefault,statisticsare
shownforTCP,UDPandIP;the-poptionmaybeusedtospecify
asubsetofthedefault.
intervalRedisplaysselectedstatistics,pausingintervalseconds
betweeneachdisplay.PressCTRL+Ctostopredisplaying
statistics.Ifomitted,netstatwillprintthecurrent
configurationinformationonce.
Netstat的一些常用选项
netstat-s——本选项能够按照各个协议分别显示其统计数据。如果你的应用程序(如Web浏览器)运行速度比较慢,或者不能显示Web页之类的数据,那么你就可以用本选项来查看一下所显示的信息。你需要仔细查看统计数据的各行,找到出错的关键字,进而确定问题所在。
netstat-e——本选项用于显示关于以太网的统计数据。它列出的项目包括传送的数据报的总字节数、错误数、删除数、数据报的数量和广播的数量。这些统计数据既有发送的数据报数量,也有接收的数据报数量。这个选项可以用来统计一些基本的网络流量。
netstat-r——本选项可以显示关于路由表的信息,类似于后面所讲使用routeprint命令时看到的信息。除了显示有效路由外,还显示当前有效的连接。
netstat-a——本选项显示一个所有的有效连接信息列表,包括已建立的连接(ESTABLISHED),也包括监听连接请求(LISTENING)的那些连接,断开连接(CLOSE_WAIT)或者处于联机等待状态的(TIME_WAIT)等
netstat-n——显示所有已建立的有效连接。
微软公司故意将这个功能强大的命令隐藏起来是因为它对于普通用户来说有些复杂。我们已经知道:Netstat它可以用来获得你的系统网络连接的信息(使用的端口,在使用的协议等),收到和发出的数据,被连接的远程系统的端口,Netstat在内存中读取所有的网络信息。
在InternetRFC标准中,Netstat的定义是:Netstat是在内核中访问网络及相关信息的程序,它能提供TCP连接,TCP和UDP监听,进程内存管理的相关报告。
对于好奇心极强的人来说,紧紧有上面的理论是远远不够的,接下来我们来详细的解释一下各个参数的使用,看看执行之后会发生什么,显示的信息又是什么意思,好了,废话不说了,让我们一起来实践一下吧:)
C:\>netstat-a
ActiveConnections
ProtoLocalAddressForeignAddressState
TCPEagle:ftpEagle:0LISTENING
TCPEagle:telnetEagle:0LISTENING
TCPEagle:smtpEagle:0LISTENING
TCPEagle:httpEagle:0LISTENING
TCPEagle:epmapEagle:0LISTENING
TCPEagle:httpsEagle:0LISTENING
TCPEagle:microsoft-dsEagle:0LISTENING
TCPEagle:1030Eagle:0LISTENING
TCPEagle:6059Eagle:0LISTENING
TCPEagle:8001Eagle:0LISTENING
TCPEagle:8005Eagle:0LISTENING
TCPEagle:8065Eagle:0LISTENING
TCPEagle:microsoft-dslocalhost:1031ESTABLISHED
TCPEagle:1031localhost:microsoft-dsESTABLISHED
TCPEagle:1040Eagle:0LISTENING
TCPEagle:netbios-ssnEagle:0LISTENING
TCPEagle:1213218.85.139.65:9002CLOSE_WAIT
TCPEagle:2416219.133.63.142:httpsCLOSE_WAIT
TCPEagle:2443219.133.63.142:httpsCLOSE_WAIT
TCPEagle:2907192.168.1.101:2774CLOSE_WAIT
TCPEagle:2916192.168.1.101:telnetESTABLISHED
TCPEagle:2927219.137.227.10:4899TIME_WAIT
TCPEagle:2928219.137.227.10:4899TIME_WAIT
TCPEagle:2929219.137.227.10:4899ESTABLISHED
TCPEagle:3455218.85.139.65:9002ESTABLISHED
TCPEagle:netbios-ssnEagle:0LISTENING
UDPEagle:microsoft-ds*:*
UDPEagle:1046*:*
UDPEagle:1050*:*
UDPEagle:1073*:*
UDPEagle:1938*:*
UDPEagle:2314*:*
UDPEagle:2399*:*
UDPEagle:2413*:*
UDPEagle:2904*:*
UDPEagle:2908*:*
UDPEagle:3456*:*
UDPEagle:4000*:*
UDPEagle:4001*:*
UDPEagle:6000*:*
UDPEagle:6001*:*
UDPEagle:6002*:*
UDPEagle:6003*:*
UDPEagle:6004*:*
UDPEagle:6005*:*
UDPEagle:6006*:*
UDPEagle:6007*:*
UDPEagle:6008*:*
UDPEagle:6009*:*
UDPEagle:6010*:*
UDPEagle:6011*:*
UDPEagle:1045*:*
UDPEagle:1051*:*
UDPEagle:netbios-ns*:*
UDPEagle:netbios-dgm*:*
UDPEagle:netbios-ns*:*
UDPEagle:netbios-dgm*:*
我们拿其中一行来解释吧:
ProtoLocalAddressForeignAddressState
TCPEagle:2929219.137.227.10:4899ESTABLISHED
协议(Proto):TCP,指是传输层通讯协议(什么?不懂?请用baidu搜索"TCP",OSI七层和TCP/IP四层可是基础^_^)
本地机器名(LocalAddress):Eagle,俗称计算机名了,安装系统时设置的,可以在“我的电脑”属性中修改,本地打开并用于连接的端口:2929)
远程机器名(ForeignAddress):219.137.227.10
远程端口:4899
状态:ESTABLISHED
状态列表
LISTEN:在监听状态中。
ESTABLISHED:已建立联机的联机情况。
TIME_WAIT:该联机在目前已经是等待的状态。
-a参数常用于获得你的本地系统开放的端口,用它您可以自己检查你的系统上有没有被安装木马(ps:有很多好程序用来检测木马,但你的目的是想成为真正的hacker,手工检测要比只按一下“scan”按钮好些----仅个人观点)。如果您Netstat你自己的话,发现下面的信息:
Port12345(TCP)Netbus
Port31337(UDP)BackOrifice
祝贺!您中了最常见的木马(^_^,上面4899是我连别人的,而且这个radmin是商业软件,目前我最喜欢的远程控制软件)
如果你需要木马及其端口列表的话,去国内的H站找找,或者baidu,google吧
*****************************************************************
#一些原理:也许你有这样的问题:“在机器名后的端口号代表什么?
例子:Eagle:2929
小于1024的端口通常运行一些网络服务,大于1024的端口用来与远程机器建立连接。
*****************************************************************
继续我们的探讨,使用-n参数。(Netstat-n)
Netstat-n基本上是-a参数的数字形式:
C:\>netstat-n
ActiveConnections
ProtoLocalAddressForeignAddressState
TCP127.0.0.1:445127.0.0.1:1031ESTABLISHED
TCP127.0.0.1:1031127.0.0.1:445ESTABLISHED
TCP192.168.1.180:1213218.85.139.65:9002CLOSE_WAIT
TCP192.168.1.180:2416219.133.63.142:443CLOSE_WAIT
TCP192.168.1.180:2443219.133.63.142:443CLOSE_WAIT
TCP192.168.1.180:2907192.168.1.101:2774CLOSE_WAIT
TCP192.168.1.180:2916192.168.1.101:23ESTABLISHED
TCP192.168.1.180:2929219.137.227.10:4899ESTABLISHED
TCP192.168.1.180:3048192.168.1.1:8004SYN_SENT
TCP192.168.1.180:3455218.85.139.65:9002ESTABLISHED
-a和-n是最常用的两个,据我不完全测试得出以下结果:
1.-n显示用数字化主机名,即IP地址,而不是compute_name【eagle】
2.-n只显示TCP连接(没有在哪里见过微软的相关文档,有哪个朋友见到的话,记得告诉我喔^_^)
得到IP等于得到一切,它是最容易使机器受到攻击的东东,所以隐藏自己IP,获得别人的IP对hacker来说非常重要,现在隐藏IP技术很流行,但那些隐藏工具或服务真的让你隐身吗?我看不见得,呵呵,代理,跳板不属于今天讨论,一个获取对方IP的简单例子请参考我前面的文章【用DOS命令查QQ好友IP地址】
-a和-n是最常用的命令,如果要显示一些协议的更详细信息,就要用-p这个参数了,它其实是-a和-n的一个变种,我们来看一个实例,你就明白了:【netstat-p@@@其中@@@为TCP或者UDP】
C:\>netstat-ptcp
ActiveConnections
ProtoLocalAddressForeignAddressState
TCPEagle:microsoft-dslocalhost:1031ESTABLISHED
TCPEagle:1031localhost:microsoft-dsESTABLISHED
TCPEagle:1213218.85.139.65:9002CLOSE_WAIT
TCPEagle:2416219.133.63.142:httpsCLOSE_WAIT
TCPEagle:2443219.133.63.142:httpsCLOSE_WAIT
TCPEagle:2907192.168.1.101:2774CLOSE_WAIT
TCPEagle:2916192.168.1.101:telnetESTABLISHED
TCPEagle:2929219.137.227.10:4899ESTABLISHED
TCPEagle:3455218.85.139.65:9002ESTABLISHED
继续我们的参数讲解-e
含义:本选项用于显示关于以太网的统计数据。它列出的项目包括传送的数据报的总字节数、错误数、删除数、数据报的数量和广播的数量。这些统计数据既有发送的数据报数量,也有接收的数据报数量。这个选项可以用来统计一些基本的网络流量。
C:\>netstat-e
InterfaceStatistics
ReceivedSent
Bytes14309020644998789
Unicastpackets691805363603
Non-unicastpackets8865262386
Discards00
Errors00
Unknownprotocols4449
若接收错和发送错接近为零或全为零,网络的接口无问题。但当这两个字段有100个以上的出错分组时就可以认为是高出错率了。高的发送错表示本地网络饱和或在主机与网络之间有不良的物理连接;高的接收错表示整体网络饱和、本地主机过载或物理连接有问题,可以用Ping命令统计误码率,进一步确定故障的程度。netstat-e和ping结合使用能解决一大部分网络故障。
接下来我们开始讲解两个比较复杂的参数-r和-s,也正因为如此,笔者把他放到最后讲解,这里面可能会涉及到其他方面的知识,以后在我的博客中将会继续写出来,呵呵,最近比较忙
-r是用来显示路由表信息,我们来看例子:
C:\>netstat-r
RouteTable(路由表)
===========================================================================
InterfaceList(网络接口列表)
0x1...........................MSTCPLoopbackinterface
0x10003...000cf1027681......Intel(R)PRO/WirelessLAN21003BMiniPCI
dapter
0x10004...00023f0005cb......RealtekRTL8139/810xFamilyFastEthernet
C
===========================================================================
===========================================================================
ActiveRoutes:(动态路由)
NetworkDestinationNetmaskGatewayInterfaceMetric
0.0.0.00.0.0.0192.168.1.254192.168.1.18130
0.0.0.00.0.0.0192.168.1.254192.168.1.18020
127.0.0.0255.0.0.0127.0.0.1127.0.0.11
192.168.1.0255.255.255.0192.168.1.180192.168.1.18020
192.168.1.0255.255.255.0192.168.1.181192.168.1.18130
192.168.1.180255.255.255.255127.0.0.1127.0.0.120
192.168.1.181255.255.255.255127.0.0.1127.0.0.130
192.168.1.255255.255.255.255192.168.1.180192.168.1.18020
192.168.1.255255.255.255.255192.168.1.181192.168.1.18130
224.0.0.0240.0.0.0192.168.1.180192.168.1.18020
224.0.0.0240.0.0.0192.168.1.181192.168.1.18130
255.255.255.255255.255.255.255192.168.1.180192.168.1.1801
255.255.255.255255.255.255.255192.168.1.181192.168.1.1811
DefaultGateway:192.168.1.254(默认网关)
===========================================================================
PersistentRoutes:(静态路由)
None
C:\>
-s参数的作用前面有详细的说明,来看例子
C:\>netstat-s
IPv4Statistics(IP统计结果)
PacketsReceived=369492(接收包数)
ReceivedHeaderErrors=0(接收头错误数)
ReceivedAddressErrors=2(接收地址错误数)
DatagramsForwarded=0(数据报递送数)
UnknownProtocolsReceived=0(未知协议接收数)
ReceivedPacketsDiscarded=4203(接收后丢弃的包数)
ReceivedPacketsDelivered=365287(接收后转交的包数)
OutputRequests=369066(请求数)
RoutingDiscards=0(路由丢弃数)
DiscardedOutputPackets=2172(包丢弃数)
OutputPacketNoRoute=0(不路由的请求包)
ReassemblyRequired=0(重组的请求数)
ReassemblySuccessful=0(重组成功数)
ReassemblyFailures=0(重组失败数)
DatagramsSuccessfullyFragmented=0(分片成功的数据报数)
DatagramsFailingFragmentation=0(分片失败的数据报数)
FragmentsCreated=0(分片建立数)
ICMPv4Statistics(ICMP统计结果)包括Received和Sent两种状态
ReceivedSent
Messages285784(消息数)
Errors00(错误数)
DestinationUnreachable53548(无法到达主机数目)
TimeExceeded00(超时数目)
ParameterProblems00(参数错误)
SourceQuenches00(源夭折数)
Redirects00(重定向数)
Echos25211(回应数)
EchoReplies20725(回复回应数)
Timestamps00(时间戳数)
TimestampReplies00(时间戳回复数)
AddressMasks00(地址掩码数)
AddressMaskReplies00(地址掩码回复数)
TCPStatisticsforIPv4(TCP统计结果)
ActiveOpens=5217(主动打开数)
PassiveOpens=80(被动打开数)
FailedConnectionAttempts=2944(连接失败尝试数)
ResetConnections=529(复位连接数)
CurrentConnections=9(当前连接数目)
SegmentsReceived=350143(当前已接收的报文数)
SegmentsSent=347561(当前已发送的报文数)
SegmentsRetransmitted=6108(被重传的报文数目)
UDPStatisticsforIPv4(UDP统计结果)
DatagramsReceived=14309(接收的数据包)
NoPorts=1360(无端口数)
ReceiveErrors=0(接收错误数)
DatagramsSent=14524(数据包发送数)
C:\>