除非手動設定 ARP 表,否則同一 WiFi 網路上的兩個裝置無法互相看到對方

除非手動設定 ARP 表,否則同一 WiFi 網路上的兩個裝置無法互相看到對方

我最近開始遇到本地 WiFi 網路上的筆記型電腦裝置(運行 Ubuntu 22.04)無法連接到兩個單獨的 Android 裝置(兩者都運行 SSHelper)的問題。在我的第一次嘗試中,當我嘗試從筆記型電腦 ping android1 時,我不斷收到錯誤「目標主機無法存取」。但是,當我在出現大約 5 或 10 條相同的錯誤訊息後嘗試從 android1 ping 筆記型電腦時,突然它開始工作了!

但是當我嘗試從筆記型電腦到 android2 的相同方法時,它不起作用。在拉了一堆頭髮之後,我想嘗試手動將 android2 的 MAC 位址新增到筆記型電腦上的 ARP 表中(arp -s),突然它開始工作了!幾個小時後,我嘗試從筆記型電腦連接到 android2,但它不再工作。 ARP 表仍處於相同狀態。這次我可以透過將筆記型電腦的 MAC 位址新增到 android2 上的 ARP 表中來使其工作! (幸運的是android2是可root的裝置!)

雖然這是一種解決方法,直到我弄清楚它不起作用的原因為止,但從長遠來看,它並不能解決問題。此外,似乎我發現的每一個解決方法都會在一段時間後停止工作,我即將嘗試一些事情!我該如何解決該問題?我已經嘗試過重新啟動所有設備(這實際上是我嘗試的第一件事,因為在過去我似乎記得它確實有效),我查看了網路路由、子網路遮罩、ARP 表(上面寫著“不完整”) “直到我手動將其強制插入那裡。

答案1

ARP 可能會失敗,因為多播(在Wi-Fi 環境中,包括廣播)由於實施中存在錯誤而失敗,可能是在您的Android 裝置Wi-Fi 驅動程式中,也可能是在您的AP(無線路由器)中。群播在 Wi-Fi 上很棘手,並且在 AP 和用戶端中都存在許多有缺陷的實作。

從不同的客戶端 Ping 子網路廣播位址或所有主機多播位址 (224.0.0.1),並查看每種情況下誰回應或不回應,可能會揭示多播是否正常運作(注意:Windows遺憾的是,由於政策原因,Windows 並不總是喜歡回應廣播或多播ping,因此如果您沒有從Windows 裝置獲得回應,請不要感到驚訝)。

如果多播確實被破壞,重新啟動 AP 可能會暫時解決問題,直到再次出現問題。即使錯誤存在於客戶端中,重新啟動 AP 也會強制它們重新連接,這可能會暫時重設。

另一個測試是暫時在沒有無線安全的情況下運作。 Wi-Fi 上的多播最棘手的部分與安全加密有關。因此,如果禁用安全性使問題消失(而不僅僅是暫時),則表示 WPA2 實作存在問題。重新開啟安全性時,請務必使用 WPA2(或更高版本)僅有的。即 AES-CCMP僅有的。原始 WPA (TKIP) 不應以任何方式啟用或可用。 WEP 也是如此。

如果是多播損壞而不是安全性問題,則可能是您的 AP 的多重播放速率設定所致。確保其設定的速率足夠低,以便網路上的所有設備都能可靠地接收。或暫時將其設定為盡可能低的速率(2.4GHz b/g/n/ax 上為 1Mbps,5GHz a/n/ac/ax 上為 6Mbps)。

Wi-Fi 上多播中斷的最後一個潛在原因是多播流量過多。如果您在有線乙太網路 LAN 上進行任何類型的多重播放串流,請確保已啟用 AP 的「IGMP 監聽」功能,以防止其湧入您的 Wi-Fi 網路。

相關內容