ubuntu新建ap热点并分享

测试环境ubuntu16,只有一台笔记本电脑,不插网线,无线网卡既连wifi,又作为热点

1.方法1 直接手动新建ap热点

参考https://jingyan.baidu.com/article/ea24bc39b03fc6da62b331f0.html
https://jingyan.baidu.com/article/363872ecd8f35d6e4ba16f97.html
亲测,发现电脑如果没有连有线,按照以上步骤并不能生成wifi热点,请各位指点

2.方法2 使用create_ap工具新建热点

2.1安装依赖hostapd和create_ap

sudo apt install build-essential hostapd
git clone https://github.com/oblique/create_ap
cd create_ap
sudo make install 

2.2获取 wlan/wireless 名字并用create_ap启动热点

然后

ifconfig

获取网卡的名称每台电脑的网卡名称不一定相同,我这里的有线网卡名称是 enp1s0 无线网卡名称是 wlp7s0,具体名称需要自己进行获取
wlan:enp4s0
wireless: wlp3s0
其中e开头代表有有线,w开头代表无线
测试create_ap 是否工作正常

create_ap 基本命令格式:

create_ap wlan0 eth0 MyAccessPoint MyPassPhrase

本机指令

create_ap wlp3s0 enp4s0 note-ubuntu 12345678

新建成功打印ap0:AP-ENABLED如下图,并且能在别的电脑或手机上搜到wifi名称为note-ubuntu。手机连接测试发现可以上网
在这里插入图片描述

注意如果出现
ERROR: Your adapter can not be a station (i.e. be connected) and an AP at the same time
并且关闭WiFi后出现
WARN: Your adapter does not fully support AP virtual interface, enabling --no-virt
可能为网卡不支持新建热点

2.3create_ap其他命令

(1)查看创建的热点

create_ap --list-running

出现结果

8323 wlp3s0(ap0)

(2)查看连接在 ap 上的设备

create_ap --list-clients 查看创建的热点前面的编号 如8323

https://blog.csdn.net/freewebsys/article/details/126297257

(3)开启关闭热点

sudo systemctl start create_ap # 开启 wifi 热点
sudo systemctl stop create_ap # 关闭 wifi 热点

3.方法3用hostapd和dhcp建立wifi热点

3.1 hostapd和udhcpd工具简介

(1)hostapd简介
用过WIFI的应该对wpa_supplicant这个工具有一定的了解。wpa_supplicant用于wifi连接AP、验证密码等功能,实现的是wifi sta相关功能。而hostapd工具用于实现WIFI AP相关的功能。

hostapd包括IEEE 802.11接入点管理(认证/关联)、IEEE 802.1X/WPA/WPA2 Authenticator、EAP服务器和RADIUS认证服务器功能。它可以使用各种配置选项构建,例如,一个独立的AP管理解决方案或一个支持多种EAP方法的RADIUS认证服务器。
通俗来讲作用就是将WIFI模块模拟成热点,供其他设备连接。
参考 http://w1.fi/wpa_supplicant/devel/

(2)udhcpd简介
hostapd可以理解为用于搭建物理层。一个WIFI设备连接到热点,就像一个网线的设备,插入到了路由器的lan口。而我们Linux设备模拟成热点,就相当于实现了路由器的功能。Linux热点运行这hostapd程序,那么其他wifi终端设备就可以连接它。我们知道,将设备用网线连接到路由器是需要手动配置IP地址或者自动的获取IP地址的。之所以设备能从路由器获取IP地址,就是因为路由器中运行DHCP服务,可以动态的给连接的设备分配IP地址。同样我们用Linux模拟成热点,也需要为其他连接热点的设备提供IP地址和DNS等配置,这样其他WIFI终端设备才真正的和热点组成了局域网。为了实现DHCP服务,所以Linux上需要运行udhcpd这个程序。在嵌入式上udhcpd是busybox提供的一个应用程序。

3.2 安装hostapd 和dhcp工具

sudo apt install hostapd 
sudo apt install isc-dhcp-server

3.3配置和启动hostapd

