Ubuntu系统下创建虚拟AP和STA扫描/关联/认证/ping
创始人
2024-02-19 16:09:22
0次

首先 加载mac80211.ko, 参考: https://blog.csdn.net/fantasy_wxe/article/details/128057949

然后执行如下操作,创建 AP&STA 并进行扫描、关联、认证、ping包操作

编译hostapd

wget https://w1.fi/releases/hostapd-2.10.tar.gz
tar zxvf hostapd-2.10.tar.gz
cd hostapd-2.10/hostapd/
cp defconfig .config
make

编译wpa_supplicant

wget https://w1.fi/releases/wpa_supplicant-2.10.tar.gz
tar zxvf wpa_supplicant-2.10.tar.gz
cd wpa_supplicant-2.10/wpa_supplicant
cp defconfig .config
make

编译dhcp

wget https://downloads.isc.org/isc/dhcp/4.4.3/dhcp-4.4.3.tar.gz
cd dhcp-4.4.3
./configure
make

启动AP

创建hostapd.conf配置文件,文件内容如下

# hostapd.confinterface=wlan0
driver=nl80211
country_code=CN
ssid=wifi_simu_test
channel=6
hw_mode=b
wpa=3
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP CCMP
wpa_passphrase=helloworld
auth_algs=3
beacon_int=100

创建dhcpd.conf配置文件,文件内容如下

#dhcpd.conf
subnet 192.168.100.0 netmask 255.255.255.0 {option routers 192.168.100.1 ;option domain-name-servers 192.168.100.1 ;range 192.168.100.80 192.168.100.150;range 192.168.100.180 192.168.100.220;default-lease-time 600 ;max-lease-time 7200 ;# we want this server to be the only DHCP server in this networkauthoritative ;
}

在AP侧Terminal中执行如下命令

w512@w512-pc:~/wlan_test$ su root
root@w512-pc:/home/w512/wlan_test# ip netns add wifi_ap
root@w512-pc:/home/w512/wlan_test# ip netns list
wifi_ap
root@w512-pc:/home/w512/wlan_test# ip netns exec wifi_ap bash
root@w512-pc:/home/w512/wlan_test# echo $BASHPID
2280

注意: 2280在STA侧会用到

新建一个Terminal, 作为STA侧

su rootiw phy phy0 set netns 2280

在AP侧Terminal中输入如下命令

ip addr add 192.168.100.1/24 dev wlan0hostapd-2.10/hostapd/hostapd hostapd.conf &mkdir -p /var/db
touch /var/db/dhcpd.leasesdhcp-4.4.3/server/dhcpd -4 -f -d -cf dhcpd.conf -lf /var/db/dhcpd.leases wlan0&

通过ip a查看wlan0信息

root@w512-pc:/home/w512/wlan_test# ip a
1: lo:  mtu 65536 qdisc noop state DOWN group default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
3: wlan0:  mtu 1500 qdisc mq state UP group default qlen 1000link/ether 02:00:00:00:00:00 brd ff:ff:ff:ff:ff:ffinet 192.168.100.1/24 scope global wlan0valid_lft forever preferred_lft foreverinet6 fe80::ff:fe00:0/64 scope link valid_lft forever preferred_lft forever

STA侧启动

创建wpa_supplicant.conf文件,文件内容如下:

#wpa_supplicant.conf
network={ssid="wifi_simu_test"key_mgmt=WPA-PSKpsk="helloworld"
}

在STA侧Terminal中输入如下命令

wpa_supplicant-2.10/wpa_supplicant/wpa_supplicant -B -i wlan1 -c wpa_supplicant.confdhcp-4.4.3/client/dhclient -i wlan1

通过ip a查看wlan1信息

root@w512-pc:/home/w512/wlan_test# ip a
1: lo:  mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft foreverinet6 ::1/128 scope host valid_lft forever preferred_lft forever
2: enp0s3:  mtu 1500 qdisc pfifo_fast state UP group default qlen 1000link/ether 08:00:27:9d:d4:e9 brd ff:ff:ff:ff:ff:ffinet 10.0.2.15/24 brd 10.0.2.255 scope global dynamic noprefixroute enp0s3valid_lft 84831sec preferred_lft 84831secinet6 fe80::76da:36d3:6f9f:1ed7/64 scope link noprefixroute valid_lft forever preferred_lft forever
4: wlan1:  mtu 1500 qdisc mq state UP group default qlen 1000link/ether 02:00:00:00:01:00 brd ff:ff:ff:ff:ff:ffinet 192.168.100.80/24 brd 192.168.100.255 scope global dynamic wlan1valid_lft 484sec preferred_lft 484sec
5: hwsim0:  mtu 1500 qdisc noop state DOWN group default qlen 1000link/ieee802.11/radiotap 12:00:00:00:00:00 brd ff:ff:ff:ff:ff:ff

可见, STA获取到了IP地址为192.168.100.80

从AP侧pingSTA侧

root@w512-pc:/home/w512/wlan_test# ping 192.168.100.80
PING 192.168.100.80 (192.168.100.80) 56(84) bytes of data.
64 bytes from 192.168.100.80: icmp_seq=1 ttl=64 time=0.052 ms
64 bytes from 192.168.100.80: icmp_seq=2 ttl=64 time=0.076 ms
64 bytes from 192.168.100.80: icmp_seq=3 ttl=64 time=0.084 ms
64 bytes from 192.168.100.80: icmp_seq=4 ttl=64 time=0.086 ms
64 bytes from 192.168.100.80: icmp_seq=5 ttl=64 time=0.067 ms

相关内容

热门资讯

前端-session、jwt 目录:   (1)session (2&#x...
linux入门---制作进度条 了解缓冲区 我们首先来看看下面的操作: 我们首先创建了一个文件并在这个文件里面添加了...
关于测试,我发现了哪些新大陆 关于测试 平常也只是听说过一些关于测试的术语,但并没有使用过测试工具。偶然看到编程老师...
前缀和与对数器与二分法 1. 前缀和 假设有一个数组,我们想大量频繁的去访问L到R这个区间的和,...
nodejs:本地安装nvm实... 一、背景-使用不同版本node的原因 vue3+ts、nuxt3版本,node...
JAVA集合知识整理 Java集合知识整理 HashMap相关 HashMap的底层数据结构:jdk1.8之...
无刷直流电机介绍及单片机控制实... 无刷直流电机介绍及单片机控制实例前言基本概念优势与劣势使用寿命基本结构使用单片机控制实例电子调速器&...
fwdiary(2) dp2 1.传纸条  AcWing 275. 传纸条 - AcWing 走两条路,走一条最大的...
常用的DOS命令 常用的DOS命令 DOS(Disk Operating System,磁...
<C++> 类和对象(下) 1.const成员函数将const修饰的“成员函数”称之为const成员函数,cons...