配置无线网卡AP模式为wifi热点

news2024/11/22 23:07:19

1、判断网卡是否支持AP

不管是自带无线网卡、还是外接的usb无线网卡,要先配置为AP热点模式。需要看检查是否支持AP模式。

例如,这里插入 rtl8811c 的双频usb无线网卡,iwconfig查看网卡信息

nvidia@nvidia-desktop:~$ iwconfig
wlan0     unassociated  Nickname:"<WIFI@REALTEK>"
          Mode:Managed  Frequency=2.412 GHz  Access Point: Not-Associated
          Sensitivity:0/0
          Retry:off   RTS thr:off   Fragment thr:off
          Power Management:off
          Link Quality:0  Signal level:0  Noise level:0
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0

如果插入网卡没有对应信息,可能需要安装驱动。

之后,我们使用命令 iw list 查看 "Supported interface modes:"支持的列表中是否有AP,如有则说明支持配置为AP热点。

nvidia@nvidia-desktop:~$ iw list
Wiphy phy1
        max # scan SSIDs: 9
        max scan IEs length: 2304 bytes
        max # sched scan SSIDs: 0
        max # match sets: 0
        max # scan plans: 1
        max scan plan interval: -1
        max scan plan iterations: 0
        Retry short limit: 7
        Retry long limit: 4
        Coverage class: 0 (up to 0m)
        Supported Ciphers:
                * WEP40 (00-0f-ac:1)
                * WEP104 (00-0f-ac:5)
                * TKIP (00-0f-ac:2)
                * CCMP-128 (00-0f-ac:4)
                * CMAC (00-0f-ac:6)
        Available Antennas: TX 0 RX 0
        Supported interface modes:
                 * IBSS
                 * managed
                 * AP
                 * P2P-client
                 * P2P-GO
                 * P2P-device

2、配置无线热点模式

利用hostapd和dhcpd在Ubuntu系统上建立无线热点。

2.1、安装 hostapd 和 dhcpd

安装sudo apt-get install hostapd

开机不需要启动这两个服务,建议关掉:

sudo update-rc.d -f hostapd remove

sudo apt-get install isc-dhcp-server ,修改如下两个文件(若有),注释掉 start on 行

sudo vim /etc/init/isc-dhcp-server.conf
sudo vim /etc/init/isc-dhcp-server6.conf

2.2、配置热点

2.2.1、修改/etc/hostapd/hostapd.conf

若没有改文件,直接添加一个即可。用于配置ap的接口,驱动,名称,密码等,如下:

# 选择的网口名称,我这里是wlan0。具体可以ifcofnig看下当前设备下偶那些网口
interface=wlan0
# 线驱动,一般有两种:wext/nl80211,wext版本较旧目前一般使用nl80211
driver=nl80211
# AP的名称,类似于我们的路由器名称
ssid=magicsky_uav
# 802.11g,一般三个模式: a,b,g。a->5GHZ,g->2.4GHZ
hw_mode=g
# wifi工作的信道,2.4GHZ(1~14)
channel=10
macaddr_acl=0
auth_algs=3
# 选择加密方式为WPA2,常用加解密方法是有WEP、WPA、WPA2、WPA3
wpa=2
# 密码
wpa_passphrase=12345678
# 加密方法和算法
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP CCMP
rsn_pairwise=TKIP CCMP

2.2.2、修改 /etc/dhcp/dhcpd.conf

在 /etc/dhcp/dhcpd.conf 末尾添加如下内容,用于配置ip地址池,路由网关,dns等。

subnet 192.168.9.0 netmask 255.255.255.0
{
  range 192.168.9.2 192.168.9.10;
  option routers 192.168.9.1;
  option domain-name-servers 192.168.9.1,114.114.114.114,8.8.8.8;
}

这里配置我们的无线网卡ap地址为 192.168.9.1, 连接该热点的可分配ip地址池为 192.168.9.(2~10),dns使用公用和网关ip。

2.3、服务配置

使用服务方式进行启动,省缺很多命令行的操作

2.3.1、服务启动脚本 ap-start.sh