(1)配置hostapd
先自己创建一个简单的配置文件hostapd-minimal.conf,对hostapd的功能进行验证,将这个hostapd-minimal.conf 文件拷贝到目录/etc/hostapd/下
并且编辑hostapd-minimal.conf文件如下

#wlan0为你的无线网卡名称,用ifconfig查,注意无线为w开头
interface=wlp3s0
#??driver怎么查?
driver=nl80211
#热点名字
ssid=note-ubuntu
hw_mode=g
channel=1
#使用热点密码验证
wpa=1
#热点密码
wpa_passphrase=12345678

(2)启动hostapd

sudo hostapd /etc/hostapd/hostapd-minimal.conf 

出现如下显示

Configuration file: /etc/hostapd/hostapd-minimal.conf
Using interface wlp3s0 with hwaddr 84:ef:18:cc:32:4c and ssid "note-ubuntu"
wlp3s0: interface state UNINITIALIZED->ENABLED
wlp3s0: AP-ENABLED 
wlp3s0: STA 3c:6a:48:88:c8:10 IEEE 802.11: disassociated
wlp3s0: interface state ENABLED->DISABLED
wlp3s0: AP-DISABLED 
nl80211: deinit ifname=wlp3s0 disabled_11b_rates=0

这是因为有其他的网络程序在占用了无线网卡接口,你必须先关闭系统本身的无线网络管理程序network manager.

sudo nmcli radio wifi off
sudo rfkill unblock wlan
sudo ifconfig wlp3s0 10.5.5.1/24 up

然后再打开hostapd。如下所示,表示你已经成功启动了

Using interface wlp3s0 with hwaddr 84:ef:18:cc:32:4c and ssid "note-ubuntu"
wlp3s0: interface state UNINITIALIZED->ENABLED
wlp3s0: AP-ENABLED

在手机上发现出现了热点,并且输入密码后能连接上这个wifi。
但是手机上发现不能上网,ubuntu上没有联网。想要在手机上连上这个热点并且能上网还需要继续进行配置。

3.4配置和启动dhcp

(1)配置dhcp
1.编辑文件/etc/default/isc-dhcp-server
将INTERFACES项改为

INTERFACES="wlp3s0"

wlp3s0对应无线网卡名字。
2.然后编辑文件/etc/dhcp/dhcpd.conf,在文本后面添加

subnet 10.5.5.0 netmask 255.255.255.0 {range 10.5.5.26 10.5.5.30;option domain-name-servers 8.8.8.8;option routers 10.5.5.1;option broadcast-address 10.5.5.255;default-lease-time 600;max-lease-time 7200;
}

3.编辑
(2)启动dhcp server

sudo dhcpd

出现

Config file: /etc/dhcp/dhcpd.conf
Database file: /var/lib/dhcp/dhcpd.leases
PID file: /var/run/dhcpd.pid
Wrote 0 leases to leases file.
Listening on LPF/wlp3s0/84:ef:18:cc:32:4c/10.5.5.0/24
Sending on   LPF/wlp3s0/84:ef:18:cc:32:4c/10.5.5.0/24No subnet declaration for enp4s0 (no IPv4 addresses).
** Ignoring requests on enp4s0.  If this is not whatyou want, please write a subnet declarationin your dhcpd.conf file for the network segmentto which interface enp4s0 is attached. **Sending on   Socket/fallback/fallback-net

表示成功了。并且通过sudo netstat -uap命令查看DHCP服务是否正常启动,如果出现有dhcpd的字样说明服务启动成功。

其他出现

Can't open /var/lib/dhcp/dhcpd.leases for append.

修改权限后执行可以成功

sudo chmod 777  /var/lib/dhcp/dhcpd.leases

3.4 启用internet共享

(1)启动路由转发,

sudo iptables -A FORWARD -o wlp3s0 -i wlp3s0 -s 192.168.5.0/24 -m conntrack --ctstate NEW -j ACCEPT
sudo iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
sudo iptables -t nat -F POSTROUTING
sudo iptables -t nat -A POSTROUTING -o wlp3s0 -j MASQUERADE

删除/etc/sysctl.conf中下面一行中的’#',解除net.ipv4.ip_forward=1的注释。然后执行sudo sysctl -p使其生效。或者调用

