所以基本上,当我不在 X 中时,我想使用它iwconfig
来连接到我的 wifi 网络。但我在手册页中找不到这样做的方法。有什么想法吗?
答案1
iw
(list/config) 只能处理 WEP。
您需要wpasupplicant
提供该wpa_supplicant
命令的包,如有必要,请通过 安装sudo apt-get install wpasupplicant
。
将您的 SSID 和密码输入其中/etc/wpa_supplicant.conf
(需要 sudo)。
例子:
network={
ssid="ssid_name"
psk="password"
}
假设您的接口是 wlan0,您可以连接:
sudo wpa_supplicant -B -i wlan0 -c /etc/wpa_supplicant.conf -D wext
sudo dhclient wlan0
“wext” 是一个驱动程序,特定于每张卡;请参阅wpa_supplicant -h
。示例:
hostap (default) Host AP driver (Intersil Prism2/2.5/3). (this can also be used with Linuxant DriverLoader).
hermes Agere Systems Inc. driver (Hermes-I/Hermes-II).
madwifi MADWIFI 802.11 support (Atheros, etc.).
atmel ATMEL AT76C5XXx (USB, PCMCIA).
wext Linux wireless extensions (generic).
ndiswrapper Linux ndiswrapper.
broadcom Broadcom wl.o driver.
ipw Intel ipw2100/2200 driver.
wired wpa_supplicant wired Ethernet driver
roboswitch wpa_supplicant Broadcom switch driver
bsd BSD 802.11 support (Atheros, etc.).
ndis Windows NDIS driver.
答案2
此链接显示了所有内容并且对我来说效果很好:http://linux.icydog.net/wpa.php
我正在这里复制内容,这样我们就有它了,以防该网站离线。
命令行WPA
有时,您会处于命令行状态,无法访问 GUI 网络工具 - 但您的接入点已使用 WPA 进行保护。您会怎么做?
假设你的无线网卡确实可以工作(即 iwconfig 可以看到它并与之交互),使用 wpa_supplicant 实际上非常简单。安装 wpa_supplicant
如今,大多数发行版都默认安装了 wpa_supplicant。如果您有 wpa_passphrase 和 wpa_supplicant 命令,那么您就可以开始了。否则,您需要通过执行以下操作来安装该软件包(对于 Ubuntu):
$ sudo apt-get install wpasupplicant
或者(对于 Fedora):
# yum install wpa_supplicant
或者适用于您的发行版的任何命令。
生成配置文件
现在 wpa_supplicant 已经安装完毕,我们将创建其配置文件。一旦您知道了 SSID 和 WPA 密码,您所要做的就是运行:
$ wpa_passphrase myrouter mypassphrase > wpa.conf
当然,将“myrouter”替换为您的路由器的 SSID,“mypassphrase”替换为您的 WPA 密码,“wpa.conf”替换为您要存储配置的任何文件。此文件名不必遵循特定格式或具有特定扩展名。
或者,为了避免在命令行上输入密码(这样它就不会保存在 shell 的历史记录中),您可以在命令行上仅指定 SSID。wpa_passphrase 将等待您输入密码,然后按 Enter 键:
$ wpa_passphrase myrouter > wpa.conf
mypassphrase
你最终会得到如下文件:
network={
ssid="myrouter"
#psk="mypassphrase"
psk=8ada1f8dbea59704ac379538b4d9191f6a72390581b4cd7a72864cea685b1a7f
}
建立连接
现在我们将实际运行 wpa_supplicant 来连接到无线网络。首先,如果您的路由器广播其 SSID(默认情况下它们都这样做),您可能希望确保您的无线网卡确实可以看到它:
$ iwlist scan
您可能必须以 root 身份运行该程序才能强制刷新。
接下来,您需要了解三条信息:
- 您的卡应使用哪种 wpa_supplicant 无线驱动程序。Running列出
wpa_supplicant --help
了它所具有的不同驱动程序(在“驱动程序:”下)。从 0.5.8 开始,有用的选择是:、、、、wext
和( ipw 仅适用于旧内核;>= 2.6.13应使用 wext)。如果您没有看到与您的卡匹配的特定驱动程序,请尝试 wext,因为它是一种万能驱动程序。hostap
madwifi
atmel
ndiswrapper
ipw
- 您的卡的网络设备。这通常是 eth1 或 wlan0,但如果您不确定,您可以直接运行
iwconfig
。它将报告非无线设备的“无无线扩展”,并将显示任何无线设备的一些数据。 - 您在上一步中创建的配置文件的路径。
现在您有了这些数据,请运行(以 root 身份):
# wpa_supplicant -D[driver] -i[device] -c[/path/to/config]
选项和参数之间没有空格。不要包含括号,因为我只是为了清楚起见才添加的。例如,对于我的笔记本电脑,它看起来像这样:
# wpa_supplicant -Dwext -ieth1 -c/root/wpa.conf
您还可以使用该选项在后台运行它,-B
这样它就不会占用您的控制台。
现在您已经与网络关联。
上网
要真正上网,您必须以某种方式获取 IP。大多数人只想从 DHCP 服务器(可能是路由器内置的服务器)获取动态 IP。(我不会介绍如何设置静态 IP 和路由表,因为这本身就是一件很麻烦的事。)
要获取 DHCP 租约,请首先释放您仍持有的所有租约(以 root 身份):
# dhclient -r
然后请求新的租约(当然,将 eth1 替换为您的网络设备的名称,与您在上一节中使用的名称相同):
# dhclient eth1
理论上来说,您现在有了一个 IP。祝您浏览愉快!
答案3
Debian 和其他发行版默认将 wpa_supplicant 作为服务运行,以便管理 wifi 网络。wpa_supplicant 可以由不同的客户端/前端(例如网络管理器 GUI)处理。这在以下文章中有更好的解释Debian 维基。
wpa_cli 是用于管理 wifi 网络的命令行 wpa_supplicant 客户端。
编辑:我刚刚发现这篇文章解释如何使用 nmcli并且它比 wpa_cli 好得多,因为它与 GUI 网络管理器及其设置和保存的 wifi 网络兼容。
wpa_cli 使用示例:
检查我是否已经有启用 wifi 的网络接口:
# iwconfig
wlan0 IEEE 802.11bgn ESSID:off/any
Mode:Managed Access Point: Not-Associated Tx-Power=22 dBm
Retry short limit:7 RTS thr:off Fragment thr:off
Encryption key:off
Power Management:on
检查 wpa_supplicant 进程是否正在运行:
# ps -e | grep wpa
1881 ? 00:00:07 wpa_supplicant
进入wpa客户端交互模式:
# wpa_cli
列出可用的接入点:
> scan
> scan_results
...你会得到如下结果:
bssid / frequency / signal level / flags / ssid
e0:60:66:7c:81:7f 2417 -66 [WPA2-PSK-CCMP][ESS] vodafone817E
e0:60:66:61:83:4b 2452 -76 [WPA2-PSK-CCMP][WPS][ESS] vodafone834A
f8:8e:85:c5:65:c2 2462 -76 [WPA-PSK-CCMP+TKIP][WPS][ESS] MOVISTAR_65C1
a8:d3:f7:46:0c:be 2472 -83 [WPA-PSK-CCMP+TKIP][WPA2-PSK-CCMP+TKIP][WPS][ESS] Orange-0CBC
...
添加您的 AP:
> add_network
> set_network 0 ssid "vodafone817E"
> set_network 0 psk "my-pass-phrase"
选择它作为当前:
> enable_network 0
连接到它:
> reconnect
检查状态:
> status
退出 wpa_cli:
> quit
从 shell 中,向 DHCP 请求 IP 和网络设置:
# dhclient -r
# dhclient wlan0
答案4
如果您安装了该软件包,实际上可以使用 NetworkManager 来实现这一点checkbox
。
sudo /usr/share/checkbox/create_connection SSID --security=wpa -key=WPA-KEY
(信用:错误 923836,这是我在搜索这个主题时找到的。)