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 之間也可能會發生問題。 此問題通常是因為堆疊中的損毀。 使用下列疑難解答步驟:
請確定節點上的最新位 (TCP/IP、NDIS、AFD、Winsock 等) 。
執行下列命令來重設IP和 Winsock。 備份所有網路設定。
netsh -c interface dump > C:\netConfig.txt netsh int ip reset netsh winsock reset
重新啟動節點。
重新啟動之後還原網路設定。 只有在介面名稱尚未變更,或腳本已更新為使用新名稱時,此作業才能運作。
netsh -f C:\netConfig.txt
視需要卸載或重新安裝網路適配器驅動程式。
檢查並移除第三方篩選驅動程式 (例如防病毒軟體) 。
嘗試使用網路以安全模式啟動電腦。 如果網路安全模式可運作,請在 MSConfig 中停用所有第三方應用程式和服務,以執行「全新開機」程式,然後逐一重新啟用它們,直到問題傳回為止。 然後,您可以連絡廠商以尋求支援。
- 如果這些專案都未成功,則問題可能是登錄損毀。
- 如果您有登錄 (的備份複本,例如實體備份或系統還原點) ,您可以嘗試將節點還原至先前運作中的組態。 擷取損毀的根本原因可能很困難且非常耗時。 即使發現損毀,知道造成損毀的原因也更具挑戰性。 手動修改損毀的登錄機碼會讓節點進入不支援的狀態。 因此,我們建議客戶還原或重載節點,以更正損毀。
如果 NSCI 無法通過探查檢查, (黃色驚嘆號) ,這不一定表示連線問題。 請確定一般通訊會如其所應發生。
- 若是如此,調查應該特別著重於 NCSI 為何無法通過探查檢查。 另一個主題會涵蓋此專案的詳細數據。
- 如果沒有,請先調查連線問題,因為在還原連線之後,可能會更正此問題。
步驟 4:針對 Ping 或 telnet 測試期間發生的錯誤訊息進行疑難解答
如果節點可以 Ping 或 telnet 至相同子網或網路區段上的節點,這會確認外部連線運作正常。 若要瞭解是否存在基本連線問題,仍然需要進一步測試。
如果節點無法 ping/telnet 至相同子網/網路區段上的節點。 請注意顯示的任何錯誤訊息。
目的地主機無法連線 的錯誤表示節點所傳送的ARP要求未取得回應。
從您要測試的節點收集兩面追蹤。 請確定來源節點所傳送的 ARP 要求到達目的地節點,而且目的地節點會據以回復。 您應該會在來源追蹤中看到此回復。 如果此程式失敗,問題可能是設定錯誤或影響基礎結構的其他問題。
可能的原因可能是:
- 不正確或不相符的 VLAN。
- 主幹與存取埠) (不正確的交換器埠設定。
- 其他硬體問題。
要求逾時錯誤表示 ARP 要求收到回應,但節點所傳送的 ICMP 回顯請求並未取得 ICMP 回應回應。 這本身並不會指出問題。 網路或節點上的防火牆軟體可能會封鎖ICMP流量。 關閉 Windows) (防火牆配置檔,或透過防火牆廠商支援的 ICMP 測試方法加以停用,可能會有説明。
- Telnet 和 PsPing 更適合用於測試。 從來源節點執行 Telnet 或 PsPing 至接聽埠 (上的目的地節點,例如 445) 。
- 如果步驟 1 成功,外部連線就會正常運作。 繼續測試基本連線能力。
- 如果步驟 1 未成功 (,而且如果防火牆配置檔) 停用,請收集雙面
netsh netconnection
案例追蹤以進一步進行疑難解答。
步驟 5:對預設閘道進行 Ping 或 Telnet
當節點可以偵測其預設網關時,就可以從來源節點 (外部連線,例如現成連線) 。 若要瞭解是否存在基本連線問題,仍然需要進一步測試。 如果節點無法 Ping 或 Telnet 至其預設閘道,這表示路由器上已停用 ICMP 回復。
步驟 6:檢查影響特定目的地節點的問題
如果來源節點可以 ping、Telnet 或 PsPing 至目的地子網上的其他節點,則基礎結構內的基本連線和路由即可運作。 此結果指向會影響特定目的地節點的問題。
嘗試將 Telnet 或 PsPing 移至應用程式正在接聽的特定埠 (例如,TCP 連接埠 445 for SMB) 。 如果連線成功,則可以確認基本應用層級連線能力。 在此情況下,您必須連絡應用程式廠商,以協助調查應用程式未連線的原因。
注意事項
例如,如果問題是無法連線到共用,則應用程式廠商可能是 Microsoft。 在這些情況下,使用雙面 netsh netconnection 案例追蹤來收集其他資訊,並協助您確認網路堆疊中沒有任何問題會很有用。
如果特定埠的連線不成功:
- 請確定埠處於「接聽」狀態:
Cmd:netstat -nato | findstr :<port>
PowerShell:Get-NetTcpConnection -LocalPort <port>
- 暫時停用所有防火牆配置檔。 (注意:僅停用配置檔。請勿停用 service.)
如果成功,則必須重新設定防火牆,以允許其特定埠上的應用程式流量。 - 一次移除一個第三方應用程式,並在每次移除之間進行測試。
如果成功,請連絡有問題軟體的廠商。 - 嘗試使用網路安全模式。
如果成功,請使用 MSConfig 執行節點的「全新開機」,然後逐一啟用第三方應用程式和服務,以找出原因,直到問題再次發生為止。 - 當您重現連線嘗試時,應該執行從來源到受影響目的地節點的 netsh netconnection 案例追蹤。 網路 SDP 也會有説明。
- 請確定埠處於「接聽」狀態:
如果節點無法 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 支援服務之前,您可以收集問題的相關信息。
必要條件
- TSS 必須由具有本機系統系統系統管理員許可權的帳戶執行,而且在接受 EULA 之後,必須接受 (EULA,TSS 將不會再次提示) 。
- 我們建議使用本機電腦
RemoteSigned
PowerShell 執行原則。
注意事項
如果目前的 PowerShell 執行原則不允許執行 TSS,請採取下列動作:
-
RemoteSigned
執行 Cmdlet,以設定進程層級的執行原則PS C:\> Set-ExecutionPolicy -scope Process -ExecutionPolicy RemoteSigned
。 - 若要確認變更是否生效,請執行 Cmdlet
PS C:\> Get-ExecutionPolicy -List
。 - 由於處理程式層級許可權僅適用於目前的 PowerShell 工作階段,因此,一旦 TSS 執行所在的指定 PowerShell 視窗關閉,指派的進程層級許可權也會回到先前設定的狀態。
請先收集金鑰資訊,再連絡 Microsoft 支援服務
在所有節點上下載 TSS ,並將它解壓縮到 C:\tss 資料夾中。
從提升許可權的 PowerShell 命令提示字元開啟 C:\tss 資料夾。
使用下列 Cmdlet 在來源和目的地伺服器上啟動追蹤:
TSS.ps1 -Scenario NET_General
如果第一次在來源或目的地伺服器上執行追蹤,請接受EULA。
允許錄製 (PSR 或視訊) 。
在輸入 Y 之前重現問題。
注意事項
如果您在用戶端和伺服器上收集記錄,請在這兩個節點上等候此訊息,然後再重現問題。
輸入 Y 以在重現問題之後完成記錄收集。
追蹤會儲存在 C:\MS_DATA 資料夾的 zip 檔案中,可上傳至工作區進行分析。