echo 1 | sudo tee /proc/sys/net/ipv4/ip_forward

再执行

sudo iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE

实验后发现如果连上了wifi,就没有了热点。看来还是需要看create_ap 脚本是怎么实现的。

参考文献
https://www.cnblogs.com/liyam/p/6186527.html

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

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

相关文章

机试指南:Ch5:线性数据结构 Ch6:递归与分治

文章目录 第5章 线性数据结构1.向量 vector2.队列 queue(1)队列的特点、应用(2)基本操作(3)例题例题1:约瑟夫问题2 (难度:中等) (4)习题习题1:排队打饭 (难度:中等) 3.栈 stack(1)栈…

前端 JS 经典:Content-type 详解

1. 什么是 Content-Type Content-Type 是 HTTP 协议中的一个请求头或响应头字段,用于指示发送或接收的实体的媒体类型,告诉服务器或客户端如何解析和处理请求或响应的主体部分。 2. Content-Type 的构成 Content-Type 由两部分组成:媒体类型…

视频在线压缩

video2edit 一款免费的在线视频编辑软件,可以进行视频合并、视频剪辑、视频压缩以及转换视频格式等。 链接地址:在线视频编辑器和转换器 - 编辑,转换和压缩视频文件 打开视频压缩页面,上传想要压缩视频,支持MP4&…

收入稳步增长 助力持续发展 尼康发布截至2024年3月财年第三季度财报

近日,尼康截至2024年3月财年的第三季度(2023年10月1日-2023年12月31日)财报正式发布。数据显示,尼康集团第三财季销售收入共计1977亿日元,较去年同期上涨300亿日元,涨幅约17.9%。其中影像业务领域&#xff…

Java面试题:解释Java内存模型中的内存顺序规则,Java中的线程组(ThreadGroup)的工作原理,Java中的FutureTask的工作原理

引言 在Java开发领域,内存模型、多线程和并发是三个至关重要的概念,它们直接影响到程序的性能、稳定性和可扩展性。作为面试官,考察候选人对这些概念的理解和应用能力是评估其技术水平的重要手段。本文将提供三道涉及这些核心知识点的面试题…

视频记录仪_基于联发科MT6762的智能4G记录仪方案

智能记录仪采用联发科强劲八核处理器,12nm制程工艺的记录仪具便是满足这些需求的理想选择。搭载4GB32GB内存,并运行Android 11.0操作系统,这款记录仪具展现出强劲的性能表现。 首先,这款记录仪具具备优秀的视频录制功能。它能完整…

WPS如何共享文件和文件夹

1 WPS共享单个文件 用WPS打开要分享的文件,点击右上角的“分享”键,选择上传到云端。 之后点击“创建并分享”,即可分享该文档。 2 WPS创建共享文件夹 2.1 如何共享文件夹 首先打开WPS,点击左上角的首页。在首页栏中&#…

Ubuntu系统下DPDK环境搭建

目录 一.虚拟机配置1.添加一个网卡(桥接模式)2.修改网卡类型3.修改网卡名称4.重启虚拟机5.查看网卡信息6.dpdk配置内存巨型页 三 DPDK源代码下载和编译1.下载源代码2.解压源代码3.安装编译环境4.编译5.设置dpdk的环境变量6.禁止多队列网卡7.加载igb_uio模块8.网卡绑定9.验证测试…

Vue3自定义文章列表组件

一、Vue3的代码展示 <template><div><div v-for"article in articles" :key"article.id" class"article-card"><div class"author-info"><img :src"article.avatar" alt"Author Avatar&qu…

Android 验证启动模式

文章目录 Android 验证启动模式查看任务栈launchModestandardsingleTopsingleTasksingleInstance Intent标记FLAG_ACTIVITY_NEW_TASKFLAG_ACTIVITY_CLEAR_TASK 和 FLAG_ACTIVITY_NEW_TASKFLAG_ACTIVITY_CLEAR_TOPFLAG_ACTIVITY_SINGLE_TOP Android 验证启动模式 查看任务栈 可…

软考52-上午题-【数据库】-关系模式2

