Raspberry pi 無法透過 wifi 橋接器 ping 路由器或網際網路位址

Raspberry pi 無法透過 wifi 橋接器 ping 路由器或網際網路位址

我最近使用“Atheros”版本設定了一個運行 DD-WRT 的 WNR2000v3 路由器作為中繼橋本教程(我們稱之為「路由器 2」),它是 Medialink Wireless-N 路由器的重複(我們稱之為「路由器 1」)。這對於我的Android 手機和Windows 電腦透過wifi 和透過乙太網路直接連接時都非常有效,但是當我插入Raspberry pi 時,無論是運行Raspbian (wheezy) 或Raspbmc,我都無法在本地網路之外獲得任何連接。

樹莓派可以 ping(並被 ping)本地子網路上的任何其他設備,包括它直接連接的“路由器 2”,並且它能夠從路由器 1 獲取 DHCP,但是當我嘗試ping 路由器1,我得到“目標主機無法訪問”,如果我嘗試ping 互聯網上的任何內容,例如google.com、superuser.com,我同樣得到“目標主機無法訪問”。

這是網路上的另一台電腦:

ping 192.168.0.100
PING 192.168.0.100 (192.168.0.100) 56(84) bytes of data.
64 bytes from 192.168.0.100: icmp_req=1 ttl=127 time=38.7 ms
64 bytes from 192.168.0.100: icmp_req=2 ttl=127 time=1.67 ms
64 bytes from 192.168.0.100: icmp_req=3 ttl=127 time=1.73 ms
64 bytes from 192.168.0.100: icmp_req=4 ttl=127 time=3.56 ms
--- 192.168.0.100 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3003ms
rtt min/avg/max/mdev = 1.672/11.418/38.705/15.772 ms

這是路由器 1:

ping 192.168.0.1
PING 192.168.0.1 (192.168.0.1) 56(84) bytes of data.
From 192.168.0.107 icmp_seq=1 Destination Host Unreachable
From 192.168.0.107 icmp_seq=2 Destination Host Unreachable
From 192.168.0.107 icmp_seq=3 Destination Host Unreachable
From 192.168.0.107 icmp_seq=4 Destination Host Unreachable
From 192.168.0.107 icmp_seq=5 Destination Host Unreachable
From 192.168.0.107 icmp_seq=6 Destination Host Unreachable
--- 192.168.0.1 ping statistics ---
8 packets transmitted, 0 received, +6 errors, 100% packet loss, time 7007ms
pipe 3

192.168.0.107是樹莓派的地址:

ifconfig
eth0      Link encap:Ethernet  HWaddr xx:xx:xx:xx:db:c9
          inet addr:192.168.0.107  Bcast:192.168.0.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:3753 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1262 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:595127 (581.1 KiB)  TX bytes:112407 (109.7 KiB)

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:285 errors:0 dropped:0 overruns:0 frame:0
          TX packets:285 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:27703 (27.0 KiB)  TX bytes:27703 (27.0 KiB)

這是路由表:

sudo route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.0.1     0.0.0.0         UG    0      0        0 eth0
192.168.0.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0

這是 DHCP 請求:

sudo dhclient -v eth0
Internet Systems Consortium DHCP Client 4.2.2
Copyright 2004-2011 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/

Listening on LPF/eth0/xx:xx:xx:xx:db:c9
Sending on   LPF/eth0/xx:xx:xx:xx:db:c9
Sending on   Socket/fallback
DHCPREQUEST on eth0 to 255.255.255.255 port 67
DHCPACK from 192.168.0.1
RTNETLINK answers: File exists
bound to 192.168.0.107 -- renewal in 274691 seconds.

其他一切都工作正常,但我已經嘗試過使用兩個不同的映像(Raspbmc 和 raspbian)和兩個不同的樹莓派來嘗試這個 rapsberry pi,但沒有配置工作。經過測試,raspbian 鏡像在直接連接到路由器 1 時可以正常運作。這個懸而未決的問題從兩年前開始,除了在這種情況下,他似乎正在使用 wifi 來連接失敗的設備,而且他實際上得到了一些間歇性的連接。此外,ping 回應來自路由器,而不是裝置。什麼可能導致這個問題?

編輯:我還應該注意到,兩個不同的樹莓派有不同的 IP 位址,其中一個是 IP-MAC 綁定的,並且我在 DHCP 表中沒有看到 IP 衝突,但每個都有相同的問題。

