我有一个树莓派 2,带有 wifi 接口和以太网接口。 wifi 是我的主要连接方式,并且可以插入以太网作为备份方法。我想为每个接口分配不同的静态地址。
我想要的是能够:
- 仅使用第一个地址上连接的 USB wifi 启动
- 仅使用第二个地址上连接的以太网启动
- 使用 wifi 和以太网启动并能够使用这两个地址
- 仅使用 wifi 启动;然后热插拔以太网并能够使用这两个地址。
- 当 wifi 和以太网都连接时,当其中一个因某种原因断开时能够保持另一个连接。
我没能做到这一点。如果有人可以帮助我,我将非常感激。
这是我的 /etc/network/interfaces 文件:
auto lo
iface lo inet loopback
auto wlan0
#allow-hotplug wlan0
iface wlan0 inet static
address 192.168.1.10
netmask 255.255.255.0
gateway 192.168.1.1
wpa-ssid my-network
wpa-bssid XX:XX:XX:XX:XX:XX
wpa-psk xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
auto eth0
iface eth0 inet static
address 192.168.1.20
netmask 255.255.255.0
gateway 192.168.1.1
答案1
我会使用设备绑定,这意味着您正在创建一个新的虚拟设备,为其分配网络设置(例如 IP 地址、掩码等),然后将以太网和 WiFi 接口从属到该接口。
就像是:
$ sudo modprobe bonding
$ sudo ifconfig bond0 192.168.0.1 netmask 255.255.0.0
$ sudo ifenslave bond0 eth0 wlan0
这样做的优点是可以涵盖从 1 到 5 的所有场景,但有一个例外:您只有 1 个 IP 地址。如果这会成为问题,那么您始终可以创建一个“别名”(例如 bond0:0)并为其指定一个不同的 IP 地址。这样,即使只有 1 个接口处于活动状态,两个 IP 地址也始终可达。
更多详细信息可以在网上找到。例如:http://www.codekoala.com/posts/bonding-eth0-and-wlan0-arch-linux/
答案2
联系正是我所需要的,所以我适应了这个答案。我可以备份两个接口并将以太网接口指定为主接口。事实上,我不希望每个接口都有不同的地址。我以为我必须用不同的地址来做,但只有一个地址和自动备份的解决方案正是我想要的。 (我还测试了 3 个不同的地址,它有效。)
这是我的新/etc/network/interfaces
文件:
auto lo
iface lo inet loopback
auto bond0
iface bond0 inet static
address 192.168.1.10
netmask 255.255.255.0
network 192.168.1.0
gateway 192.168.1.1
# Bonding
bond-slaves none
bond-primary eth0
bond-mode active-backup
bond-miimon 100
bond-downdelay 200
bond-updelay 200
auto wlan0
#allow-hotplug wlan0
iface wlan0 inet manual
# Bonding
bond-master bond0
bond-primary eth0
bond-mode active-backup
wpa-ssid xxxxxxxxxxxxxxx
wpa-bssid XX:XX:XX:XX:XX:XX
wpa-psk xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
auto eth0
iface eth0 inet manual
# Bonding
bond-master bond0
bond-primary eth0
bond-mode active-backup
答案3
我已经完成了与您同时使用 2 个 wifi 接口和有线以太网所描述的类似的事情。
- 有线以太网连接到测试网络。
hostapd
第一个 wifi 适配器被配置为用于初始配置的AP 。- 第二个 wifi 适配器连接到本地 wifi 网络,以便访问整个建筑物。
路由已关闭,因为此设置仅用于访问测试网络。唯一的“技巧”是使用wicd-curses
配置系统连接到本地 wifi 网络,并在连接有线网络时保持 wifi 接口开启。毫无疑问,这解决了ifplugd
@goldilocks 提到的问题。 wicd 联机帮助页上的选项prefer_wired
是关键。
我已经成功地将其与 2 个不同的 RPi2B 一起使用。