#!/bin/bash
# 开启内核IP转发
bash -c "echo 1 > /proc/sys/net/ipv4/ip_forward"
# 开启防火墙NAT转发(如果本机使用eth0上网,则把ppp0改为eth0)
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
# 关闭NetworkManager对无线网卡的控制
#nmcli nm wifi off
nmcli device set wlan0 managed no

# 设置并启动无线网卡
ifconfig wlan0 192.168.9.1 netmask 255.255.255.0
# 解锁无线设备,可以用rfkill list查看解锁结果.
rfkill unblock wlan
# 睡眠6秒,待rfkill解锁生效
sleep 6s
# 启动dhcpd和hostapd,如果hostapd无法启动请查看日志hostapd.log,查看这两个进程ps -ef|egrep "dhcpd|hostapd"
nohup hostapd /etc/hostapd/hostapd.conf > /var/log/hostapd.log 2>&1 &
dhcpd wlan0 -pf /var/run/dhcpd.pid
ps -ef|head -n1 && ps -ef|egrep "dhcpd|hostapd"

ps -ef|egrep “dhcpd|hostapd” 应该有两个进程,

nvidia@nvidia-desktop:~$ ps -ef|head -n1 && ps -ef|egrep "dhcpd|hostapd"
UID        PID  PPID  C STIME TTY          TIME CMD
root      6367     1  0 10:55 ?        00:00:00 hostapd /etc/hostapd/hostapd.conf
root      6369     1  0 10:55 ?        00:00:00 dhcpd wlan0 -pf /var/run/dhcpd.pid
nvidia    9718  9601  0 13:36 pts/0    00:00:00 grep -E --color=auto dhcpd|hostapd

可能出现无dhcp进程,手动执行 dhcpd wlan0 -pf /var/run/dhcpd.pid 可能报错如下,给权限即可,在该脚本前增加一行 chmod 777 /var/lib/dhcp/dhcpd.leases

Internet Systems Consortium DHCP Server 4.3.5
Copyright 2004-2016 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/
Config file: /etc/dhcp/dhcpd.conf
Database file: /var/lib/dhcp/dhcpd.leases
PID file: /var/run/dhcpd.pid
Can't open /var/lib/dhcp/dhcpd.leases for append.

If you think you have received this message due to a bug rather
than a configuration issue please read the section on submitting
bugs on either our web page at www.isc.org or in the README file
before submitting a bug.  These pages explain the proper
process and the information we find helpful for debugging..

exiting.

2.3.1、服务关闭脚本 ap-stop.sh

#!/bin/bash
killall hostapd dhcpd
bash -c "echo 0 > /proc/sys/net/ipv4/ip_forward"
#ifconfig wlan0 down
nmcli device set wlan0 managed yes

2.3.2、服务文件

暂时不写了。 直接将 服务启动脚本放在 自启动脚本中 /etc/rc.local中吧。

若没有可以通过如下方式添加sudo ln -s /lib/systemd/system/rc.local.service /etc/systemd/system/,之后添加文件sudo touch /etc/rc.local,给权限sudo chmod +x /etc/rc.local。 若不能自启动则需要通过systemctl status rc.local.service 判断状态,若未启动则需要enable。

3、测试

安装好无线网卡,配置好后重启,检查网路情况,wlan0配置为 192.168.9.1 了。
在这里插入图片描述
手机上也能搜索到ap热点,连接后自动分配了ip。
在这里插入图片描述
若不能ping通,通过 route -n 检查是否有路由表

$ route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.3.254   0.0.0.0         UG    100    0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     1000   0        0 eth0
172.17.0.0      0.0.0.0         255.255.0.0     U     0      0        0 docker0
192.168.3.0     0.0.0.0         255.255.255.0   U     100    0        0 eth0
192.168.9.0     0.0.0.0         255.255.255.0   U     0      0        0 wlan0

最后一行 说明 指向 192.168.9.0 网段的数据均经过接口 wlan0。若非正常,可以通过手动执行 sudo route add -net 192.168.9.0/24 dev wlan0添加。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/754837.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数据结构——各种常见算法的实现方法和思路

