当操作系统具有多个可用的无线网络(众所周知,这是:在其“首选”列表中)时,它应该对它们之间的漫游进行智能管理,通常会连接到最佳无线网络(通过几个因素对其进行测量,例如覆盖率或速度)。

但是,当使用某些Linux发行版(例如用于安全审核的发行版)时,我发现这种管理不是很聪明:有时网络会关闭(表现不佳),并且运行正常。系统停留在该无线网络上。

因此,我正在考虑自己编写脚本,以在连接的网络速度变慢或直接失败时(也许可以通过对路由器/访问点执行ping检查)来强制Linux选择另一个无线网络。 >对于我所读过的有关命令行无线管理的内容,“连接到”似乎有点尴尬。

有人知道Linux下运行的一个好的“切换到网络”命令行工具吗?
请记住,我不需要连接到新网络:我只想连接到已经有一天的连接网络,因此操作系统应该知道密码,加密数据等。

可能的命令行示例:

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


第一个示例切换到名为MyWiFiNetwork的任何已存储的WiFi网络。
第二个示例切换到BSSID为MyWiFiNetwork的已存储的WiFi网络11:22:33:44:55:66
第三个示例切换到通道5上任何已存储的WiFi网络。

#1 楼

希望这不是太晚才有用。但由于家里有一个以上的AP(包括测试一些设备,我的主要连接以及隔离的工作LAN yadda yadda ...),因此我有类似的要求。

此问题中的一个问题,是没有提及您的Distro,使用的无线实用程序,配置已知网络的方法等。此外,据我所知,如果不使用wicd-gtk等功能,那么目前没有任何此类可用。

就个人而言,尽管我喜欢使用Ubuntu,因为我喜欢打包/发行版管理,但我讨厌Gnome / KDE等,而选择Fluxbox,这使普通的Wifi实用程序变得毫无意义/无用。 >
所以;在禁用网络管理器以免受到干扰后,我使用以下详细信息手动配置了所需的网络:http://linuxcommando.blogspot.co.uk/2013/10/how-to-connect-to-wpawpa2-wifi -network.html

我将每个网络的配置文件放入/etc/wpa_supplicant.d/SSID_HERE.conf中的新目录,然后在/ usr / local / bin / connectwifi中创建一个小脚本可以在这里找到(尽管是一个粗略的WIP!):http://dgunix.com/383-switching-between-wifi-networks-in-linux/

希望能给您一些想法最少!

#2 楼


(在Unix&Linux StackExchange网站上找到答案)


使用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提供链接。

#3 楼

您可以尝试:



iw,它是与WiFi网络相关的任务的基本工具(请参阅:无线网络配置)
无线工具(WT):iwconfig / iwlist(允许操作无线扩展的工具集),

wpasupplicant(当今大多数发行版默认都安装了wpa_supplicant)。
/>

维基百科上用于Linux的无线工具