共用方式為


TCP/IP 通訊疑難解答指引

試用我們的虛擬代理程式 - 它可協助您快速識別並修正常見的 Active Directory 複寫問題。

本文旨在協助您針對 TCP/IP 通訊問題進行疑難解答。

疑難排解工具

ping 命令對於測試基本連線很有用。 不過,您不應該依賴它來證明整體連線能力。 Telnet 和 PsPing 更實用,原因如下:

  • 這些工具只能使用 TCP 或 UDP (PsPing) 做為傳輸通訊協定,來測試與應用層的連線能力。
  • 您可以指定要使用的連接埠。 因此,您可以巡覽防火牆上開啟的埠。
  • 您可以連線到目的地節點上的任何「接聽」埠,以驗證特定應用程式埠的存取權。

疑難解答檢查清單

步驟 1:擷取網路圖

擷取網路圖,其中詳細說明位於受影響區域路徑中的裝置。 具體來說,請注意下列裝置:

  • 防火牆
  • IPS (入侵防護/預防系統)
  • DPI (深層封包檢查)
  • WAN 加速器

此圖表可協助您將問題的原因可視化並識別到何處。

步驟 2:網路追蹤

網路追蹤有助於查看發生問題時網路層級發生的情況。

步驟 3:Ping 計算機的本機 IP 位址

嘗試 Ping 電腦的本機 IP 位址。

如果節點無法偵測其本機 IP,則本機堆疊無法運作。 請注意顯示的任何錯誤訊息。

如果您收到一 般失敗 錯誤,此錯誤表示沒有有效的介面可處理要求。 此問題可能是因為硬體問題或堆疊問題所造成。

檢查您是否在系統匣的 [網络連線 ] 圖示上看到紅色的 “X” 字元或黃色驚嘆號。 紅色 X 表示 Windows 未偵測到網路連線。 黃色驚嘆號表示網路連線狀態指標 (NSCI) 探查檢查失敗。

若要針對此問題進行疑難解答,請確認網路適配器報告連線能力。 請確定網路適配器已插入,且節點連線的交換器埠未處於錯誤狀態。 您可以變更纜線、交換器埠和網路適配器,以縮小發生此問題的位置。 不過,問題最終會在OS之外。 若要進一步調查,請連絡硬體廠商。

網路驅動程式與 Windows 之間也可能會發生問題。 此問題通常是因為堆疊中的損毀。 使用下列疑難解答步驟:

  1. 請確定節點上的最新位 (TCP/IP、NDIS、AFD、Winsock 等) 。

  2. 執行下列命令來重設IP和 Winsock。 備份所有網路設定。

    netsh -c interface dump > C:\netConfig.txt
    netsh int ip reset
    netsh winsock reset
    
  3. 重新啟動節點。

  4. 重新啟動之後還原網路設定。 只有在介面名稱尚未變更,或腳本已更新為使用新名稱時,此作業才能運作。

    netsh -f C:\netConfig.txt
    
  5. 視需要卸載或重新安裝網路適配器驅動程式。

  6. 檢查並移除第三方篩選驅動程式 (例如防病毒軟體) 。

  7. 嘗試使用網路以安全模式啟動電腦。 如果網路安全模式可運作,請在 MSConfig 中停用所有第三方應用程式和服務,以執行「全新開機」程式,然後逐一重新啟用它們,直到問題傳回為止。 然後,您可以連絡廠商以尋求支援。

    1. 如果這些專案都未成功,則問題可能是登錄損毀。
    2. 如果您有登錄 (的備份複本,例如實體備份或系統還原點) ,您可以嘗試將節點還原至先前運作中的組態。 擷取損毀的根本原因可能很困難且非常耗時。 即使發現損毀,知道造成損毀的原因也更具挑戰性。 手動修改損毀的登錄機碼會讓節點進入不支援的狀態。 因此,我們建議客戶還原或重載節點,以更正損毀。

如果 NSCI 無法通過探查檢查, (黃色驚嘆號) ,這不一定表示連線問題。 請確定一般通訊會如其所應發生。

  • 若是如此,調查應該特別著重於 NCSI 為何無法通過探查檢查。 另一個主題會涵蓋此專案的詳細數據。
  • 如果沒有,請先調查連線問題,因為在還原連線之後,可能會更正此問題。

步驟 4:針對 Ping 或 telnet 測試期間發生的錯誤訊息進行疑難解答

如果節點可以 Ping 或 telnet 至相同子網或網路區段上的節點,這會確認外部連線運作正常。 若要瞭解是否存在基本連線問題,仍然需要進一步測試。