一、关系模式的回顾 见&#xff1a;软考38-上午题-【数据库】-关系模式 二、关系模式 2-1、关系模式的定义 示例&#xff1a; 念法&#xff1a;A——>B A决定B&#xff0c;或者&#xff0c;B依赖于A。 2-2、函数依赖 1、非平凡的函数依赖 如果X——>Y&#xff0c;&a…

Linux Shell脚本练习(三)

1、测试用户名与密码是否正确。 2、输出1-1000内的素数。 3、对 100 以内的所有正整数相加求和(1234...100)。 4、输出9*9 乘法表。 5、编写脚本,显示进度条。 、 6、输入三个数并进行升序排序

RocketMQ - 深入研究一下生产者到底如何发送消息的

1. 创建Topic的时候为何要指定MessageQueue数量 首先如果要搞明白生产者的工作原理,那么就必须先明白一个概念,MessageQueue是什么? 而要明白MessageQueue是什么,就必须把他跟Topic以及Broker综合起来看,才能搞明白。如果我们要使用RocketMQ,你先部署出来一套RocketMQ集…

C++高级面试题:解释 C++ 中的智能指针循环引用问题,并介绍如何解决它

解释 C 中的智能指针循环引用问题&#xff0c;并介绍如何解决它 智能指针循环引用问题指的是两个或多个对象之间相互持有对方的智能指针&#xff0c;导致内存泄漏的情况。当使用智能指针时&#xff0c;如果对象之间存在循环引用关系&#xff0c;可能会造成内存泄漏&#xff0c…

附详细答案,最新BAT大厂面试者整理的Android面试题目

前言 前几年移动互联网创业的风口&#xff0c;如今渐渐消失&#xff0c;移动互联网被巨头公司瓜分&#xff0c;一些创业公司倒闭了&#xff0c;Android 开发需求慢慢趋近于饱和。而当初移动互联网处于风口时&#xff0c;自学、转行以及培训机构出来了大量 Android 开发从业者&…

CSS-浮动,定位

1. 浮动 (float) CSS的定位机制有三种&#xff1a;普通流(标准流)&#xff0c;浮动和定位。 普通流就是一个网页内标签元素正常从上到下&#xff0c;从左到右排列顺序的意思&#xff0c;比如块级元素会独占一行&#xff0c;行内元素会按顺序依次前后排列&#xff1b;按照这种大…

docker 安装单机版 opengauss5.0.1

前言 因为官网的镜像直接安装不成功&#xff0c;所以才写的这边文章 1、下载openGauss 地址&#xff1a; https://opengauss.org/zh/download/ 下载名称为&#xff1a;openGauss-5.0.1-CentOS-64bit.tar.bz2 1.1、 下载gosu-amd64 下载 gosu-amd64 2、制作镜像(和官网保持一致)…

佛山50公里徒步组团|真北敏捷社区佛山敏捷DevOps社区

真北敏捷社区&佛山敏捷DevOps社区有两个宗旨&#xff0c;一是求知&#xff0c;二是连接。连接有识之士&#xff0c;同修友士之识。峨峨乎高山&#xff0c;洋洋乎流水。谈笑有鸿儒&#xff0c;往来无白丁。 《柳叶刀》上的研究显示&#xff0c;运动的情绪价值&#xff0c;相…

探索NebulaGraph:一个开源分布式图数据库的技术解析

1. 介绍 NebulaGraph的定位和用途 NebulaGraph是一款开源的分布式图数据库&#xff0c;专注于存储和处理大规模图数据。它的主要定位是为了解决图数据存储和分析的问题&#xff0c;能够处理节点和边数量巨大、结构复杂的图结构数据。NebulaGraph被设计用来应对各种领域的图数…

c语言求阶乘序列前N项和

本题要求编写程序&#xff0c;计算序列 1!2!3!⋯ 的前N项之和。 输入格式: 输入在一行中给出一个不超过12的正整数N。 输出格式: 在一行中输出整数结果。 输入样例: 5输出样例: 153 #include<stdio.h> int main() {int a,b,c0,d1;scanf("%d",&a);fo…