问题描述
我在使无线连接正常工作时遇到了麻烦,我意识到我真的不知道如何使用我拥有的工具,在这种情况下,就是Ubuntu-9.04中的iwconfig命令。这是我得到的:
***iwconfig***
—
lo no wireless extensions.
eth0 no wireless extensions.
wmaster0 no wireless extensions.
wlan0 IEEE 802.11bgn ESSID:"Network"
Mode:Managed Frequency:2.412 GHz Access Point: Not-Associated
Tx-Power=20 dBm
Retry min limit:7 RTS thr:off Fragment thr=2352 B
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
vboxnet0 no wireless extensions.
pan0 no wireless extensions.
“Network”是我的无线网络的名称,顺便说一句。但这一切意味着什么?此信息如何帮助我获得有效的无线连接?
当我尝试使用
sudo iwconfig wlan0 key s:my_key
我收到以下错误消息:
Error for wireless request "Set Encode" (8B2A) :
SET failed on device wlan0 ; Invalid argument.
我确实有正确的钥匙,那是什么问题呢?
最佳答案
wlan0 IEEE 802.11bgn ESSID:””
表示您的卡支持802.11 b /g /n标准,并且当前未连接任何网络(ESSID,名称标识网络为空)
Mode:Managed
设备的操作模式。根据您的卡,您可以选择以下之一:
-
Ad-Hoc(仅由一个单元组成且没有接入点的网络)
-
托管(节点通过漫游连接到由许多接入点组成的网络)
-
主节点(该节点是同步主节点或充当访问点)
-
转发器(节点在其他无线节点之间转发数据包)
-
辅助节点(该节点充当备份主/中继器)
-
监视(该节点未与任何小区关联,并且被动监视该频率上的所有数据包)
-
汽车。
Frequency:2.412 GHz
或频道-与您在管理无线网卡的GUI工具中看到的频道相同-您可以输入频率或频道号
Access Point: Not-Associated
提供您要连接的AP的确切MAC地址。如果您的网络中有多个AP,并且您想弄清楚连接到哪个AP。
Tx-Power=20 dBm
这是卡的发射功率-基本上越高,卡所需的能量就越多。
Retry min limit:7
此选项描述卡的重试行为。
RTS thr:off
这说明您的卡在每次发送数据包时是否检查空闲信道。在某些情况下,这可以提高性能。
Fragment thr=2352 B
这描述了卡将发送的最大数据包大小-基本上,如果环境嘈杂,数据包越小,必须重新传输数据包的可能性就越小,如果发生,则必须传输的数据量就越少。根据手册,如果此值大于最大数据包大小,则卡可能会一起发送多个数据包。
Power Management:off
此选项提供有关卡使用电源管理的信息。您可以选择丢弃某些软件包(即bcast和mcast),设置卡的活动周期以及其他一些选项。
Link Quality:0 Signal level:0 Noise level:0
如果您的卡已连接,那么您将在这里寻找链路质量:)信号电平和噪声电平可以指定为dBm或任何任意单位。
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
有关接收过程中错误的一些统计数据:nwid意味着您附近可能有另一个网络使用与您的信道相同的通道,无效的密码是您的卡无法解密的数据包数量,无效的碎片意味着有一些数据包丢失。
Tx excessive retries:0
这是您的卡无法发送的数据包数量。
以上所有内容均基于iwconfig手册,您可能会找到HML版本here。
如果要使用命令行工具配置卡,请确保关闭networkmanager并使用Sathya’s answer。如果您的密钥为文本,请使用
sudo iwconfig wlan0 key s:your_key
代替
sudo iwconfig wlan0 key ABCD-1234-5678-EFG2
次佳答案
令我惊讶的是,没有人愿意在上面的答案中提到这一点,但这听起来像是您确实在试图使wifi连接在Linux下工作-与其说是了解每个iwconfig参数的细节,倒不如说是。
考虑到这一点,至关重要的一点是要指出iwconfig不支持WPA /WPA2协商和连接到WLAN网络时进行身份验证。也就是说,您可以使用iwconfig连接的唯一wifi网络是开放的未加密网络和启用WEP的网络。
现在,您收到此奇怪错误的原因:
Error for wireless request "Set Encode" (8B2A) :
SET failed on device wlan0 ; Invalid argument.
因为iwconfig期望key:参数为WEP-key。由于WEP的工作方式,此密钥必须满足以下条件之一:
-
长度为5个字符的ascii字符串
-
长度为13个字符的ascii字符串
-
长度为10个字符的十六进制字符串
-
长度为26个字符的十六进制字符串
当然,您的密钥是6个字符,因此无法使用,因此会出现错误。请注意,从技术上讲,my_key
也不是有效的PSK - WPA /2至少需要8个字符。
所有这些都引出了一个问题:那么如何连接到启用WPA-TKIP /WPA2-AES的无线局域网?答案是您必须使用另一个程序,例如wpa_supplicant。如果您对使用widd manager之类的gui网络管理器的命令行方法不太感兴趣,它将使此过程更加无缝。
由于是broken,因此任何安全的wifi网络都不会使用WEP,因此,重要的是要意识到iwconfig本身无法连接到更安全的WPA /WPA2。
第三种答案
只需编辑/etc/network/interfaces
并输入:
auto wlan0
iface wlan0 inet dhcp
wpa-ssid <ssid>
wpa-psk <password>
之后,写入并关闭文件并使用命令:
dhclient wlan0