我在 Pi 上加载了 Wheezy 版本。我的有线以太网配置了静态 IP,并且对 WLAN 做了同样的事情。使用有线网络时,wifi 可以正常使用。但是,当我断开有线电缆以便通过 wifi 使用 Pi 时,它停止工作。
我是否错误地设置了接口文件?由于电缆未连接,它会停止工作,这似乎真的很奇怪。我尝试在未将电缆插入 Pi 的情况下重新启动,以确认这不是在运行时拔下电缆时发生的某种故障,但只有先连接有线电缆后它才会工作。
这是我的 /etc/network/interfaces 文件的副本...
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 10.0.42.111
network 10.0.42.0
netmask 255.255.255.0
broadcast 10.0.42.255
gateway 10.0.42.1
allow-hotplug wlan0
auto wlan0
iface wlan0 inet static
address 10.0.42.112
network 10.0.42.0
netmask 255.255.255.0
broadcast 10.0.42.255
gateway 10.0.42.1
wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
答案1
我刚刚遇到了同样的问题,DHCP,但同样的 WLAN0 故障,直到 ETH0 启动。就我而言,@Jivings 是正确的。当您 ping 时,接收响应是通过 ETH0 进行的。
现在,这与我所理解的一切相悖,但就我的情况而言,插入了 RPI 以太网电缆:
pi@raspberrypi ~ $ ifconfig
eth0 Link encap:Ethernet HWaddr b8:27:eb:b0:0c:39
inet addr:192.168.99.75 Bcast:192.168.99.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
wlan0 Link encap:Ethernet HWaddr 80:1f:02:82:33:24
inet addr:192.168.99.78 Bcast:192.168.99.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
记下每张卡上的 HWaddr。
然后从另一个工作站,在本例中我使用 NMAP:
$ sudo nmap -sn 192.168.99.75 **<< - ETH0**
Starting Nmap 6.25 ( http://nmap.org ) at 2013-02-03 10:19 GMT
Nmap scan report for 192.168.99.75
Host is up (0.020s latency).
MAC Address: B8:27:EB:B0:0C:39 (Raspberry Pi Foundation)
Nmap done: 1 IP address (1 host up) scanned in 0.09 seconds
Paul@lo-mbp-preg / $ sudo nmap -sn 192.168.99.78
$ sudo nmap -sn 192.168.99.78 **<< - ETH0**
Starting Nmap 6.25 ( http://nmap.org ) at 2013-02-03 10:19 GMT
Nmap scan report for 192.168.99.78
Host is up (0.0044s latency).
MAC Address: B8:27:EB:B0:0C:39 (Raspberry Pi Foundation)
Nmap done: 1 IP address (1 host up) scanned in 0.07 seconds
您可以看到 ETH0 和 WLAN0 的 MAC 地址/HWAddr 相同,并且与 ifconfig 中的 ETH0 HWAddr 匹配。所以在我的情况下,无线无法正常工作。所有流量都通过 ETH0 传输
如果您没有 NMAP ping,则显示 ARP 表(IP <-> MAC 表)将显示相同的信息。从 CLI:
- Windows =ARP-A
- Linux =ARP
我实际上没有找到“原因”。在调试过程中,它开始可靠地工作。我讨厌这一点。但这个配置现在可以正常工作了:
/etc/网络/接口
auto lo
iface lo inet loopback
iface eth0 inet dhcp
allow-hotplug wlan0
iface wlan0 inet manual
wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
iface default inet dhcp
/etc/wpa_supplicant/wpa_supplicant.conf
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
ssid="<ssid>"
psk=<key>
}
network={
ssid="<ssid>"
psk=<key>
}
network={
ssid="<ssid>"
psk=<key>
}
network={
ssid="<ssid>"
key_mgmt=WPA-EAP
pairwise=TKIP
group=TKIP
eap=PEAP
identity="user@domain"
password="xxxxxxxxxx"
ca_cert="/etc/cert/ca.pem"
phase1="peapver=0"
phase2="MSCHAPV2"
}
我希望这能帮助你取得一些进步。
答案2
您可以尝试查看在拔下电缆之前和之后“route -n”给您的结果。如果 eth0 发生故障,它会删除默认路由。因此,您需要创建与 wlan0 关联的新默认路由。将其添加到 /etc/network/interfaces 的 eth0 部分:
pre-up if [ `ip route show|grep default|wc -l` -eq 1 ];then route del default gw xx.xx.xx.xx dev wlan0;fi
post-down if [ `ip route show|grep wlan0|wc -l` -eq 1 ];then route add default gw xx.xx.xx.xx dev wlan0;fi
答案3
我在 Raspberry Pi 上使用 Debian Jessie 时遇到了完全相同的问题。原来我忘了安装该wpasupplicant
软件包。使用以下命令检查已安装的软件包:
dpkg -l | grep wpa
这至少应该列出软件包wpasupplicant
。如果没有,请安装它:
apt-get install wpasupplicant
然后,计算您的 SSID 的正确 WPA PSK 哈希值(相应地替换<myssid>
)<passphrase>
:
wpa_passphrase <myssid> <passphrase>
这会输出几行。我们只需要 64 个字符的哈希值。打开interfaces
文件:
vi /etc/network/interfaces
...并添加 SSID 和哈希值:
auto wlan0
iface wlan0 inet dhcp
wpa-ssid myssid
wpa-psk e71e118835ca1d72c61db51b9a0687df088f4952c27760cd2da05cfb2f3dad33
保存您的更改并限制对此文件的访问以防止预共享密钥 (PSK) 泄露:
chmod 600 /etc/network/interfaces
添加wpa-debug-level 3
到interfaces
文件可能会很有用:这会将大量调试消息写入日志文件/var/log/syslog
。
更多说明可参见:https://wiki.debian.org/WiFi/HowToUse(“wpa_supplicant” 部分)。
答案4
我遇到了几乎相同的症状。发现我的路由器 (Tomato) 和 rpi 之间存在不良交互。关闭路由器上的 APSD 后问题消失。