Windows-Server-2008

如何利用 netstat 資訊

  • March 20, 2012

我們在名為“R2DUO”的 2008R2 機器上安裝了一個名為“Seamer”的應用程序,其 IP 地址在主機文件中設置為 192.61.247.37,172.26.127.40 是乙太網卡的 IP 地址。我們在 LAN 中還有兩個系統,名為 R2TMBER 和R2葉。當與埠 5009 建立連接時,應該實現一個功能。截至目前,該功能尚未實現,當我檢查 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處於監聽模式,然後它會建立連接。但是之後它突然進入TIME_WAIT,然後建立連接,再次進入timewait,最後它與其他兩個系統建立連接區域網路。任何人都可以指導我在系統設置中出現任何錯誤嗎?或者我是否需要檢查任何與網路相關的東西。我想知道下面顯示的 netstat 中這個序列背後的邏輯首先它將是 0.0.0.0:portnumber 然後它將是 127.0.0.1(loopback):portnumber 然後是 ethernetIp:portnumber 最後它將與輸入的系統的 ipaddress在主機文件和其他兩台機器等..

根據評論更新;檢查該服務是否與某些底層 MS 服務不衝突;

服務名稱和傳輸協議埠號系統資料庫

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

這是最初的偵聽器,加上連接的遠端程序。即這是您連接到伺服器的客戶端程序。

進一步的連接會創建額外的線,像這樣;

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 主動關閉連接,但可能仍有數據包來自連接的另一端,因此客戶端連接處於 TIME_WAIT 狀態,該狀態始終比數據包 TTL 長,請參閱thisthat以深入討論 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...

基本上,您的客戶端正在連接,然後立即斷開連接,多次重複,因此應用程序中較早的某些事情,例如身份驗證,或應用程序協議不匹配,或與底層 TCP 無關的事情。

我認為這表明配置存在一些問題,即客戶端一旦連接就無法繼續,因此客戶端關閉了與伺服器的連接。結果是很多連接很快就關閉了。因此你看到這些是 TIME_WAIT

這種情況的一些可能性是客戶端和伺服器之間的某種密碼問題,或者其他一些會導致客戶端突然關閉的應用程序錯誤配置。

引用自:https://serverfault.com/questions/371542