文章目录 常见的排序算法类型复杂度和稳定性 1.冒泡排序2.直接插入排序3.希尔排序4.简单选择排序方法1&#xff1a;双向遍历选择排序方法2&#xff1a;单向遍历选择排序 5.归并排序方法1&#xff1a;递归方法2&#xff1a;非递归 6.快速排序方法1&#xff1a;随机取keyi方法2&a…

GD32F303 DAM串口接收

1.设置串口 串口配置比较常规&#xff0c;我只应用的空闲中断。 2.DMA设置 我设置的DMA是串口接收到数据后保存到数组里&#xff0c;数组满了以后会自动从头开始&#xff0c;并且会进入一次DMA中断。

Jenkins+Robot 接口自动化测试

目录 前言&#xff1a; 设计目标 项目说明 目录结构 配置 jenkins 1.安装插件 2.配置项目 前言&#xff1a; JenkinsRobot是一种常见的接口自动化测试方案&#xff0c;可以实现自动化的接口测试和持续集成。Jenkins是一个流行的持续集成工具&#xff0c;而Robot Framew…

代码随想录day3 | 203.移除链表元素 707.设计链表 206.反转链表

文章目录 一、移除链表元素的思想两种方法 二、203.移除链表元素三、707.设计链表四、206.反转链表 一、移除链表元素的思想 直接让前一个节点指向后一个节点即可 两种方法 第一种&#xff1a;直接删除 第二种&#xff1a;头删的时候&#xff0c;直接headhead->next 其实…

JAVA数据结构、集合操作及常用API_C++开发转JAVA

文章目录 零、引言一、JAVA数据结构基础1.0 数据类型概述1.1 基本数据类型 零、引言一、JAVA数据结构基础1.0 数据类型概述1.1 基本数据类型1.2 包装类1.3 基本类型和包装类型的区别1.4 包装类型的缓存机制1.5 equals() 和 1.6 自动装箱拆箱1.7 浮点数精度丢失1.8 数值、字符转…

windows下配置pytorch + yolov8+vscode,并自定义数据进行训练、摄像头实时预测

最近由于工程需要&#xff0c;研究学习了一下windows下如何配置pytorch和yolov8&#xff0c;并自己搜集数据进行训练和预测&#xff0c;预测使用usb摄像头进行实时预测。在此记录一下全过程 一、软件安装和配置 1. vscode安装 windows平台开发python&#xff0c;我采用vscod…

Python基础合集 练习26 (turtle库的使用)