如果節點無法 ping/telnet 至相同子網/網路區段上的節點。 請注意顯示的任何錯誤訊息。

  1. 目的地主機無法連線 的錯誤表示節點所傳送的ARP要求未取得回應。

  2. 從您要測試的節點收集兩面追蹤。 請確定來源節點所傳送的 ARP 要求到達目的地節點,而且目的地節點會據以回復。 您應該會在來源追蹤中看到此回復。 如果此程式失敗,問題可能是設定錯誤或影響基礎結構的其他問題。

    可能的原因可能是:

    1. 不正確或不相符的 VLAN。
    2. 主幹與存取埠) (不正確的交換器埠設定。
    3. 其他硬體問題。
  3. 要求逾時錯誤表示 ARP 要求收到回應,但節點所傳送的 ICMP 回顯請求並未取得 ICMP 回應回應。 這本身並不會指出問題。 網路或節點上的防火牆軟體可能會封鎖ICMP流量。 關閉 Windows) (防火牆配置檔,或透過防火牆廠商支援的 ICMP 測試方法加以停用,可能會有説明。

    1. Telnet 和 PsPing 更適合用於測試。 從來源節點執行 Telnet 或 PsPing 至接聽埠 (上的目的地節點,例如 445) 。
    2. 如果步驟 1 成功,外部連線就會正常運作。 繼續測試基本連線能力。
    3. 如果步驟 1 未成功 (,而且如果防火牆配置檔) 停用,請收集雙面 netsh netconnection 案例追蹤以進一步進行疑難解答。

步驟 5:對預設閘道進行 Ping 或 Telnet

當節點可以偵測其預設網關時,就可以從來源節點 (外部連線,例如現成連線) 。 若要瞭解是否存在基本連線問題,仍然需要進一步測試。 如果節點無法 Ping 或 Telnet 至其預設閘道,這表示路由器上已停用 ICMP 回復。

步驟 6:檢查影響特定目的地節點的問題

如果來源節點可以 ping、Telnet 或 PsPing 至目的地子網上的其他節點,則基礎結構內的基本連線和路由即可運作。 此結果指向會影響特定目的地節點的問題。

  1. 嘗試將 Telnet 或 PsPing 移至應用程式正在接聽的特定埠 (例如,TCP 連接埠 445 for SMB) 。 如果連線成功,則可以確認基本應用層級連線能力。 在此情況下,您必須連絡應用程式廠商,以協助調查應用程式未連線的原因。

    注意事項

    例如,如果問題是無法連線到共用,則應用程式廠商可能是 Microsoft。 在這些情況下,使用雙面 netsh netconnection 案例追蹤來收集其他資訊,並協助您確認網路堆疊中沒有任何問題會很有用。

  2. 如果特定埠的連線不成功:

    1. 請確定埠處於「接聽」狀態:
      Cmd: netstat -nato | findstr :<port>
      PowerShell: Get-NetTcpConnection -LocalPort <port>
    2. 暫時停用所有防火牆配置檔。 (注意:僅停用配置檔。請勿停用 service.)
      如果成功,則必須重新設定防火牆,以允許其特定埠上的應用程式流量。
    3. 一次移除一個第三方應用程式,並在每次移除之間進行測試。
      如果成功,請連絡有問題軟體的廠商。
    4. 嘗試使用網路安全模式。
      如果成功,請使用 MSConfig 執行節點的「全新開機」,然後逐一啟用第三方應用程式和服務,以找出原因,直到問題再次發生為止。
    5. 當您重現連線嘗試時,應該執行從來源到受影響目的地節點的 netsh netconnection 案例追蹤。 網路 SDP 也會有説明。
  3. 如果節點無法 Ping、Telnet 或 PsPing 至目的地子網上的其他節點,則問題可能與基礎結構相關。 同樣地,ICMP 可能會在環境中遭到封鎖。 因此,請使用 Telnet 或 PsPing 來驗證連線能力,以連線到已知接聽埠。 此時,必須要有雙面網路追蹤,才能顯示網路上發生封包遺失的位置。 請先確定這兩個追蹤都在執行中,再嘗試連線能力測試,以便擷取問題。

常見問題和解決方案

主機的 TCP/IP 連線似乎已停止

發生此問題的原因是 TCP 和 UDP 佇列中的數據遭到封鎖,或網路或使用者層級軟體延遲問題。

若要針對此問題進行疑難解答,請使用 netstat -a 命令來顯示本機計算機上 TCP 和 UDP 連接埠上所有活動的狀態。
建立良好 TCP 連線的狀態,同時在傳送和接收佇列中具有零 (0) 位元組。 如果在任一佇列中封鎖數據,或狀態不規則,則連線可能發生錯誤。 如果沒有,您可能會遇到網路或用戶層級軟體延遲。

使用 Lmhosts 進行名稱解析時連接時間過長

發生此問題的原因是會依序剖析 Lmhosts 檔案,以尋找沒有 [#PRE] 選項的專案。

若要針對此問題進行疑難解答,請將經常使用的專案放在靠近檔案頂端的附近,並將 #PRE 專案放在接近底部的附近。 如果將專案新增至大型 Lmhosts 檔案的結尾,請使用 #PRE 選項,將 Lmhosts 中的專案標示為預先載入的專案。 然後,執行 nbtstat -R 命令以立即更新本機名稱快取。

發生系統錯誤 53

如果使用命令時特定計算機名稱的名稱解析失敗, net use 則會傳回系統錯誤 53。

如果計算機位於本機子網上,請確認名稱拼字正確,而且目標計算機也正在執行 TCP/IP。 如果電腦不在本機子網上,請確定其名稱和IP位址對應可在 Lmhosts 檔案或 WINS 資料庫中使用。 如果所有 TCP/IP 元素似乎都已正確安裝,請使用 ping 命令搭配遠端電腦來確認其 TCP/IP 軟體是否正常運作。

無法連線到特定伺服器

發生此問題的原因是 NetBIOS 名稱解析無法解析名稱,或解析了錯誤的 IP 位址。

若要針對此問題進行疑難解答,請使用 nbtstat -n 伺服器上的 命令來判斷在網路上註冊的伺服器名稱。 您嘗試連線之電腦的電腦名稱應該會在顯示的清單上。 如果未列出名稱,請嘗試 顯示的其中一個其他唯一計算機名稱 nbtstat。 如果遠端電腦使用的名稱與 命令所 nbtstat -n 顯示的名稱相同,請確定遠端電腦具有WINS 伺服器或其 Lmhosts 檔案中伺服器名稱的專案。

無法新增預設閘道

發生此問題的原因是預設閘道的IP位址與您的IP位址不在相同的IP網路標識碼上。

若要針對此問題進行疑難解答,請比較預設網關的IP位址與電腦任何網路適配器的網路標識碼,以判斷預設網關是否與計算機的網路適配器位於相同的邏輯網路上。

例如,計算機有單一網路適配器,其IP位址設定為192.168.0.33,子網掩碼為255.255.255.0.0。 這需要預設閘道的格式為 「192.168。<y>.<z>“,因為IP介面的網路標識碼部分是192.168.0.0。

資料收集

在連絡 Microsoft 支援服務之前,您可以收集問題的相關信息。

必要條件

  1. TSS 必須由具有本機系統系統系統管理員許可權的帳戶執行,而且在接受 EULA 之後,必須接受 (EULA,TSS 將不會再次提示) 。
  2. 我們建議使用本機電腦 RemoteSigned PowerShell 執行原則。

注意事項

如果目前的 PowerShell 執行原則不允許執行 TSS,請採取下列動作:

  • RemoteSigned執行 Cmdlet,以設定進程層級的執行原則PS C:\> Set-ExecutionPolicy -scope Process -ExecutionPolicy RemoteSigned
  • 若要確認變更是否生效,請執行 Cmdlet PS C:\> Get-ExecutionPolicy -List
  • 由於處理程式層級許可權僅適用於目前的 PowerShell 工作階段,因此,一旦 TSS 執行所在的指定 PowerShell 視窗關閉,指派的進程層級許可權也會回到先前設定的狀態。

請先收集金鑰資訊,再連絡 Microsoft 支援服務

  1. 在所有節點上下載 TSS ,並將它解壓縮到 C:\tss 資料夾中。

  2. 從提升許可權的 PowerShell 命令提示字元開啟 C:\tss 資料夾。

  3. 使用下列 Cmdlet 在來源和目的地伺服器上啟動追蹤:

    TSS.ps1 -Scenario NET_General
    
  4. 如果第一次在來源或目的地伺服器上執行追蹤,請接受EULA。

  5. 允許錄製 (PSR 或視訊) 。

  6. 在輸入 Y 之前重現問題。

    注意事項

    如果您在用戶端和伺服器上收集記錄,請在這兩個節點上等候此訊息,然後再重現問題。

  7. 輸入 Y 以在重現問題之後完成記錄收集。

追蹤會儲存在 C:\MS_DATA 資料夾的 zip 檔案中,可上傳至工作區進行分析。

參考