更新:我已經確定了一件可能有趣的事情,那就是當 MAC 位址克隆關閉時,中繼器橋將停止工作 - 唯一可以 ping 樹莓派的是路由器 2,並且沒有連接(或無法存取路由器 1) )從僅連接到路由器2 的任何裝置- 包括Windows 電腦。但是,無論如何,正在複製的 MAC 位址與路由器 2 的介面實際使用的 MAC 位址相同(根據「狀態」頁面)。我已將路由器 1 和路由器 2 重新啟動兩次,但沒有什麼區別。我不明白為什麼 MAC 位址克隆與此相關。關閉 MAC 位址複製後,當我 ssh 進入路由器本身時,路由器可以 ping 通 Raspberry pi,但不能 ping 通路由器 1。

另一件小事情是,當 MAC 位址複製打開並且我實際上可以 ping 網路上的其他電腦時,arping 會為響應 ping 的每個裝置返回相同的 mac 位址。

更新2:透過檢查系統日誌值,我發現存在與 MAC 位址相關的錯誤訊息:

Jan  1 00:00:08 Router 2 kern.err kernel: [    6.770000] ath: eeprom contains invalid mac address: ff:ff:ff:ff:ff:ff
Jan  1 00:00:08 Router 2 kern.err kernel: [    6.780000] ath: random mac address will be used: fa:55:da:33:19:a9

顯然這是一個已知問題人們正在使用 MAC 位址克隆來解決這個問題。我不太清楚為什麼隨機 MAC 位址是一個問題,以及 MAC 位址克隆還會產生什麼其他後果。

答案1

+1 詳細的問題描述。

正如我在您打開的線程中建議的那樣樹莓派,您可以檢查您的主路由器是否列在 RPi 的 arp 表中:arp -n或者您是否安裝了 iproute2 ip neigh:。

如果需要,您可以使用以下命令將路由器新增至 arp 快取:arp -s <ROUTER_IP> <ROUTER_MAC>並查看問題是否仍然存在

您也可以透過嗅探所有 ARP 封包來檢查您的 RPi 是否如預期發送 ARP 請求。在您的 RPi 上運行:tcpdump arp

您也可以在 DD-WRT 中繼器和路由器 1 上連接的任何其他主機上執行相同的命令。

答案2

我在安裝新的 Wifi 中繼器時遇到了相同的問題。妥協的解決方案是為 Raspberry Pi 設定靜態 IP。

答案3

這是一個很難診斷的問題,因為當然您的系統似乎配置正確。因此,我不會提供冗長的檢查選項列表,而是會給您一些要測試的想法。

我會嘗試的一件事是將預設網關更改為路由器 2,而不是路由器 1。

另一件事是強制 ping 綁定到介面 eth0:

 ping -I 192.168.0.107 192.168.0.1
 ping -I eth0          192.168.0.1

這兩個命令略有不同,都應該嘗試一下。希望他們會給出不同的輸出,這將表明存在故障。

然後我會檢查 /etc/network/interfaces:它是否包含幾行,例如

  auto eth0
  iface eth0 inet dhcp

然後我會嘗試重新啟動介面:

  ifdown eth0
  ifup eth0

然後再 dhclient。

總而言之,人們應該記住,這不一定是軟體問題。如果你去這個網頁您可以閱讀以下經驗:

我訂購了另一個樹莓派,然後重新鏡像了 SD 卡,在該卡上啟動,互聯網工作正常。我取出 SD 卡並將其放入舊的樹莓派中,並連接相同的電纜和以太網線,但它仍然無法工作...

另外,您應該記住電纜可能有問題。電纜不是工作/不是工作對象。 RX 或 TX 中的問題可能會導致許多幀丟失、訊號品質較差等。在這種情況下,TCP 等協定的表現比 ICMP 或 UDP 更好,因為它們會重新傳輸目標尚未收到的資料包,從而給您帶來連接正常工作的錯誤印象。當然,這種錯誤的印像一直持續到您測量連線速度為止。

答案4

我前段時間也遇到類似的問題。我的解決方案是 /etc/resolv.conf透過新增nameserver 8.8.4.4和重新啟動介面來編輯文件/etc/init.d/networking restart。這個對我有用。

相關內容