linux终端连接wpa无线网,使用WPA Supplicant在Ubuntu 18.04/19.04上从终端连接到Wi-Fi的方法...

本文介绍使用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

22eae1317f925cd1f8ea65eab187a29a.png

如你所见,我的无线卡被软件阻止,这意味着我的Ubuntu OS上禁用了无线功能,要取消阻止它,请使用以下命令:

rfkill unblock wifi

二、找到无线接口和无线网络的名称

运行iwconfig命令以查找无线接口的名称。

iwconfig

wlan0曾经是没有Systemd的Linux系统上无线网络接口的通用名称,因为Ubuntu使用Systemd(参考:Systemd入门教程),所以你会发现你的无线网络接口的名称类似于wlp4s0,还可以看到它现在与任何接入点都没有关联:

6d7d20a865b8498f8ef49c4ed130e58d.png

然后使用以下命令扫描附近的网络,找到你的无线网络名称,用你自己的无线接口名称替换wlp4s0,ESSID是网络名称标识符:

sudo iwlist wlp4s0 scan | grep ESSID

e689bc79460fe65e67bed215349b92f1.png

三、使用WPA_Supplicant连接到Wi-Fi网络

现在从默认软件存储库在Ubuntu 18.04/19.04上安装wpa_supplicant:

sudo apt install wpasupplicant

我们需要使用wpa_passphrase实用程序创建一个名为wpa_supplicant.conf的文件,wpa_supplicant.conf是描述用户希望计算机连接到的所有网络的配置文件,运行以下命令以创建此文件,请注意用你自己的密码替换ESSID和Wi-Fi密码:

wpa_passphrase your-ESSID your-wifi-passphrase | sudo tee /etc/wpa_supplicant.conf

2d223ceb5ce9cc2509d8a11cd2b98c4e.png

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

你可以看到无线接口现在与接入点相关联:

b70c36abbc63406217ea04da19c76cbe.png

你可以按CTRL+C来停止当前的wpa_supplicant进程并通过添加-B选项在后台运行它:

sudo wpa_supplicant -B -c /etc/wpa_supplicant.conf -i wlp4s0

虽然我们已经过身份验证并连接到无线网络,但我们还没有IP地址,要从DHCP服务器获取专用IP地址,请使用以下命令:

sudo dhclient wlp4s0

现在你的无线接口有一个私有IP地址,可以显示如下:

ip addr show wlp4s0

99ed2fa4caed8dcb4e45a773ab1c0288.png

现在你可以访问Internet,要释放私有IP地址,请运行:

sudo dhclient wlp4s0 -r

附1:连接到隐藏的无线网络

如果你的无线路由器未广播ESSID,则需要在/etc/wpa_supplicant.conf文件中添加以下行:

scan_ssid=1

如下所示:

8325b41b789ebe7270aa7829c0a4b5e9.png

附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网络操作全部完成。

相关主题

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值