更改hostapd BSSID

时间:2018-08-14 08:16:18

标签: wlan hotspot access-point hostapd bssid

我们有几台设备使用class UserView: UIStackView { var name: String? var image: UIImage? // OR var imageName: String? override init(frame: CGRect) { super.init(frame: frame) setup() } required init(coder aDecoder: NSCoder) { super.init(coder: aDecoder) setup() } private func setup() { axis = .vertical let imageView = UIImageView(image: image) let nameLabel = UILabel() nameLabel.text = name addArrangedSubview(imageView) addArrangedSubview(nameLabel) } } wlan1创建访问点。问题在于,所有这些设备都为hostapd配备了相同的MAC地址,这会转换所有具有相同BSSID的设备,因此,当我们有多个设备在同一范围内时,我们将无法连接至它们中的任何一个。我们尝试了几种更改BSSID的方法,它们都对wlan1输出中显示的HWaddr产生了影响,但是当我们从客户端扫描网络时,看不到进行此更改,但改为使用所有设备的原始BSSID。

我们可以看到此ifconfig接口的MAC地址存储在wlan1中,该文件是一个只读文件,内容为:/sys/class/net/wlan1/address,这是我们的BSSID查看所有设备。

然后的问题是,我们如何才能更改AP的BSSID,这样我们才能看到对客户端的影响,从而导致具有不同BSSID的不同网络,从而可以在它们都处于范围内时建立与不同设备的连接?

我们尝试更改BSSID的内容

使用hostapd配置文件

02:03:7f:d7:00:01

/etc/hostapd_wlan1.conf

使用ctrl_interface=/var/run/hostapd ctrl_interface_group=0 interface=wlan1 driver=nl80211 # WPA2-AES encryption bssid=DC:EC:BE:91:EA:F1 ssid=ap-wlan1-ccee auth_algs=1 wpa=2 wpa_key_mgmt=WPA-PSK wpa_pairwise=CCMP wpa_passphrase=password-wpa2aes # IEEE 802.11ac hw_mode=a channel=36 ieee80211ac=1 ieee80211n=1 /usr/sbin/hostapd /etc/hostapd_wlan1.conf一起运行

重启后的ifconfig输出

SysVinit

使用ip命令

wlan1   Link encap:Ethernet  HWaddr DC:EC:BE:91:EA:F1
        inet addr:192.168.46.30  Bcast:192.168.46.255  Mask:255.255.255.0
        inet6 addr: fe80::deec:beff:fe91:eaf1%lo/64 Scope:Link
        UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
        RX packets:1016 errors:0 dropped:0 overruns:0 frame:0
        TX packets:977 errors:0 dropped:7 overruns:0 carrier:0
        collisions:0 txqueuelen:1000
        RX bytes:134304 (131.1 KiB)  TX bytes:135467 (132.2 KiB)

ifconfig输出

ip link set wlan1 down
ip link set dev wlan1 address DC:EC:BE:91:EA:F1
ip link set wlan1 up

任何情况下的WirelessNetView结果

enter image description here

1 个答案:

答案 0 :(得分:0)

更改.conf是没有用的,因为每次重新启动时,新的conf都会替换它。

/lib/netifd/wireless/mac80211.sh 

mac80211_prepare_vif()

尝试更改 $ macaddr ,这是最终的bssid。

希望这会有所帮助。