有多个具有相同 SSID 的无线网络可用。我正在寻找一种解决方案来连接到特定的(通过 BSSID)。
nmcli con up ifname ap看起来不错,但不幸的是,它不起作用。它只是连接回原始网络。
L. *_*mes 25
您可以使用Network Manager
的 cli 界面,nmcli
.
我确定你已经有了BSSID
. 您可以使用以下方法检查和验证:(
这$
是命令提示符。命令后面的行是输出。)
$ nmcli -f in-use,ssid,bssid,signal,bars dev wifi
* SSID BSSID SIGNAL BARS
* Apollo III (TWC) XX:XX:XX:XX:XX:XX 98 ????
Chromecast8481 XX:XX:XX:XX:XX:XX 97 ????
-- XX:XX:XX:XX:XX:XX 94 ????
Apollo III (1) XX:XX:XX:XX:XX:XX 87 ????
TWCWiFi XX:XX:XX:XX:XX:XX 80 ???_
CableWiFi XX:XX:XX:XX:XX:XX 80 ???_
TWCWiFi-Passpoint XX:XX:XX:XX:XX:XX 80 ???_
Apollo III (1) XX:XX:XX:XX:XX:XX 70 ???_
Run Code Online (Sandbox Code Playgroud)
连接到 的 cliBSSID
是:
$ nmcli d wifi connect XX:XX:XX:XX:XX:XX
Run Code Online (Sandbox Code Playgroud)
该命令将为您提供输入密码的 GUI 提示。您可以在命令行输入密码(可能是出于安全考虑):
$ nmcli d wifi connect XX:XX:XX:XX:XX:XX password "mypassword"
Run Code Online (Sandbox Code Playgroud)
后者不会提示输入密码,但会通过命令中的 BSSID 连接到指定的网络。 如果您之前已经连接到不同的网络,它将被命令中指定的网络替换。
该命令还将连接信息添加到该/etc/NetworkManager/system-connections
位置。该位置受到保护。
可以通过通知区域中的网络图标按创建的名称进行后续连接。
执行此操作的简单方法是使用网络管理器提供的 GUI。
转到顶部面板中的网络图标,选择Edit Connections
,找到所需 SSID 的无线连接配置文件,打开进行编辑,然后转到 BSSID 字段,然后 1) 弹出所需的 BSSID,或 2) 手动输入所需的 BSSID 。
请参阅下面的无线连接示例,其中显示了其 BSSID 字段。
这个答案首先由MariusMatutiae 在 SuperUser 上发布。如果这对您有帮助,请考虑在那里投票。
您可以通过手动连接到 AP 来实现。
首先,如果您正在运行网络管理器,最容易关闭网络管理器:
Run Code Online (Sandbox Code Playgroud)sudo service network-manager stop
然后你需要确定你想加入的AP的BSSID:命令
Run Code Online (Sandbox Code Playgroud)sudo iw dev wlan0 scan
(如果您使用wlan0作为无线接口)将产生大量输出,其中您会发现如下内容:
Run Code Online (Sandbox Code Playgroud)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 地址,以防万一:
Run Code Online (Sandbox Code Playgroud)sudo ip link set wlan0 down sudo ip addr flush dev wlan0 sudo ip link set wlan0 up
现在您指定要连接到特定 AP:
Run Code Online (Sandbox Code Playgroud)sudo iwconfig wlan0 essid MySSID_NAME ap f8:1a:67:aa:7f:b9
当然ap在您刚刚确定的BSSID之前。现在你需要启动wpa_supplicant,
Run Code Online (Sandbox Code Playgroud)sudo wpa_supplicant -Dnl80211 -i wlan0 -B -c FILE_with_WPA_Secrets
(如果您不知道如何使用您的 WPA 凭据设置文件,例如,您可以在此处查找;请小心,它说network= {,它应该是network={没有空格)。最后,
Run Code Online (Sandbox Code Playgroud)sudo dhclient -v wlan0
(-v标志不适用于所有 Linux 发行版,我喜欢它,因为我可以监控正在发生的事情)。
编辑
上述说明适用于具有 WPA 安全性的网络。对于 WEP 安全性,将 wpa_supplicant 命令替换为:
Run Code Online (Sandbox Code Playgroud)sudo iwconfig wlan0 key s:Your_WEP_password
请记住,密码前的两个字符s:是必需的。在这之后,再次
Run Code Online (Sandbox Code Playgroud)sudo dhclient -v wlan0
希望这可以帮助。
归档时间: |
|
查看次数: |
33828 次 |
最近记录: |