turtle是标准库 import turtle as t 窗口最小单位为像素 t.steup(width,height,起始点,起始点) 不是必须的 t.setup(800, 400) 不设置后面的起始点默认在中间 空间坐标体系 绝对坐标 四个象限 t.goto(x,y) 让某个位置的海龟到达某个地方 t.goto(100,100) t.goto(10…

使用flask开启一个简单的应用

Flask是非常流行的 Python Web框架&#xff0c;它能如此流行&#xff0c;原因主要有如下几点: 。有非常齐全的官方文档,上手非常方便。 。有非常好的扩展机制和第三方扩展环境&#xff0c;.工作中常见的软件都会有对应的扩展。自己动手实现扩展也很容易。 。社区活跃度非常高。…

【可解释学习】PyG可解释学习模块torch_geometric.explain

PyG可解释学习模块torch_geometric.explain PhiloshopyExplainerExplanationsExplainer AlgorithmExplanation Metrics参考资料 torch_geometric.explain是PyTorch Geometric库中的一个模块&#xff0c;用于解释和可视化图神经网络&#xff08;GNN&#xff09;模型的预测结果。…

RestClient操作文档和DSL查询语法

一、 文档操作 1、新增文档 本案例中&#xff0c;hotel为索引库名&#xff0c;61083为文档idTestvoid testAddDocument() throws IOException {// 1.根据id查询酒店数据Hotel hotel hotelService.getById(61083L);// 2.转换为文档类型HotelDoc hotelDoc new HotelDoc(hotel…

【数据结构】二叉树——链式结构

目录 一、前置声明 二、二叉树的遍历 2.1 前序、中序以及后序遍历 2.2 层序遍历 三、节点个数以及高度 3.1 节点个数 3.2 叶子节点个数 3.3 第k层节点个数 3.4 二叉树的高度/深度 3.5 查找值为x的节点 四、二叉树的创建和销毁 4.1 构建二叉树 4.2 二叉树销毁 4.3 …

2023年7月14日,ArrayList底层

集合框架图&#xff1a; 集合和数组的区别 AarrayList ArrayList底层实现原理 ArrayList的底层实现是基于数组的动态扩容。 初始容量&#xff1a;当创建一个新的ArrayList对象时&#xff0c;它会分配一个初始容量为10的数组。这个初始容量可以根据需求进行调整。 //表示默认的…

在Python中优雅地用多进程:进程池 Pool、管道通信 Pipe、队列通信 Queue、共享内存 Manager Value

Python 自带的多进程库 multiprocessing 可实现多进程。我想用这些短例子示范如何优雅地用多线程。中文网络上&#xff0c;有些人只是翻译了旧版的 Python 官网的多进程文档。而我这篇文章会额外讲一讲下方加粗部分的内容。 创建进程 Process&#xff0c;fork 直接继承资源&am…

zigbee DL-20无线串口收发模块使用(双车通讯,电赛模块推荐)

前言 &#xff08;1&#xff09;通常有时候&#xff0c;我们可能会需要让两个MCU进行通讯。而zigbee是最适合两个MCU短距离通讯的模块。他使用极其简单&#xff0c;非常适合两款MCU之间的进行数据交互。 &#xff08;2&#xff09;在各类比赛中&#xff0c;经常出现需要两个MCU…

独立看门狗 IWDG

独立看门狗介绍 Q&#xff1a;什么是看门狗&#xff1f; A&#xff1a;可以理解为对于一只修勾的定时投喂&#xff0c;如果不给它吃东西就会狂叫&#xff0c;因此可以通过观察修勾的状态来判断喂它的人有没有正常工作。 在由单片机构成的微型计算机系统中&#xff0c;由于单…

【业务功能篇44】Mysql 海量数据查询优化,进行分区操作

业务场景&#xff1a;当前有个发料表&#xff0c;随着业务数据量增多&#xff0c;达到了几千万级别水平&#xff0c;查询的效率就越来越低了&#xff0c;针对当前的架构情况&#xff0c;我们进行了分区的设置&#xff0c;通过对时间字段&#xff0c;按年月&#xff0c;一个月作…

ios 启动页storyboard 使用记录

本文简单记录ios启动页storyboard 如何使用和注意事项。 xcode窗口简介 以xcode14为例&#xff0c;新建项目如下图&#xff0c;左边文件栏中的LaunchScreen.storyboard 为默认启动页布局。窗口中间部分是storyboard中的组件列表&#xff0c;右侧为预览&#xff0c;可以看到渲…

H3C-Cloud Lab-实验-DHCP实验

实验拓扑图&#xff1a; 实验需求&#xff1a; 1、按照图示为R1配置IP地址 2、配置R1为DHCP服务器&#xff0c;提供服务的地址池为192.168.1.0/24网段&#xff0c;网关为192.168.1.254&#xff0c;DNS服务器地址为202.103.24.68&#xff0c;202.103.0.117 3、192.168.1.10-1…

Camtasia Studio 2023 最新中文版,camtasiaStudio如何添加背景音乐

Camtasia2023的视频编辑工具可以帮助用户剪辑、裁剪、旋转、调整大小、添加特效、混合音频等。用户还可以使用Camtasia2023的字幕功能添加字幕和注释&#xff0c;以及使用其内置的特效和转场来提高视频的视觉效果。 Camtasia Studio 2023新功能介绍 的光标增强 由于光标在屏幕…

解决win10电脑无法访问局域网内其它共享文件问题

问题描述 今天需要上传文件到一个共享的局域网文件夹里&#xff0c;在我的电脑和浏览器访问//192.168.0.16//public都提升访问受限&#xff0c;开始以为是因为用户没授权&#xff0c;后来一般沟通后&#xff0c;发现其它电脑都能正常访问的&#xff0c;所以确定是自己电脑配置…