在我所在的地区,有一个由大约 50 个具有相同 SSID 的路由器组成的大型网络。我的设备会自动连接到最近且信号最强的网络。
我如何手动连接到范围内的其中一个?
例子:
| 路由器 || 网络 SSID || 强度 | -------------------------------------- | 一 || 随机名称 || 85% | | 二 || 随机名称 || 75% | | 三 || 随机名称 || 65% | | 四 || 随机名称 || 60% | --------------------------------------
我的设备会自动连接到,Router One
因为它具有最大强度。我如何连接到Router Two
或Router Three
(或Four
)?
我需要一个适用于 Linux 的解决方案。
答案1
您可以通过手动连接 AP 来完成此操作。
首先,如果您正在运行网络管理器,最简单的方法是关闭它:
sudo service network-manager stop
然后你需要确定你想加入的 AP 的 BSSID:命令
sudo iw dev wlan0 scan
(如果您使用wlan0作为你的无线接口)将产生很多输出,其中你会发现类似这样的内容:
BSS f8:1a:67:aa:7f:b9 (on wlan0) -- associated
TSF: 629432841083 usec (7d, 06:50:32)
freq: 2417
beacon interval: 100
capability: ESS Privacy ShortPreamble SpectrumMgmt ShortSlotTime (0x0531)
signal: -70.00 dBm
last seen: 0 ms ago
Information elements from Probe Response frame:
SSID: MySSID_NAME
(输出比这更长)。相关部分当然是BSS f8:1a:67:aa:7f:b9。
接下来,你必须释放接口上的所有先前的 IP 地址,以防万一:
sudo ip link set wlan0 down
sudo ip addr flush dev wlan0
sudo ip link set wlan0 up
现在您指定要连接到特定的 AP:
sudo iwconfig wlan0 essid MySSID_NAME ap f8:1a:67:aa:7f:b9
当然美联社先于基础服务识别码您刚刚确认。
现在你需要开始wpa_supplicant,
sudo wpa_supplicant -Dnl80211 -i wlan0 -B -c FILE_with_WPA_Secrets
(如果你不知道如何使用 WPA 凭证设置文件,你可以查阅例如这里;要小心,它说网络= {, 它应该是网络={没有空格)。最后,
sudo dhclient -v wlan0
(这-v标志并不适用于所有 Linux 发行版,但我喜欢它,因为我可以监控正在发生的事情)。
编辑
上述说明适用于具有 WPA 安全性的网络。对于 WEP 安全性,请将 wpa_supplicant 命令替换为:
sudo iwconfig wlan0 key s:Your_WEP_password
记住这两个角色s:之前需要输入密码。此后,再次
sudo dhclient -v wlan0