/ etc / network / interfaces文件中的`wpa-roam`和`wpa-conf`有什么区别?


46

张贴的问题以前就如何设置静态IP地址的RPI和最终想通了与一些其他国家一道,认为答案是改变wpa-roamwpa-conf指向时/etc/wpa_supplicant/wpa_supplicant.conf,但为什么这会起作用?

即当我在/etc/network/interfaces文件中有此内容时:

auto lo
iface lo inet loopback

auto wlan0
iface wlan0 inet static
    address 192.168.0.3
    netmask 255.255.255.0
    gateway 192.168.0.1
    broadcast 192.168.0.255
    network 192.168.0.0
wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf

假设/etc/wpa_supplicant/wpa_supplicant.conf已正确配置,则此方法无效。

这是来自iwconfig以下方面的相关输出:

wlan0     unassociated  Nickname:"<WIFI@REALTEK>"
          Mode:Managed  Frequency=2.437 GHz  Access Point: Not-Associated   
          Sensitivity:0/0  
          Retry:off   RTS thr:off   Fragment thr:off
          Power Management:off
          Link Quality:0  Signal level:0  Noise level:0
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0

以及来自ifconfig

wlan0     Link encap:Ethernet  HWaddr ec:1a:59:64:3a:36  
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:847 errors:0 dropped:1029 overruns:0 frame:0
          TX packets:759 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:677394 (661.5 KiB)  TX bytes:133345 (130.2 KiB)

但是,一切都奇迹般地开始工作,一旦你改变wpa-roamwpa-conf和运行sudo /etc/init.d/networking restart。您什么时候使用wpa-roam,什么时候使用wpa-conf

Answers:


30

wpa-roaming 是一种您可以浏览并连接到无线网络的方法。

以下设置的结果是,如果未连接以太网电缆,则wlan0优先,并将您连接到所需的无线网络或可用的开放式无线网络或预定的无线网络。如果连接以太网电缆,则有线网络连接会立即关闭WiFi接入,然后eth0将您连接到有线网络。通过拔下网络电缆,无线连接将立即再次可用。

资料来源:http : //manual.aptosid.com/en/inet-setup-en.htm

我假设这wpa-conf是通过网络接口漫游时不需要的静态配置。我找不到与此相关的任何详细文档。

顺便说一下,我的WiFi配置也有同样的问题。拔出有线以太网时,我的WiFi无法正常工作。所以我像您一样将wpa-roam更改为wpa-conf,它起作用了。


1
我怀疑如果要使用wpa-roam,则需要将wlan0设置为manual,而不是dhcp或static。不过那只是一个理论。
劳伦斯

5
对,那是正确的。漫游意味着您允许无线接口尝试并“漫游”连接到其他接入点-但是,如果您只有1个集合,则意味着如果出现问题,它将尝试“重新连接”。使用wpa-conf,它将不会在下降时重新连接。
Piotr Kula 2013年

@劳伦斯,的确如此。不仅是理论,还包括:跑步时才有报道sudo /etc/init.d/networking restart
Jochem Schulenklopper 2015年

@jschulenklopper啊。甚至没有意识到这一点。我一点都不用/etc/init.d/networking restart哈哈。
劳伦斯

3
另一个值得注意的区别是插入时wpa-roam ifplugd断开连接。它是可配置的行为,可能是RaspberryPI特有的。wlan0eth0
domen

4

您还可以在本地安装的文档文件中找到wpa_supplicant的两种操作模式(托管和漫游)的完整说明-可以查看(在线[较旧的?]在线此处):

zless /usr/share/doc/wpa_supplicant/README.modes.gz

它解释说,虽然“受管”模式仅允许连接到单个配置的WiFi网络,但是“漫游”模式允许连接到具有潜在不同网络配置的多个WiFi网络,这可以通过添加特殊选项来控制,id_str然后将其与服务器中的相应条目匹配网络配置文件-在/etc/network/interfaces文件中指定。例如:

allow-hotplug eth1
iface eth1 inet manual
    wpa-driver wext
    wpa-roam /etc/wpa_supplicant/wpa_roam.conf

# id_str="uni"
iface uni inet dhcp

# id_str="home_static"
iface home_static inet static
        address 192.168.0.20
        netmask 255.255.255.0
        network 192.168.0.0
        broadcast 192.168.0.255
        gateway 192.168.0.1

wpa-roam文件中指定相应WiFi网络的位置。例如/etc/wpa_supplicant/wpa_roam.conf

network={
        ssid="foo"
        key_mgmt=NONE
        # this id_str will notify /sbin/wpa_action to 'ifup uni'
        id_str="uni"
}

network={
        ssid="bar"
        psk=123456789...
        # this id_str will notify /sbin/wpa_action to 'ifup home_static'
        id_str="home_static"
}

因此,“ uni”网络将使用DHCP,而“ home_static”网络将使用静态IP地址192.168.0.20。尽管不必使用该id_str选项,但设备只会使用默认值(请参阅doc文件)。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.