我正在为Raspberry Pi的配置苦苦挣扎。我要实现以下目标:

eth0:将与静态ip一起使用,并且只能连接到局域网(这将是我的NFS服务器)
wlan0:应该连接到我的无线网络可以访问互联网

由于某种原因,我无法同时激活两个连接(是的,我的电源很好)。以太网将无缘无故地禁用无线。如果我终于把两者都搞定了,那么我将无法ping google.com。我的问题我应该如何正确执行此操作?我的接口文件中包含以下内容:

auto lo
iface lo inet loopback

auto eth0
allow-hotplug eth0
iface eth0 inet static
address 192.168.1.101
netmask 255.255.255.0
gateway 0.0.0.0

#auto wlan0
allow-hotplug wlan0
iface wlan0 inet manual
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

iface home inet static
address 192.168.0.157
netmask 255.255.255.0
broadcast 192.168.0.255
gateway 192.168.0.1

iface default inet dhcp


亲切的问候,非常感谢!

评论

确保您正在运行最新的固件和软件。我在旧固件上苦苦挣扎,这让我发疯了。从头开始升级所有内容,并集成了请求者,并且非常容易连接

感谢您提供有关此主题的详细信息,我设法实现了此处编写的内容,并让我的pi与两个适配器一起使用。

我认为解决方案应该作为答案发布...

“更新问题以包括答案”的格式不佳,会损害站点的可用性。您应该发布自己问题的答案。这样一来,其他人就很容易找到它-并可能吸引其他人的支持

#1 楼


这适用于2015-05-05之前的Raspbian Wheezy(以及以后的Jessie / Stretch)(请参阅如何设置网络/ WiFi /静态IP)。在社区中,我的回答是从问题中提取的。

我现在可以正常使用了,因此我将与社区共享我的所有配置文件。首先让我们看一下wpa_supplicant.conf文件:

pi@raspberrypi ~ $ sudo cat /etc/wpa_supplicant/wpa_supplicant.conf 
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1

network={
    ssid="****"
    scan_ssid=1
    proto=RSN
    key_mgmt=WPA-PSK
    pairwise=CCMP TKIP
    group=CCMP TKIP
    psk="****"
    id_str="home"
    priority=5
}


下一个新的更新接口文件

pi@raspberrypi ~ $ sudo cat /etc/network/interfaces
auto lo
iface lo inet loopback

auto eth0
allow-hotplug eth0
iface eth0 inet static
address 192.168.1.101
netmask 255.255.255.0

auto wlan0
allow-hotplug wlan0
iface wlan0 inet static
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
address 192.168.0.157
netmask 255.255.255.0
broadcast 192.168.0.255
gateway 192.168.0.1

iface default inet dhcp


现在,棘手的部分到了,您必须禁用eth0设备的热插拔(否则它将禁用您的wlan0)。您可以通过编辑以下文件来做到这一点:

pi@raspberrypi ~ $ sudo cat /etc/default/ifplugd 
INTERFACES="eth0"
HOTPLUG_INTERFACES="eth0"
ARGS="-q -f -u0 -d10 -w -I"
SUSPEND_ACTION="stop"


我的启动脚本中也包含以下内容,这将确保我的wifi确实可以启动(有时根本无法启动)。您还必须杀死eth0设备上的ifplugd守护程序:

pi@raspberrypi ~ $ sudo cat /etc/rc.local
#!/bin/sh -e

# Print the IP address
_IP=$(hostname -I) || true
if [ "$_IP" ]; then
  printf "My IP address is %s\n" "$_IP"
fi

# Disable the ifplugd eth0
sudo ifplugd eth0 --kill
sudo ifup wlan0

exit 0


,这应该可以工作!

评论


您无需禁用整个ifplugd。相反,只需禁用(删除)有问题的符号链接/etc/ifplugd/action.d/action_wpa,当连接以太网时,该链接可使wlan0无法工作。

– minmaxavg
16-4-12在7:35



禁用eth0设备的热插拔,我们不应该删除auto etho行吗?此外,我仍然有:〜$ sudo服务isc-dhcp-server启动作业isc-dhcp-server。

–莫妮卡的革命
16年6月6日在8:37



给未来用户的一个小提示:这个答案很好用。如果您想知道网关IP地址,只需输入ip r |。 grep默认

–user105790
19/12/27在17:01



#2 楼

如果设备没有Internet访问权限或本地子网以外的其他访问权限,则应删除网关。在两个接口上列出网关很可能是罪魁祸首。

如果以太网用于本地子网,则仅删除该网关。

评论


Tevo D是正确的。连接eth0时,您将从eth0接口中获得一条默认路由(网络0.0.0.0),这将导致网络外流量从eth0接口中路由至“位桶”。

–热火约翰
2013年8月6日在16:20



好的,我删除了eth0上的网关。现在,我看到我的无线设备已连接(正在运行iwconfig),但是当我运行ifconfig时,无线设备不使用我分配的静态IP地址或网关(它保持空白)。关于那个有什么线索吗?

– DanFritz
2013年8月7日8:47

找到了解决方案,感谢您的帮助。我已经用所有配置文件更新了问题(针对其他人)

– DanFritz
13年8月7日在9:37

@TevoD我使用了您的建议来评论网关,它可以正常工作1分钟,然后WiFi断开连接。

–加萨米
17年11月20日在9:16