为什么 wlan1 没有获得静态 IP?

为什么 wlan1 没有获得静态 IP?

我有一个带有两个 USB 无线局域网适配器的 Raspberry Pi。 wlan0 配置有 DHCP,wlan1 配置有静态 IP 地址,并且 hostapd(接入点)在此接口上运行。适配器支持主模式。但 wlan1 启动后始终无法获取其 IP 地址,网络无法正常工作。有什么线索可以解释为什么吗?

/etc/network/interfaces 看起来像这样:

auto lo

iface lo inet loopback

iface default inet dhcp

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

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

auto wlan1
iface wlan1 inet static
address 10.0.0.1
netmask 255.255.255.0

启动 RPi 后,如果配置返回以下内容:

eth0      Link encap:Ethernet  HWaddr b8:27:eb:47:0d:a5
      inet addr:192.168.2.201  Bcast:192.168.2.255  Mask:255.255.255.0
      UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
      RX packets:102 errors:0 dropped:1 overruns:0 frame:0
      TX packets:91 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:1000
      RX bytes:11281 (11.0 KiB)  TX bytes:15674 (15.3 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:0 errors:0 dropped:0 overruns:0 frame:0
      TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:0
      RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

mon.wlan1 Link encap:UNSPEC  HWaddr 54-E6-FC-89-BE-4B-00-00-00-00-00-00-00-00-00-00
      UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
      RX packets:2665 errors:0 dropped:0 overruns:0 frame:0
      TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:1000
      RX bytes:810921 (791.9 KiB)  TX bytes:0 (0.0 B)

wlan0     Link encap:Ethernet  HWaddr 80:1f:02:84:f8:3f
      UP BROADCAST MULTICAST  MTU:1500  Metric:1
      RX packets:12 errors:0 dropped:14 overruns:0 frame:0
      TX packets:5 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:1000
      RX bytes:3672 (3.5 KiB)  TX bytes:1106 (1.0 KiB)

wlan1     Link encap:Ethernet  HWaddr 54:e6:fc:89:be:4b
      UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
      RX packets:0 errors:0 dropped:0 overruns:0 frame:0
      TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:1000
      RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

正如您所看到的,wlan1 没有分配预期的 10.0.0.1 地址。如果我发出 ifdown 然后 ifup 它将获得 IP 地址。

命令ip链接在执行 ifdown/ifup 之前显示此内容:

4: wlan1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT qlen 1000

之后:

4: wlan1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN mode DEFAULT qlen 1000

任何帮助表示赞赏。

答案1

我觉得你的/etc/network/interfaces有点臃肿。

这里有几点需要提及:

  • 为什么要定义default-interface?这对我来说没有意义,因为您已经彻底定义了每个接口。
  • 因为您决定在事件和系统启动时eth0将其启动。hotplug由于eth0不可插入,您不必同时指定两者。
  • 缩进给定界面的选项是一个很好的做法

但让我们回到主题:

我认为对于可插拔设备,始终建议指定allow-hotplug并省略该auto节。我会尝试以下操作/etc/network/interfaces

auto lo
auto eth0
allow-hotplug wlan0
allow-hotplug wlan1

# pattern of an interface definition
#
# iface [name of physical/logical interface] [name of address family] [method to configure the interface]
#     [option 1]
#     [option 2]
#     ...
#     [option n]

iface lo inet loopback

iface eth0 inet static
    address 192.168.2.201
    netmask 255.255.255.0

iface wlan0 inet manual
    wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf

iface wlan1 inet static
    address 10.0.0.1
    netmask 255.255.255.0

顺便问一下:您有什么令人信服的理由不使用像 wicd 或 networkmanager 这样的自动网络配置工具吗?

相关内容