实现WiFi AP模式(二):hostapd和udhcpd的使用与配置
前言
hostapd是一个用于实现无线局域网(WLAN)访问点(AP)功能的软件,它是一个开源的Linux守护进程。hostapd可以将支持无线网卡的计算机转变为一个功能强大的无线AP,允许其他设备连接并访问无线网络
udhcpd是一个轻量级的DHCP服务器软件,用于为局域网中的设备提供IP地址和其他网络配置信息
1、hostapd的启动
1.1、启动指令
hostapd /路径/hostapd.conf -B
1.2、参数说明
-h 显示帮助信息
-d 显示更多的debug信息 (-dd 获取更多)
-B 将hostapd程序运行在后台
-g 全局控制接口路径,这个工hostapd_cli使用,一般为/var/run/hostapd
-G 控制接口组
-P PID 文件
-K 调试信息中包含关键数据
-t 调试信息中包含时间戳
-v 显示hostapd的版本
2、udhcpd的启动
2.1、功能说明
udhcpd是工作在server端的DHCP服务,udhcpc则是工作在client端的DHCP服务
DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)。是一个局域网的网络协议,使用UDP协议工作。
2.2、配置文件
官方配置文件
配置示例
start 192.168.50.2
end 192.168.50.254
interface wlan0
max_leases 234
opt router 192.168.50.1
注意:interface需要根据实际使用的网络接口设置
2.3、启动指令
udhcpd -fS /路径/udhcpd.conf &
2.4、参数说明
-h 显示帮助信息
-f 以前台模式运行udhcpd,输出日志信息到标准输出
-b <IP地址>:指定udhcpd绑定的IP地址
-i <网络接口>:指定udhcpd监听的网络接口
-p <端口号>:指定udhcpd监听的端口号
-S 启用DHCP服务器选项
-O <选项代码>:<选项值>:添加自定义的DHCP选项
-r <租约时间>:指定DHCP租约的时间,单位为秒
-R <租约时间>:指定DHCP租约的时间,单位为分钟
-s <脚本文件>:指定udhcpd启动和停止时执行的脚本文件
-C <配置文件>:指定udhcpd的配置文件
3、起AP示例
- 为网络接口分配IP地址,设置为网关地址
ifconfig wlan0 192.168.50.1
- 启动udhcpd程序
udhcpd -fS /路径/udhcpd.conf &
- 起hostapd程序
hostapd /路径/hostapd.conf -B
4、hostapd.conf配置示例
4.1、官方配置
官方配置文件:最正宗的配置,里面还有相关配置解释
4.2、b模式:2.4G 20MHz
# 接口和驱动程序设置
interface=wlan0
driver=nl80211
ctrl_interface=/var/run/hostapd
# 基本网络设置
ssid=TestAP
hw_mode=b
channel=11
# WPA身份验证设置
wpa=2
wpa_key_mgmt=WPA-PSK
wpa_passphrase=12345678
# 加密算法设置
wpa_pairwise=CCMP
rsn_pairwise=CCMP
4.3、g模式:2.4G 20MHz
# 接口和驱动程序设置
interface=wlan0
driver=nl80211
ctrl_interface=/var/run/hostapd
# 基本网络设置
ssid=TestAP
hw_mode=g
channel=11
# WPA身份验证设置
wpa=2
wpa_key_mgmt=WPA-PSK
wpa_passphrase=12345678
# 加密算法设置
wpa_pairwise=CCMP
rsn_pairwise=CCMP
4.4、a模式:5G 20MHz
# 接口和驱动程序设置
interface=wlan0
driver=nl80211
ctrl_interface=/var/run/hostapd
# 基本网络设置
ssid=TestAP
hw_mode=a
channel=36
# WPA身份验证设置
wpa=2
wpa_key_mgmt=WPA-PSK
wpa_passphrase=12345678
# 加密算法设置
wpa_pairwise=CCMP
rsn_pairwise=CCMP
4.5、n模式
2.4G 20MHz
# 接口和驱动程序设置
interface=wlan0
driver=nl80211
ctrl_interface=/var/run/hostapd
# 基本网络设置
ssid=TestAP
hw_mode=g
channel=6
# WPA身份验证设置
wpa=2
wpa_key_mgmt=WPA-PSK
wpa_passphrase=12345678
# HT(802.11n)
ieee80211n=1
ht_capab=[SHORT-GI-20]
# 加密算法设置
wpa_pairwise=CCMP
rsn_pairwise=CCMP
2.4G 40MHz
# 接口和驱动程序设置
interface=wlan0
driver=nl80211
ctrl_interface=/var/run/hostapd
# 基本网络设置
ssid=TestAP
hw_mode=g
channel=6
# WPA身份验证设置
wpa=2
wpa_key_mgmt=WPA-PSK
wpa_passphrase=12345678
# HT(802.11n)
ieee80211n=1
ht_capab=[SHORT-GI-20][HT40+][SHORT-GI-40]
# 加密算法设置
wpa_pairwise=CCMP
rsn_pairwise=CCMP
5G 20MHz
# 接口和驱动程序设置
interface=wlan0
driver=nl80211
ctrl_interface=/var/run/hostapd
# 基本网络设置
ssid=TestAP
hw_mode=a
channel=52
# WPA身份验证设置
wpa=2
wpa_key_mgmt=WPA-PSK
wpa_passphrase=12345678
# HT(802.11n)
ieee80211n=1
ht_capab=[SHORT-GI-20]
# 加密算法设置
wpa_pairwise=CCMP
rsn_pairwise=CCMP
5G 40MHz
# 接口和驱动程序设置
interface=wlan0
driver=nl80211
ctrl_interface=/var/run/hostapd
# 基本网络设置
ssid=TestAP
hw_mode=g
channel=52
# WPA身份验证设置
wpa=2
wpa_key_mgmt=WPA-PSK
wpa_passphrase=12345678
# HT(802.11n)
ieee80211n=1
ht_capab=[SHORT-GI-20][HT40+][SHORT-GI-40]
# 加密算法设置
wpa_pairwise=CCMP
rsn_pairwise=CCMP
4.6、ac模式
5G 20MHz
# 接口和驱动程序设置
interface=wlan0
driver=nl80211
ctrl_interface=/var/run/hostapd
# 基本网络设置
ssid=TestAP
hw_mode=a
channel=52
# WPA身份验证设置
wpa=2
wpa_key_mgmt=WPA-PSK
wpa_passphrase=12345678
# HT(802.11n)
ieee80211n=1
ht_capab=[SHORT-GI-20][HT40+][SHORT-GI-40]
# VHT(802.11ac)
ieee80211ac=1
vht_oper_chwidth=1
vht_oper_centr_freq_seg0_idx=58
vht_capab=[SHORT-GI-20]
# 加密算法设置
wpa_pairwise=CCMP
rsn_pairwise=CCMP
5G 40MHz
# 接口和驱动程序设置
interface=wlan0
driver=nl80211
ctrl_interface=/var/run/hostapd
# 基本网络设置
ssid=TestAP
hw_mode=a
channel=52
# WPA身份验证设置
wpa=2
wpa_key_mgmt=WPA-PSK
wpa_passphrase=12345678
# HT(802.11n)
ieee80211n=1
ht_capab=[SHORT-GI-20][HT40+][SHORT-GI-40]
# VHT(802.11ac)
ieee80211ac=1
vht_oper_chwidth=1
vht_oper_centr_freq_seg0_idx=58
vht_capab=[SHORT-GI-20][SHORT-GI-40][VHT40+]
# 加密算法设置
wpa_pairwise=CCMP
rsn_pairwise=CCMP
5G 80MHz
# 接口和驱动程序设置
interface=wlan0
driver=nl80211
ctrl_interface=/var/run/hostapd
# 基本网络设置
ssid=TestAP
hw_mode=a
channel=52
# WPA身份验证设置
wpa=2
wpa_key_mgmt=WPA-PSK
wpa_passphrase=12345678
# HT(802.11n)
ieee80211n=1
ht_capab=[SHORT-GI-20][HT40+][SHORT-GI-40]
# VHT(802.11ac)
ieee80211ac=1
vht_oper_chwidth=1
vht_oper_centr_freq_seg0_idx=58
vht_capab=[SHORT-GI-20][SHORT-GI-40][VHT40+][SHORT-GI-80][MAX-A-MPDU-LEN-EXP7]
# 加密算法设置
wpa_pairwise=CCMP
rsn_pairwise=CCMP
- 注意:配置80M带宽需要把
channel
和vht_oper_centr_freq_seg0_idx
配置好
如图,设置channel
为52时,需要vht_oper_centr_freq_seg0_idx
设置为58,就可以计算出80M带宽时的中心频率为多少
4.7、ax模式
2.4G 20MHz
# 接口和驱动程序设置
interface=wlan0
driver=nl80211
ctrl_interface=/var/run/hostapd
# 基本网络设置
ssid=TestAP
hw_mode=g
channel=6
# WPA身份验证设置
wpa=2
wpa_key_mgmt=WPA-PSK
wpa_passphrase=12345678
# HT(802.11n)
ieee80211n=1
ht_capab=[SHORT-GI-20]
# HE(802.11ax)
ieee80211ax=1
# 加密算法设置
wpa_pairwise=CCMP
rsn_pairwise=CCMP
2.4G 40MHz
# 接口和驱动程序设置
interface=wlan0
driver=nl80211
ctrl_interface=/var/run/hostapd
# 基本网络设置
ssid=TestAP
hw_mode=g
channel=6
# WPA身份验证设置
wpa=2
wpa_key_mgmt=WPA-PSK
wpa_passphrase=12345678
# HT(802.11n)
ieee80211n=1
ht_capab=[SHORT-GI-20][HT40+][SHORT-GI-40]
# HE(802.11ax)
ieee80211ax=1
# 加密算法设置
wpa_pairwise=CCMP
rsn_pairwise=CCMP
5G 20MHz
# 接口和驱动程序设置
interface=wlan0
driver=nl80211
ctrl_interface=/var/run/hostapd
# 基本网络设置
ssid=TestAP
hw_mode=a
channel=52
# WPA身份验证设置
wpa=2
wpa_key_mgmt=WPA-PSK
wpa_passphrase=12345678
# HT(802.11n)
ieee80211n=1
ht_capab=[SHORT-GI-20]
# HE(802.11ax)
ieee80211ax=1
# 加密算法设置
wpa_pairwise=CCMP
rsn_pairwise=CCMP
5G 40MHz
# 接口和驱动程序设置
interface=wlan0
driver=nl80211
ctrl_interface=/var/run/hostapd
# 基本网络设置
ssid=TestAP
hw_mode=a
channel=52
# WPA身份验证设置
wpa=2
wpa_key_mgmt=WPA-PSK
wpa_passphrase=12345678
# HT(802.11n)
ieee80211n=1
ht_capab=[SHORT-GI-20][HT40+][SHORT-GI-40]
# HE(802.11ax)
ieee80211ax=1
# 加密算法设置
wpa_pairwise=CCMP
rsn_pairwise=CCMP
5G 80MHz
# 接口和驱动程序设置
interface=wlan0
driver=nl80211
ctrl_interface=/var/run/hostapd
# 基本网络设置
ssid=TestAP
hw_mode=a
channel=52
# WPA身份验证设置
wpa=2
wpa_key_mgmt=WPA-PSK
wpa_passphrase=12345678
# HT(802.11n)
ieee80211n=1
ht_capab=[SHORT-GI-20][HT40+][SHORT-GI-40]
# VHT(802.11ac)
ieee80211ac=1
vht_oper_chwidth=1
vht_oper_centr_freq_seg0_idx=58
vht_capab=[SHORT-GI-20][SHORT-GI-40][VHT40+][SHORT-GI-80][MAX-A-MPDU-LEN-EXP7]
# HE(802.11ax)
ieee80211ax=1
# 加密算法设置
wpa_pairwise=CCMP
rsn_pairwise=CCMP