Wi-Fi 命令行
越来越多的人正在使用无线网络作为他们的主要网络媒介。在 X11 下有许多出色的程序为用户提供了无线网卡的图形界面。GNOME 和 KDE 都包含了网络管理实用程序,而一个与桌面环境无关的实用程序 wicd 也提供了强大的功能。但是,如果您没有运行 X11 并且想要管理您的无线网卡怎么办? 我在这里不介绍如何安装和激活您的网卡(为此,请查看 madwifi 或 ndiswrapper 等项目)。我假设您的网卡已正确安装和配置,并且它被称为 wlan0。下面提到的大多数实用程序都需要直接与您的无线网卡(或至少是网卡驱动程序)通信,因此它们需要以 root 权限运行(只需记住使用 sudo)。
第一步是查看您所在区域有哪些无线网络可用。一个名为 iwlist 的实用程序提供了有关您的无线环境的各种信息。要扫描您的环境以查找可用的网络,请执行以下操作
sudo iwlist wlan0 scan
您将看到类似于以下的输出
Cell 01 - Address: 00:11:22:33:44:55 ESSID:"network-essid" Mode:Master Channel:11 Frequency:2.462 GHz (Channel 11) Quality=100/100 Signal level:-47dBm Noise level=-100dBm Encryption key:off . . .
详细信息(地址和 essid)已被更改以保护相关人员。此外,... 代表可能存在也可能不存在的额外输出,具体取决于您的硬件。您将为无线网卡范围内的每个接入点获得一个单独的单元条目。对于每个接入点,您可以找到硬件地址、essid 以及它运行的频道。此外,您可以了解接入点以何种模式运行(主模式还是 Ad-Hoc 模式)。通常,您最感兴趣的是 essid 以及正在使用的加密方式。
一旦您知道您的直接环境中有哪些可用网络,请使用 iwconfig 实用程序配置您的无线网卡以使用其中一个接入点,以设置无线网卡的参数。首先,设置 essid,它标识您想要的网络接入点
sudo iwconfig wlan0 essid network-essid
根据您的网卡及其驱动程序,您可能可以选择将 essid 设置为特殊值 “any”。在这种情况下,您的网卡将选择第一个可用的接入点。这称为混杂模式。
您可能还需要设置您的无线网卡要使用的模式。这取决于您的网络拓扑。您可能有一个中央接入点,所有其他设备都连接到该接入点,或者您可能有一个 Ad-Hoc 无线网络,其中所有设备都作为对等方进行通信。您可能希望您的计算机充当接入点。如果是这样,您可以使用 iwconfig 将模式设置为 master。或者,您可能只是想嗅探您周围发生的事情。您可以通过将模式设置为 monitor 并被动地监视您的网卡设置为的频率上的所有数据包来做到这一点。您可以通过运行以下命令设置频率或频道
sudo iwconfig wlan0 freq 2.422G
或通过运行
sudo iwconfig wlan0 channel 3
您可以设置其他参数,但您应该仅在有充分理由的情况下才考虑这样做。一个选项是灵敏度阈值,它定义了网卡对噪声和信号强度的敏感程度,您可以设置无线网卡的重试机制的行为。在非常嘈杂的环境中,您可能需要调整此设置。使用以下命令设置最大重试次数
sudo iwconfig wlan0 retry 16
或者,将最大重试生存时间设置为 300 毫秒
sudo iwconfig wlan0 retry lifetime 300m
在非常嘈杂的环境中,您可能还需要调整数据包分片。如果整个数据包无法在没有损坏的情况下从一个点传输到另一个点,您的无线网卡可能必须将数据包分解成更小的块以避免这种情况。您可以使用以下命令告诉网卡要使用的最大分片大小
sudo iwconfig wlan0 frag 512
此值可以小于数据包的大小。某些网卡可能不会立即应用这些设置更改。在这种情况下,运行此命令以刷新对网卡的所有挂起的更改并应用它们
sudo iwconfig wlan0 commit
另外两个有用的命令是 iwspy 和 iwpriv。如果您的网卡支持,您可以使用以下命令收集无线统计信息
sudo iwspy wlan0
第二个命令使您可以访问特定网卡的可选参数。iwconfig 用于可用的通用选项。如果您在不带任何参数的情况下运行它(sudo iwpriv wlan0),它会列出网卡的所有可用选项。如果不存在额外的选项,您将看到如下输出
wlan0 no private ioctls
要设置这些私有选项之一,请运行
sudo iwpriv wlan0 private-command [private parameters]
现在您的网卡已配置并连接到无线网络,您需要配置您的网络选项以使用它。如果您在网络上使用 DHCP,您可以简单地运行dhclient来查询 DHCP 服务器并获取您的 IP 地址和其他网络设置。如果您想手动设置这些选项,请使用 ifconfig 命令(有关更多信息,请参阅手册页)。