Linux:用於輕鬆更改實際無線“連接”網路的命令行工具?
這個問題來自 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
.第二個範例切換到名為
MyWiFiNetwork
BSSID的已儲存 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 的連結。