除非wireshark正在捕獲資料包,否則伺服器無法ping通

除非wireshark正在捕獲資料包,否則伺服器無法ping通

除非 Wireshark 正在捕獲封包,否則伺服器無法 ping 到其他伺服器。我相信一個進程在 ping 進程之前捕獲資料包。但如何找到這個進程呢?

答案1

好的。我自己解決這個問題。事實是,發送到我的伺服器的封包具有正確的 IP 位址,但 MAC 位址錯誤。因此,如果wiredshark關閉,網路介面卡(NIC)將直接將其丟棄。但如果wiredshark開啟,它會捕獲封包並將MAC位址修改為正確的位址。

答案2

我在從 Windows 7 電腦(企業版、SP1)對乙太網路目標裝置執行 ping 操作時遇到了相同的問題。在我的配置中,有 2 個 USB2Ethernet 適配器,Windows 中的乙太網路介面來自適配器的驅動程式。這個硬體配置肯定有效(從 Linux 執行 ping 操作時有效)。但不是來自 Windows。

不幸的是,您的回答並沒有闡明問題的根源。如果您的意思是 ICMP 回應有一個錯誤的 MAC 位址,那麼問題是為什麼它實際上是錯誤的。如果您使用現成的軟體(作業系統附帶的標準工具)並且沒有手工製作的 ICMP 請求/回應,那麼問題仍然存在,錯誤的 MAC 位址的根源是什麼。問題? TCP/IP 堆疊(ICMP 實作是其中的一部分)首先發現 MAC 位址。透過ARP廣播請求,然後選擇目標MAC位址。基於給定的響應。

不管怎樣,我已經嘗試為目標IP設定靜態ARP條目(嘗試了連接到Windows對等點的USB2Ethernet的MAC位址和目標乙太網路介面的MAC位址)。到目前為止還沒有運氣。

在目標系統(被 ping 到的系統)上,我可以看到 ICMP 回應實際上已發送,但 Windows 系統似乎將它們過濾掉。

透過 Wireshark 偵聽端口,問題已解決,並且與目標系統的網路運作正常(ICMP 和所有其他協定)。

我想這與 Wireshark 在嗅聞和/或一些我不知道的 Windows 設定/服務時將乙太網路介面引入的混雜模式有關。

相關內容