在網路工程師的工具箱中,如果說路由表和日誌是診斷儀器,那麼 Wireshark 就是能夠看透網路底層真相的「X 光機」。它能捕捉流經網路介面的每一個數據封包,讓您直接觀察 TCP/IP 協定在現實中的行為,是解決所有疑難雜症的最終診斷工具。
排查情境 | 篩選器 (Display Filter) | 封包分析與結論 |
---|---|---|
遠端阻擋 (連線超時) | tcp.flags.syn == 1 and ip.addr == <Client_IP> |
1. 只看到 SYN (來自客戶端),但沒有收到 SYN-ACK 回應。結論: 回應流量在伺服器端或路途中被防火牆、ACL 或路由阻擋。 |
連線被拒絕 (埠號關閉) | tcp.flags.reset == 1 |
2. 收到 SYN-ACK 後,伺服器立即發送一個帶有 RST (Reset) 標誌的封包。結論: 伺服器已連線,但目的埠號未開放,或伺服器上的應用程式主動拒絕了連線(應用程式問題)。 |
重傳與延遲 | tcp.analysis.retransmission |
Wireshark 會自動標記 TCP 重傳。結論: 高頻率的重傳指示了嚴重的網路擁塞、鏈路丟包或中間設備故障。 |
B. 網路延遲與性能問題
Wireshark 的時間戳分析是評估效能的關鍵。
RTT (Round Trip Time) 分析: 透過計算 SYN 和 SYN-ACK 之間的時間差,直接測量網路延遲。高延遲是判斷網路擁塞或距離過遠的依據。
應用層延遲: 測量 HTTP GET 請求到第一個回應封包 (HTTP 200 OK) 之間的時間。如果網路 RTT 低,但應用層回應慢,問題就在於伺服器處理速度,而非網路本身。
3. 進階過濾與分析技巧
有效使用 Wireshark 的關鍵在於過濾器(Filters)。
顯示過濾器 (Display Filters): 用於減少顯示的封包數量,只顯示關心的流量。
範例: 追蹤單一主機到單一服務的流量:ip.addr == 192.168.1.10 and tcp.port == 443
範例: 查找所有 DHCP 流量:bootp 或 dhcp
範例: 查找所有 IKE 階段 1 訊息 (VPN):udp.port == 500
跟蹤 TCP Stream (Follow TCP Stream): 右鍵點擊任一 TCP 封包,選擇 Follow > TCP Stream。Wireshark 會將該連線的所有數據重新組合成一個文本視窗,讓您清晰地看到應用層的交互內容(如 HTTP 請求和回應)。
掌握 Wireshark,就是掌握了網路故障排除的最高藝術。它可以將所有路由、交換、安全協定的抽象概念,轉化為具體的、可分析的數據證據。