Wifi

Linux:用於輕鬆更改實際無線“連接”網路的命令行工具?

  • March 26, 2019

這個問題來自 Software Recomendations StackExchange 站點。一開始我認為那是合適的地方,但有些人建議這個 Unix 論壇更適合。

當作業系統有多個可用的無線網路(並且已知,這是:在其“首選”列表中)時,它應該對它們之間的漫游進行智能管理,通常連接到最好的網路(通過幾個因素來衡量它,比如覆蓋範圍或速度)。

但是,當使用一些 Linux 發行版(例如用於安全審計的發行版)時,我發現這樣的管理並不那麼智能:有時網路會停止執行(行為不完全正常)並且作業系統會停留在該無線網路上。

因此,我正在考慮自己編寫一個腳本,以在連接的網路變慢或直接失敗時強制 Linux 選擇另一個無線網路(也許可以通過 ping 路由器/接入點來檢查)。

對於我所閱讀的有關命令行無線管理的內容,“連接到”的事情似乎有點尷尬:發出多個命令,編輯文件……等等。

有誰知道在 Linux 下執行的一個好的“切換到網路”命令行工具?請記住,我不需要連接到新網路:我只想連接到已經連接的網路,因此作業系統應該知道密碼、加密數據等。

可能的命令行範例:

switchtowifi --essid MyWiFiNetwork
switchtowifi --essid MyWiFiNetwork --bssid 11:22:33:44:55:66
switchtowifi --channel 5

第一個範例切換到任何已儲存的 WiFi 網路,名為MyWiFiNetwork.

第二個範例切換到名為MyWiFiNetworkBSSID的已儲存 WiFi 網路11:22:33:44:55:66

第三個範例切換到通道 5 上任何已儲存的 WiFi 網路。

使用nmcli工具的解決方案,包含在大多數發行版中或通過 apt-get、yum … 等輕鬆安裝:

顯示已儲存的WiFi 網路:

$ nmcli con
NAME            UUID                                   TYPE              TIME
Wireless-1      28d6c265-xxxx-4e83-907f-ecb5ab3ac37c   802-11-wireless   Thu 
Wired-Network   30d29da3-xxxx-4ea2-94ff-0edac8954ff7   802-3-ethernet    Sun 
Wireless-2      89f31b44-xxxx-4b7d-abb1-8242a1fa7040   802-11-wireless   Thu 
Wireless-3      6adcb4e8-xxxx-4e88-bf50-872d9e5eb1f3   802-11-wireless   Fri 
Wireless-4      8c4fc701-xxxx-472e-aecc-40131c0d8d31   802-11-wireless   Fri 

請注意,網路由唯一的 UUID標識符儲存。

連接到這些網路中的任何一個(例如Wireless-1):

$ nmcli con up uuid 28d6c265-xxxx-4e83-907f-ecb5ab3ac37c

有關更多功能,請參見手冊頁,例如忘記、斷開連接、掃描或連接到新的(尚未儲存的)網路。

nmcli工具很棒:它可以與特定的無線設備(即:)wlan0或以通用方式與它們中的任何一個一起使用(即:您只需指定wifi並且該工具負責建立連接)。

從這裡提取的資訊。

感謝@ThatGuy 的連結。

引用自:https://unix.stackexchange.com/questions/236794