需要重新启动网络接口并终止 wpa_supplicant,如何修复?

需要重新启动网络接口并终止 wpa_supplicant,如何修复?

我的工作场所使用 802.11x 身份验证作为 WiFi 网络,每天我会被踢出网络好几次,然后需要执行以下操作:

  1. 禁用网络
  2. sudo kill -9
  3. 重启网络

此时,机器将正常连接到网络。我没有在系统日志中看到任何异常,并且正在运行 Ubuntu 12.04(64 位)。可能出了什么问题?

答案1

我遇到了同样的问题。事实证明,当存在多个接入点 (AP) 时,网络管理器在切换接入点 (AP) 时有点过于热心。您有两个选择

  1. 使用 iwlist 查明有多少个 AP:

    root@debian:/home/nofrills# iwlist wlan0 scan
    
    Scan completed :
      Cell 01 - Address: 00:1E:58:A1:41:87
                ESSID:"iiserk_wireless"
                Mode:Managed
                Frequency:2.462 GHz (Channel 11)
                Quality:4/5  Signal level:-64 dBm  Noise level:-92 dBm
                IE: IEEE 802.11i/WPA2 Version 1
                    Group Cipher : TKIP
                    Pairwise Ciphers (2) : TKIP CCMP
                    Authentication Suites (1) : 802.1x
                   Preauthentication Supported
                Encryption key:on
                Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 6 Mb/s
                          12 Mb/s; 24 Mb/s; 36 Mb/s; 9 Mb/s; 18 Mb/s
                          48 Mb/s; 54 Mb/s
    
      Cell 02 - Address: 00:1E:58:A1:54:7B
                ESSID:"iiserk_wireless"
                #More such details
    

    然后注意地址细胞的最高质量。这是离您最近的 AP。然后单击网络管理器小程序,选择“编辑连接”并转到列出的 wifi 网络。将出现一个名为“BSSID”的文本框。将单元地址粘贴在那里。

  2. 否则,您可以完全放弃网络管理器并使用 wpa_supplicant(无论如何,网络管理器都会在后台使用它)。只需创建一个配置文件并按如下方式编辑您的 /etc/network/interfaces:

    auto lo
    iface lo inet loopback
    
    auto wlan0
    iface wlan0 inet dhcp
        pre-up wpa_supplicant -B -Dwext -i wlan0 -c/etc/wpa_supplicant.conf
        post-down killall -q wpa_supplicant 
    

除非您大部分时间都在大致相同的位置工作,否则选项 1 不是很有用。选项 2 是我现在使用的,效果很好。但是 wifi 在挂起/恢复后不会自动重新连接,因此您需要手动运行/etc/init.d/networking/restart

如果您喜欢整洁地做事,作为通用命令的替代killall,您可以使用 WPA 特定工具wpa_client

wpa_cli -i wlan0 terminate

答案2

sudo 服务网络管理器停止

它将停止 NetworkManager

相关内容