Linux:用于轻松更改实际无线“连接到”网络的命令行工具?

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
第二个示例切换到已存储的 WiFi 网络,MyWiFiNetwork其 BSSID 为11:22:33:44:55:66
第三个示例切换到频道 5 上任何已存储的 WiFi 网络。

答案1

解决方案使用纳米克利工具,包含在大多数发行版中或通过 apt-get、yum ...等轻松安装:

显示已经存储的无线网络:

$ 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 提供的链接。

答案2

wicd 诅咒可能是一个选择:

wicd-curses 截图
(来源:atastypixel.com


还有纳米克利

相关内容