hostapd 移植和使用[通俗易懂]

hostapd 移植和使用[通俗易懂]

发布于 2022-08-31 15:45:07

1.8K0

举报

大家好,又见面了,我是你们的朋友全栈君。

一、hostapd简介

hostapd 是一个用户态用于AP和认证服务器的守护进程。

它实现了IEEE 802.11相关的接入管理,IEEE 802.1X/WPA/WPA2/EAP 认证, RADIUS客户端,EAP服务器和RADIUS 认证服务器。

二、hostapd移植

1.打开hostap官网,下载hostapd-2.7.tar.gz源码包;

2.解压源码包:

$ tar xvzf hostapd-2.7.tar.gz

$ cd hostapd-2.7/hostapd

3.配置工程

(1)拷贝默认配置:

$ cp defconfig .config

(2) 打开.config,需要修改的配置如下:

CONFIG_DRIVER_WEXT=y //使用WEXT通过ioctl和驱动通信,典型工具ifconfig等

CONFIG_DRIVER_NL80211=y //使用NL80211通过一个特殊的socket和驱动打通信,典型工具包 括 iwconfig等,使能该选项时应指定libnl库,移植libnl参考libnl3.2 移植

CFLAGS += -I../../libnl-3.2.25/install/include/ // CONFIG_DRIVER_NL80211=y时。需指定libnl头文件

LIBS += -L../../libnl-3.2.25/install/include/ // CONFIG_DRIVER_NL80211=y时,需指定libnl库

CONFIG_LIBNL32=y // CONFIG_DRIVER_NL80211=y时,需指定libnl库版本

CC = arm-linux-gcc // 配置编译器

CONFIG_TLS = internal // 配置TLS实现,可选有openssl、internal,选择penssl时需指定openssl库,移植步 骤请参考Openssl 移植,由于开发板flash空间较小,出于节省空间的考虑,选择 internal

CONFIG_INTERNAL_LIBTOMMATH = y //CONFIG_TLS = internal时,需使能

CFLAGS += -I../../openssl-1.1.1/install/include/ // CONFIG_TLS = openssl时。需指定openssl头文件

LIBS += -L../../lopenssl-1.1.1/install/include/ // CONFIG_TLS = openssl时,需指定openssl库

可以根据自己的需求选择配置 CONFIG_DRIVER_WEXT 、CONFIG_DRIVER_NL80211 、CONFIG_TLS。

(3)执行 make -j8 编译hostapd。

(4)将可执行程序hostapd、hostapd_cli拷贝到开发板文件系统/usr/bin/目录下,使用chmod命令修改可执行权限:

$ chmod 777 hostapd、hostapd_cli

将hostapd.conf文件拷贝到开发板文件系统/etc/目录下。

如果使能配置选项CONFIG_DRIVER_NL80211=y,需将libnl-3.so.200.20.0和libnl-genl-3.so.200.20.0拷贝到开发 板文件系统/usr/lib/目录下,并在/usr/lib/执行以下命令创建软连接:

$ ln -s libnl-3.so.200.20.0 libnl-3.so.200

$ ln -s libnl-genl-3.so.200.20.0 libnl-genl-3.so.200

如果配置选项CONFIG_TLS = openssl,需将libcrypto.so.1.1和libssl.so.1.1拷贝到开发板文件系统/usr/lib/目录下。

三、配置hostapd

打开/etc/hostapd.conf文件,修改如下选项:

interface=wlan0 //设置网卡

#bridge=br0 //如果需要桥接到其他网卡,使能该项

ssid=testap //设置热点

channel=6 //设置wifi通道

wpa=2

wpa_passphrase=12345678 //设置热点密码

eap_server=1 //使能eap server

ieee80211n=1 //使能ieee80211n

ht_capab=[SHORT-GI-20][SHORT-GI-40][HT40+]

wpa_key_mgmt=WPA-PSK WPA-EAP

wpa_pairwise=CCMP TKIP

max_num_sta=8 //最大连接数

wpa_group_rekey=86400

四、hostapd使用

1.打开wlan0

$ ifconfig wlan0 up

2.设置wlan0 IP地址

$ ifconfig wlan0 192.168.0.1

  1. 启动hostapd

$ hostapd /etc/hostapd.conf -B

  1. 启动dhcpd

$dhcpd

到此,hostapd设置成功,可以使用手机连接开发板了。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/143220.html原文链接:https://javaforall.cn

相关推荐
~Yogi3 分钟前
新版Tomcat MySQL IDEA 安装配置过程遇到的问题
mysql·tomcat·intellij-idea
LUCIAZZZ7 分钟前
简单说一下什么是RPC
java·网络·网络协议·计算机网络·spring cloud·rpc
千墨13 分钟前
VMware安装Centos 9虚拟机+设置共享文件夹+远程登录
linux·运维·centos
一勺菠萝丶28 分钟前
计算机专业知识【深入理解子网中的特殊地址:为何 192.168.0.1 和 192.168.0.255 不能随意分配】
网络·智能路由器
s_fox_36 分钟前
Nginx Embedded Variables 嵌入式变量解析(4)
java·网络·nginx
ChinaRainbowSea1 小时前
1. Linux下 MySQL 的详细安装与使用
linux·数据库·sql·mysql·adb
etcix1 小时前
实现一个简单的拉取网络todo app
网络
网络安全(华哥)2 小时前
网络安全服务实施流程管理 网络安全服务体系
运维·服务器·网络
致奋斗的我们2 小时前
Nginx反向代理及负载均衡
linux·运维·mysql·nginx·负载均衡·shell·openeluer
百锦再2 小时前
在Linux上创建一个Docker容器并在其中执行Python脚本
linux·python·docker