我的工作场所使用 802.11x 身份验证作为 WiFi 网络,每天我会被踢出网络好几次,然后需要执行以下操作:
- 禁用网络
- sudo kill -9
- 重启网络
此时,机器将正常连接到网络。我没有在系统日志中看到任何异常,并且正在运行 Ubuntu 12.04(64 位)。可能出了什么问题?
答案1
我遇到了同样的问题。事实证明,当存在多个接入点 (AP) 时,网络管理器在切换接入点 (AP) 时有点过于热心。您有两个选择
使用 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”的文本框。将单元地址粘贴在那里。
否则,您可以完全放弃网络管理器并使用 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