如何利用netstat信息

我们在名为“R2DUO”的2008R2机器上安装了名为“Seamer”的应用程序,在主机文件中IP地址设置为192.61.247.37,而172.26.127.40是以太网卡的IP地址。我们在局域网中有两个系统,称为R2TMBER, R2LEAF。 一个function应该实现时,与端口5009连接。截至目前,function没有达到,当我检查netstat -a我可以看到这些条目,

TCP 0.0.0.0:5009 R2DUO:0 LISTENING TCP 127.0.0.1:445 R2DUO:64181 ESTABLISHED TCP 127.0.0.1:5009 R2DUO:49519 ESTABLISHED TCP 127.0.0.1:49156 R2DUO:5009 TIME_WAIT around 50 entries are there now TCP 127.0.0.1:49519 R2DUO:5009 ESTABLISHED TCP 127.0.0.1:64181 R2DUO:microsoft-ds ESTABLISHED TCP 127.0.0.1:65190 R2DUO:5009 TIME_WAIT again 50 entries are there TCP 172.26.127.42:5009 R2DUO:64445 ESTABLISHED TCP 172.26.127.42:64445 R2DUO:5009 ESTABLISHED TCP 192.61.247.37:5009 R2TMBER:50334 ESTABLISHED TCP 192.61.247.37:61552 R2LEAF:5009 ESTABLISHED 

这些都是我现在所知道的知识,先听5009模式然后build立连接,但是之后突然进入TIME_WAIT,然后build立连接再次进入时间等待,最后build立与其他两个系统的连接LAN。 任何机构可以指导我在系统设置中的任何错误,或者我需要检查任何networking相关的东西。 我想知道下面显示的这个序列在netstat背后的逻辑首先它将是0.0.0.0:portnumber然后它将是127.0.0.1(loopback):portnumber然后它是ethernetIp:portnumber最后它将与ipaddress系统进入在主机文件和其他两台机器等。

根据评论更新; 检查服务是否与某些潜在的MS服务冲突;
服务名称和传输协议端口号registry

 winfs 5009 tcp Microsoft Windows Filesystem [Simon_Skaria] 2006-01 winfs 5009 udp Microsoft Windows Filesystem [Simon_Skaria] 2006-01 

如果您对理解netstat信息非常感兴趣,我认为您可能有兴趣阅读关于TCP连接握手的维基百科文章以及连接生命周期。 另外,你提到了与TCP套接字编程相关的连接状态,但实际上可以忽略所有这些,因为它实际上很简单。 (好…;-)

当你打电话给netstat -a你要求所有的连接都在监听和连接。

基本上LISTENING行表示在TCP端口5009上有一些进程侦听,这是很好的,因为这是你的应用程序…

 TCP 0.0.0.0:5009 R2DUO:0 LISTENING 

但是,当某个远程进程连接到TCP套接字5009时,控制5009的程序通常会分叉另一个进程或线程来处理连接,所以你实际上最终得到了netstat -a

 TCP 0.0.0.0:5009 R2DUO:0 LISTENING TCP 127.0.0.1:5009 R2DUO:49519 ESTABLISHED 

这是最初的监听者,加上连接的远程进程。 即这是您的客户端程序连接到服务器。

进一步的连接可以创build更多的行,

 TCP 0.0.0.0:5009 R2DUO:0 LISTENING TCP 127.0.0.1:5009 R2DUO:49519 ESTABLISHED TCP 127.0.0.1:5009 XXX:NNN ESTABLISHED TCP 127.0.0.1:5009 YYY:NNN ESTABLISHED 

时间的等待

在这个答案里有一个相当不错的TIME_WAIT状态的解释。
https://stackoverflow.com/questions/337115/setting-time-wait-tcp

 TCP 127.0.0.1:65190 R2DUO:5009 TIME_WAIT TCP 127.0.0.1:NNNN YYYTO:5009 TIME_WAIT TCP 127.0.0.1:NNNN RXXXO:5009 TIME_WAIT TCP 127.0.0.1:NNNN XXTXX:5009 TIME_WAIT ...many more... 

TIME_WAIT是在客户端的连接结束时出现的状态,客户端通过向FIN发送ACK来主动closures连接,但是尽可能地还有来自连接的另一端的分组,因此客户端连接处于TIME_WAIT状态,该状态总是比数据包的TTL长,请参阅此处以及有关TIME_WAIT TCP状态的深入讨论。

端口5009似乎已经注册了Microsoft Windows文件系统(winfs)服务,所以你将不得不提供你的服务和设置的进一步细节,除了你在netstat输出中看到的是什么问题。

负载TIME_WAIT连接

 TCP 127.0.0.1:65190 R2DUO:5009 TIME_WAIT TCP 127.0.0.1:NNNN YYYTO:5009 TIME_WAIT TCP 127.0.0.1:NNNN RXXXO:5009 TIME_WAIT TCP 127.0.0.1:NNNN XXTXX:5009 TIME_WAIT ...many more... 

基本上,客户端正在连接,然后立即断开连接多次,因此应用程序中的某些事情(如身份validation,应用程序协议不匹配或与底层TCP不相关的事情)会早一些。

我认为这表明configuration存在一些问题,即客户端一旦连接就无法继续,因此客户端closures了与服务器的连接。 结果是很多连接被迅速closures。 因此你看到这些是TIME_WAIT

一些可能性是客户端和服务器之间的某种密码问题,或者某些其他的应用程序configuration错误,这会导致客户端的突然closures。