更好的干净纯洁阅读体检请访问个人网站:​​Linux系统中使用linux-wifi-hotspot工具开启热点​​。

本文描述如何在Linux系统中使用linux-wifi-hotspot工具开启网络热点。

一、需求

WIFI设备需要支持AP模式,使用命令查看:

iw list

在接口列表中找到有AP模式即可:

Supported interface modes:
* IBSS
* managed
* AP
* P2P-client
* P2P-GO
* P2P-device

二、配置原理

设备接入点由两个部分组成:

  • 设置WIFI链路层:无线客户端可以和计算机的软件接入点关联并交换IP数据包
  • 设置本机网络:在自己的网络中和无线客户端之间中继IP数据包

1. WIFI链路层

实际的WIFI链路是通过hostapd软件包建立的,具有WPA2支持。

2. 本机网络配置

有两种方法实现:

  • 网桥:无线客户端将使用相同的网络接口和相同的子网。
  • NAT:通过IP转发和DHCP服务,无线客户端将使用专用子网,类似于连接到互联网的普通Wi-Fi路由器。

三、工具

linux-wifi-hostapd软件包提供了脚本,可以创建用于互联网共享的网桥或NAT接入点,它结合了hostapd、dnsmasq、iptables,以实现接入点的良好运行,提供命令行工具和GUI工具。

工具开源仓库:​​linux-wifi-hotspot​​。

1. 安装

1.1. 软件包安装

  • Ubuntu
sudo add-apt-repository ppa:lakinduakash/lwh
sudo apt install
  • Arch Linux
yay -S linux-wifi-hotspot

1.2. 源码编译安装

  • RK3399开发板(rootfs based ubuntu)

(1)安装必须的包

sudo apt install -y libgtk-3-dev build-essential gcc g++ pkg-config make

(2)拉取源码(到开发板)

git

(3)编译(在开发板上)

cd linux-wifi-hotspot
make

(4)安装

sudo make install

2. 命令行工具的使用

创建一个NAT虚拟网络的方法。

(1)修改配置文件

sudo vim

配置文件内容如下:

CHANNEL=default
GATEWAY=192.168.12.1
WPA_VERSION=2
ETC_HOSTS=0
DHCP_DNS=gateway
NO_DNS=0
NO_DNSMASQ=0
HIDDEN=0
MAC_FILTER=0
MAC_FILTER_ACCEPT=/etc/hostapd/hostapd.accept
ISOLATE_CLIENTS=0
SHARE_METHOD=nat
IEEE80211N=0
IEEE80211AC=0
HT_CAPAB=[HT40+]
VHT_CAPAB=
DRIVER=nl80211
NO_VIRT=0
COUNTRY=
FREQ_BAND=2.4
NEW_MACADDR=
DAEMONIZE=0
NO_HAVEGED=0
WIFI_IFACE=wlan0
INTERNET_IFACE=lan1
SSID=Mculover666
PASSPHRASE=12345678
USE_PSK=0

其中比较重要的配置:

  • FREQ_BAND:热点频段
  • WIFI_IFACE:无线网卡的设备节点
  • INTERNET_IFACE:转发网卡的设备节点
  • SSID:热点名称
  • PASSPHRASE:热点密码

(2)开启热点

sudo

开启日志如下:

Config dir: /tmp/create_ap.wlan0.conf.DPOzXpgH
PID: 2481
Network Manager found, set ap0 as unmanaged device... DONE
Creating a virtual WiFi interface... ap0 created.
Sharing Internet using method: nat
hostapd command-line interface: hostapd_cli -p /tmp/create_ap.wlan0.conf.DPOzXpgH/hostapd_ctrl
Configuration file: /tmp/create_ap.wlan0.conf.DPOzXpgH/hostapd.conf
Using interface ap0 with hwaddr 72:f7:54:86:d1:11 and ssid "Mculover666"
ap0: interface state UNINITIALIZED->ENABLED
ap0: AP-ENABLED

(3)开机自启

systemctl enable

3. 图形界面工具的使用

wihotspot

Linux系统中使用linux-wifi-hotspot工具开启网络热点_linux

4. 测试结果

Linux系统中使用linux-wifi-hotspot工具开启网络热点_客户端_02

参考链接