Krisz Asked: 2016-10-07 08:40:14 +0800 CST2016-10-07 08:40:14 +0800 CST 2016-10-07 08:40:14 +0800 CST 如何连接到特定的 BSSID? 772 有多个具有相同 SSID 的无线网络可用。我正在寻找一种连接到特定的解决方案(通过 BSSID)。 nmcli con up ifname ap看起来不错,但不幸的是,它不起作用。它只是连接回原始网络。 wireless 4 个回答 Voted Best Answer L. D. James 2016-10-07T09:19:29+08:002016-10-07T09:19:29+08:00 您可以使用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 ▂▄▆_ 连接到的 cliBSSID是: $ nmcli d wifi connect XX:XX:XX:XX:XX:XX 该命令将为您提供密码的 GUI 提示。您可以在命令行上输入密码(可能是安全问题): $ nmcli d wifi connect XX:XX:XX:XX:XX:XX password "mypassword" 后者不会提示输入密码,而是通过命令中的 BSSID 连接到指定的网络。 如果您之前已经连接到不同的网络,它将被命令中指定的网络替换。 该命令还将连接信息添加到该/etc/NetworkManager/system-connections位置。该位置受到保护。 可以通过创建名称的通知区域中的网络图标进行后续连接。 TheOdd 2016-10-07T08:55:42+08:002016-10-07T08:55:42+08:00 这个答案首先由MariusMatutiae 在 SuperUser 上发布。如果这对您有帮助,请考虑在那里投票。 您可以通过手动连接到 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 当然,ap在您刚刚确定的BSSID之前。现在你需要启动wpa_supplicant, sudo wpa_supplicant -Dnl80211 -i wlan0 -B -c FILE_with_WPA_Secrets (如果您不知道如何使用您的 WPA 凭据设置文件,例如,您可以在此处查找它;请注意,其中显示network= {,它应该是network={没有空格)。最后, sudo dhclient -v wlan0 (-v标志不适用于所有 Linux 发行版,我喜欢它,因为我可以监控正在发生的事情)。 编辑 上述说明适用于具有 WPA 安全性的网络。对于 WEP 安全性,将 wpa_supplicant 命令替换为: sudo iwconfig wlan0 key s:Your_WEP_password 请记住,密码前的两个字符s:是必需的。在这之后,再一次 sudo dhclient -v wlan0 希望这可以帮助。 heynnema 2016-10-07T15:04:40+08:002016-10-07T15:04:40+08:00 执行此操作的简单方法是使用网络管理器提供的 GUI。 转到顶部面板中的网络图标,选择Edit Connections,找到所需 SSID 的无线连接配置文件,打开 EDIT,然后转到 BSSID 字段,然后 1) 弹出所需的 BSSID,或 2) 手动输入所需的 BSSID . 有关显示其 BSSID 字段的示例无线连接,请参见下文。 Costa 2021-07-21T20:19:54+08:002021-07-21T20:19:54+08:00 这更像是 TheOdd 答案的扩展。由于 iwconfig 在许多发行版中已被弃用,因此 iw 可用于与特定接入点关联。iw 的工作方式与 iwconfig 略有不同,因为您按频率而不是 BSSID 指定特定的接入点。此外,我发现在从不同的接入点请求另一个租约之前,有必要释放 DHCP 租约。假设您已经连接到同一网络上的接入点,则无需使用 wpa_supplicant 重新提交身份验证。我正在使用 wlan0,但您的 WNIC 可能有不同的名称。下面是在具有相同 ESSID 的接入点之间切换的完整过程: 显示连接信息: iw wlan0 link 取下 wlan0: sudo ip link set wlan0 down 任何先前 IP 地址的免费 WNIC: sudo ip addr flush dev wlan0 删除旧的 dhcp 租约: sudo dhclient -r wlan0 备份 WNIC: sudo ip link set wlan0 up 扫描,注意频率: sudo iw dev wlan0 scan 使用 iw(不是 iwconfig)指定 ESSID 和频率以与特定访问点关联: sudo iw wlan0 connect <ESSID> <freq> 例如: sudo iw wlan connect fly-for-wifi 2462 运行 dhcp: sudo dhclient -v wlan0 查看: iw wlan0 link
您可以使用
Network Manager
的 cli 界面,nmcli
.我确定您已经拥有
BSSID
. 您可以通过以下方式检查和验证它:(是
$
命令提示符。命令后面的行是输出。)连接到的 cli
BSSID
是:该命令将为您提供密码的 GUI 提示。您可以在命令行上输入密码(可能是安全问题):
后者不会提示输入密码,而是通过命令中的 BSSID 连接到指定的网络。 如果您之前已经连接到不同的网络,它将被命令中指定的网络替换。
该命令还将连接信息添加到该
/etc/NetworkManager/system-connections
位置。该位置受到保护。可以通过创建名称的通知区域中的网络图标进行后续连接。
这个答案首先由MariusMatutiae 在 SuperUser 上发布。如果这对您有帮助,请考虑在那里投票。
希望这可以帮助。
执行此操作的简单方法是使用网络管理器提供的 GUI。
转到顶部面板中的网络图标,选择
Edit Connections
,找到所需 SSID 的无线连接配置文件,打开 EDIT,然后转到 BSSID 字段,然后 1) 弹出所需的 BSSID,或 2) 手动输入所需的 BSSID .有关显示其 BSSID 字段的示例无线连接,请参见下文。
这更像是 TheOdd 答案的扩展。由于 iwconfig 在许多发行版中已被弃用,因此 iw 可用于与特定接入点关联。iw 的工作方式与 iwconfig 略有不同,因为您按频率而不是 BSSID 指定特定的接入点。此外,我发现在从不同的接入点请求另一个租约之前,有必要释放 DHCP 租约。假设您已经连接到同一网络上的接入点,则无需使用 wpa_supplicant 重新提交身份验证。我正在使用 wlan0,但您的 WNIC 可能有不同的名称。下面是在具有相同 ESSID 的接入点之间切换的完整过程:
显示连接信息:
iw wlan0 link
取下 wlan0:
sudo ip link set wlan0 down
任何先前 IP 地址的免费 WNIC:
sudo ip addr flush dev wlan0
删除旧的 dhcp 租约:
sudo dhclient -r wlan0
备份 WNIC:
sudo ip link set wlan0 up
扫描,注意频率:
sudo iw dev wlan0 scan
使用 iw(不是 iwconfig)指定 ESSID 和频率以与特定访问点关联:
sudo iw wlan0 connect <ESSID> <freq>
例如:
sudo iw wlan connect fly-for-wifi 2462
运行 dhcp:
sudo dhclient -v wlan0
查看:
iw wlan0 link