本文介绍使用wpa_supplicant从Ubuntu 18.04/19.04服务器/桌面上的命令行连接到Wi-Fi网络,在现代家庭无线网络中,通信使用WPA-PSK(预共享密钥)进行保护,而WPA-Enterprise则是为企业网络设计的,WPA-PSK也称为WPA-Personal,wpa_supplicant是WPA请求者组件的实现,无线LAN中的请求方是安装在最终用户计算机上的客户端软件,需要进行身份验证才能加入网络。
一、在Ubuntu 18.04/19.04上启用无线卡
首先,确保你的无线网卡已启用,可以使用rfkill:
sudo apt install rfkill
要检查无线网卡的状态,请运行:
rfkill list
然后使用以下命令扫描附近的网络,找到你的无线网络名称,用你自己的无线接口名称替换wlp4s0,ESSID是网络名称标识符:
sudo iwlist wlp4s0 scan | grep ESSID
wpa_passphrase命令的输出将通过管道发送到tee,然后写入/etc/wpa_supplicant.conf文件,现在使用以下命令将无线卡连接到无线接入点:
sudo wpa_supplicant -c /etc/wpa_supplicant.conf -i wlp4s0
以下输出表明你的无线卡已成功连接到接入点:
Successfully initialized wpa_supplicant
wlp4s0: SME: Trying to authenticate with c5:4a:21:53:ac:eb (SSID=’LinuxBabe.Com Network’ freq=2437 MHz)
wlp4s0: Trying to associate with c5:4a:21:53:ac:eb (SSID=’LinuxBabe.Com Network’ freq=2437 MHz)
wlp4s0: Associated with c5:4a:21:53:ac:eb
wlp4s0: CTRL-EVENT-SUBNET-STATUS-UPDATE status=0
wlp4s0: WPA: Key negotiation completed with c5:4a:21:53:ac:eb [PTK=CCMP GTK=CCMP]
wlp4s0: CTRL-EVENT-CONNECTED – Connection to c5:4a:21:53:ac:eb completed [id=0 id_str=]
请注意,如果你使用的是Ubuntu桌面版,则需要使用以下命令停止网络管理器,否则在使用wpa_supplicant时会导致连接问题:
sudo systemctl stop NetworkManager
并通过执行以下命令在启动时禁用NeworkManager自动启动:
sudo systemctl disable NetworkManager
默认情况下,wpa_supplicant在前台运行,如果连接完成,则打开另一个终端窗口并运行:
iwconfig
你可以看到无线接口现在与接入点相关联:
现在你可以访问Internet,要释放私有IP地址,请运行:
sudo dhclient wlp4s0 -r
附1:连接到隐藏的无线网络
如果你的无线路由器未广播ESSID,则需要在/etc/wpa_supplicant.conf文件中添加以下行:
scan_ssid=1
如下所示:
附2:启动时自动连接
要在引导时自动连接到无线网络,我们需要编辑wpa_supplicant.service文件,将文件从/lib/ systemd/system/目录复制到/etc/systemd/system/目录,然后编辑文件内容,因为我们不希望更新版本的wpa_supplicant覆盖我们的修改:
sudo cp /lib/systemd/system/wpa_supplicant.service /etc/systemd/system/wpa_supplicant.service
使用命令行文本编辑器(如Nano)编辑文件:
sudo nano /etc/systemd/system/wpa_supplicant.service
找到以下行:
ExecStart=/sbin/wpa_supplicant -u -s -O /run/wpa_supplicant
将其更改为以下内容,在这里,我们将配置文件和无线接口名称添加到ExecStart命令:
ExecStart=/sbin/wpa_supplicant -u -s -c /etc/wpa_supplicant.conf -i wlp4s0
保存并关闭文件(要在Nano文本编辑器中保存文件,请按Ctrl+O,然后按Enter确认,要退出,请按Ctrl+X),然后启用wpa_supplicant服务以在启动时启动:
sudo systemctl enable wpa_supplicant.service
我们还需要在启动时启动dhclient以从DHCP服务器获取私有IP地址,这可以通过为dhclient创建systemd服务单元来实现:
sudo nano /etc/systemd/system/dhclient.service
将以下文本放入文件中:
[Unit]
Description= DHCP Client
Before=network.target
After=wpa_supplicant.service
[Service]
Type=simple
ExecStart=/sbin/dhclient wlp4s0
[Install]
WantedBy=multi-user.target
保存并关闭文件,然后启用此服务:
sudo systemctl enable dhclient.service
至此,从命令行用WPU Supplicant连接到Ubuntu 18.04/19.04的Wi-Fi网络操作全部完成。
相关主题
文章知识点与官方知识档案匹配,可进一步学习相关知识CS入门技能树Linux入门初识Linux24804 人正在系统学习中 相关资源:翠雨方工作备忘录工具v2.31中文绿色版-其它代码类资源-CSDN文库
来源:袁廷翠09050082
声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!