linux連接無線網絡配置詳解

目錄

1.找到無線網卡

2.掃描附近的WiFi

3.連接WiFi

4.配置自動連接

5.NetworkManager 無法自動重連問題排查及解決


前言:公司最近買了一臺win10的電腦來做服務器,現技術領導要求改裝成linux--CentOS系統,本人完成重裝之後要連接wifi,但出現無法重啓自動連接,斷網自動連接。找了相當多的博客,甚至到官網找資料都無法解決問題(樓主很無力~~)。最後憑系統日誌線索和自己的一些思考解決了這個問題。本文着重講解CentOS7 的無線網絡配置及自動重連的問題。

無線網絡配置

1.找到無線網卡

首先要找到無線網卡的名稱,才能操作它

iw dev

wlp3s0就是本機的無線網卡的名稱了。

2.掃描附近的WiFi

iw wlp3s0 scan|grep SSID

其中的SSID就是WiFi名字,找到你熟悉的名字然後開始連接

3.連接WiFi

這裏有兩款工具:wireless-tools和wpa_supplicant,由於我本機是自帶wpa_supplicant的,所以wireless-tools在這裏略過。

wpa_supplicant -B -i wlp3s0 -c <(wpa_passphrase "$SSID" "$password")  //$SSID:WiFi名稱,$password:WiFi密碼 
dhclient wlp3s0 //給無線網卡動態分配ip
iw wlp3s0 link //查看無線網絡連接狀態
 

 

看到connected to 說明已經連接成功!

wpa_supplicant介紹:

WPA是WiFi Protected Access的縮寫,中文含義爲“WiFi網絡安全存取”。wpa_supplicant是一個開源項目,已經被移植到Linux,Windows以及很多嵌入式系統上。它是WPA的應用層認證客戶端,負責完成認證相關的登錄、加密等工作。

wpa_supplicant help //查看wpa指令集

-B指的是使用守護進程在後臺執行這個是必須的選項。

-c(小寫)指定是使用配置文件:/etc/wpa_supplicant/wpa_supplicant.conf,如果不帶配置文件就用這條命令 <(wpa_passphrase "$SSID" "$password") ,把文件作爲命令輸入。

-i 指的是接口名稱,也就是wlp3s0無線網卡了。

在上面的操作中已經成功連接WiFi了,但是wpa_supplicant還沒有重啓、斷線自動連接能力。

 

4.配置自動連接

這裏自動連接就需要使用NetworkManager工具了。

NetworkManager介紹:

NetworkManager是RedHat(紅帽組織,傳送門:https://www.redhat.com/en)開發的一個項目,由一個管理系統網絡連接、並且將其狀態通過D-BUS(是一個提供簡單的應用程序 互相通訊的途徑的自由軟件項目,它是作爲freedesktoporg項目的一部分來開發的。)進行報告的後臺服務,以及一個允許用戶管理網絡連接的客戶端程序。優點是:帶有GUI工具界面,能大大簡化網絡連接。

1.安裝NetworkManager

yum -y install NetworkManager-wifi

 2.啓動NetworkManager

systemctl start NetworkManager 

systemctl enable NetworkManager //設置開機啓動

現在可以使用nmcli (NetworkManagerClient)命令啦

3.令NetworkManager管理起wifi

掃描WiFi

nmcli dev wifi //掃描WiFi

 連接WiFi 

這裏就有個問題,前面我們是通過wpa_supplicant連接的,這裏再用NetworkManager連接就會產生衝突,所以這裏我們先重啓下network,以便讓wap_supplicant的連接失效,然後再操作NetworkManager連接WiFi。

service network restart
nmcli dev wifi connect $SSID password $password //$SSID:WiFi名稱,$password:WiFi密碼
nmcli conn //查看已連接的WiFi

 可以看到已連接WiFi,UUID:060c319f-3e24-4b57-976d-9a2705d2467b

根據UUID來管理WiFi

nmcli c down 060c319f-3e24-4b57-976d-9a2705d2467b //停用WiFi

nmcli c up 060c319f-3e24-4b57-976d-9a2705d2467b //啓用WiFi

nmcli c delete 060c319f-3e24-4b57-976d-9a2705d2467b //刪除WiFi
systemctl restart NetworkManager //重啓

5.NetworkManager 無法自動重連問題排查及解決

WiFi連接上了,樓主重啓了無數遍還是不能夠自動連接WiFi。網上找相關的博客都很水,根本就沒有排查過程,張口就來命令,什麼意思也不解釋。在這絕望的境地下,也只好自力更生了。

1.NetworkManager排查過程

首先要排查問題,那麼日誌分析是必不可少的,找到相關的日誌信息,有錯誤提示就能找到解決問題的線索。

less /var/log/messages //查看linxu內核及公共消息日誌

進去後按G跳到底部,輸入?NetworkManager回車找到NetworkManager的相關日誌,按n往上搜索,果然出了幾條關鍵的信息線索:

在紅色框裏可以看到,出現了三條warn信息,第一條意思是“取消p2p連接失敗:返回空的body信息”。第二條意思是“在wap_supplicant 設置WFD IES 失敗原因是GDBUS.Error.InvalidArgs沒有這個屬性”  。第三條意思是:"不能獲取請求掃描結果:返回錯誤的body("ss")"。

分析過程:

第二條信息很關鍵,因爲沒有相關屬性導致 第一條和第三條都出錯了。直接百度搜索 "GDBUS.Error.InvalidArgs: No such property" ,發現沒有答案。

其實從日誌信息可以知道,NetworkManager會向wpa_supplicant發送請求來獲取掃描信息,現在是請求wpa_supplicant時失敗了。那就可以初步猜測兩個工具之間的兼容問題!

解決問題

既然定位到問題了,兼容問題,那就從工具本身下手吧,下載wpa_supplicant最新版本,然後重啓NetworkManager.

yum -y install wpa_supplicant //下載最新版本

systemctl restart NetworkManager //重啓NetworkManager

果然,安裝最新版本之後,查看日誌,NetworkManager已經可以自動掃描WiFi信息連接了。

發佈了7 篇原創文章 · 獲贊 8 · 訪問量 8475
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章