使用WPA Supplicant在Ubuntu 18.04/19.04上从终端连接到Wi-Fi的方法
使用WPA Supplicant在Ubuntu 18.04/19.04上從終端連接到Wi-Fi的方法_Linux教程_云網牛站 (ywnz.com)
本文介紹使用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
如你所見,我的無線卡被軟件阻止,這意味著我的Ubuntu OS上禁用了無線功能,要取消阻止它,請使用以下命令:
rfkill unblock wifi
二、找到無線接口和無線網絡的名稱
運行iwconfig命令以查找無線接口的名稱。
iwconfig
wlan0曾經是沒有Systemd的Linux系統上無線網絡接口的通用名稱,因為Ubuntu使用Systemd(參考:Systemd入門教程),所以你會發現你的無線網絡接口的名稱類似于wlp4s0,還可以看到它現在與任何接入點都沒有關聯:
然后使用以下命令掃描附近的網絡,找到你的無線網絡名稱,用你自己的無線接口名稱替換wlp4s0,ESSID是網絡名稱標識符:
sudo iwlist wlp4s0 scan | grep ESSID
三、使用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
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
知識擴展:使用NetworkManager隨機化MAC地址的方法。
并通過執行以下命令在啟動時禁用NeworkManager自動啟動:
sudo systemctl disable NetworkManager
默認情況下,wpa_supplicant在前臺運行,如果連接完成,則打開另一個終端窗口并運行:
iwconfig
你可以看到無線接口現在與接入點相關聯:
你可以按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
現在你可以訪問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網絡操作全部完成。
總結
以上是生活随笔為你收集整理的使用WPA Supplicant在Ubuntu 18.04/19.04上从终端连接到Wi-Fi的方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: TX2下编译qt程序步骤
- 下一篇: rk3288 android4.4,ub