ConnectToWIFI
前言
因為我的電腦是用 i3
,不是用一些方便的 DE,所以連 wifi 我都是用 NetworkManager
的指令在連。
但在連 eduroam
的時候我連不上去,所以我決定把作法紀錄下來。
備註
以下以 <ssid>
代表 WIFI 的名稱,<password>
代表密碼,而 <username>
代表使用者名稱(大部分 WIFI 應該沒有這項)。
1 | $ nmcli --version |
Security
輸入 $ nmcli dev wifi list
或 $ nmcli dev wifi
可以查看當前附近的 WIFI。
1 | IN-USE BSSID SSID MODE CHAN RATE SIGNAL BARS SECURITY |
其中 IN-USE
會在你正在連線的 WIFI 那列打一個 *
,而 SSID
代表 WIFI 名稱,然後最後的 SECURITY
是這次的主題,接下來會用 SECURITY
顯示的來分類。
沒有 Security
不須密碼即可直接連線的 WIFI,在 terminal 輸入$ nmcli dev wifi con <ssid>
通常即可連線。
然而有些 WIFI 是可以直接連線,但是在連線後必須打開瀏覽器認證才會給予網路連線,例如台大的 NTU
之類的。這種就連上後打開瀏覽器正常會跳出認證網站。
WPA2
這應該是最常見的,連線時輸入密碼即可連線。在 terminal 輸入 $ nmcli dev wifi con <ssid> password <password>
即可連線。
不過這樣你會變成明文地輸入你的密碼,所以不想要這樣的話可以使用 --ask
來讓他在接下來問你密碼:
1 | $ nmcli devi wifi con <ssid> --ask |
這樣就能連上了
WPA2 802.1X
接下來開始比較棘手了,也是這篇文章的由來,例如 ntu_peap
、ntu_csie
跟 eduroam
都是,通常是連線時要給帳號密碼。
首先你直接 $ nmcli dev wifi con <ssid>
的話他會顯示 Error: Failed to add/active new conneciton: Failed to determine AP security information
,就算用 nmtui
也是一樣。
peap authentication
像是 eduroam
和 ntu_peap
都是使用 PEAP
當作認證,這部份可能要去查 WIFI 供應商的說明。
實際解決方法是我們要手動建立一個 connection 然後把我們要的資訊打進去,具體如下:
1 | $ nmcli con add type wifi ssid <ssid> |
在最後 activate
後按任意鍵即可繼續輸入。
ttls authenticaion
像是台大資工的 csie
網路是 TTLS
認證。
實際解決方法,其實照上面 peap authenticaion
的作法就好了,什麼都不用改,我也不知道為什麼,太神奇了。
第二次以後
當你成功連到網路後,你就可以直接 $ nmcli con up <ssid>
來連上網路,不過網頁式認證的可能還是得開瀏覽器打帳號密碼。
後言
因為是很急著打出來的,所以可能有錯字或少打什麼指令,如果有任何錯誤或建議歡迎指出><。
Reference
Cannot Connect to College WIFI using NetworkManager:底下的回覆基本上就是 WPA2 802.1X
的解法。