配置Linux为无线路由器

news2024/10/7 16:18:28

配置Linux无线路由器

将Linux配置为无线路由器。使用hostapd,可以配置无线网卡为AP模式。

这里使用buildroot来生成这个工具。Wi-Fi模块使用的是 rt8188eus。

1. 内核配置

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

2. buildroot配置

在这里插入图片描述

在这里插入图片描述

开启 rt8188eus 驱动

在这里插入图片描述

3. 启动hostapd

系统启动后,会自动加载无线网卡驱动,生成wlan0设备。

可以通过网桥方式上网,也可以通过路由模式上网。这里暂时没有配置NAT,因此使用网桥方式上网。

3.1 创建网桥
brctl addbr br0  # 创建网桥
brctl addif br0 eth0  # 将eth0加入到网桥br0中
ip link set eth0 promisc on  # eth0网卡开启混杂模式:接受和发送任意端口地址的数据包

这里eth0是作为当前设备的 WAN口,可以dhcp一个IP地址:

udhcpc -i br0 
# udhcpc -i br0
udhcpc: started, v1.36.1
udhcpc: broadcasting discover
udhcpc: broadcasting select for 192.168.47.193, server 192.168.47.254
udhcpc: lease of 192.168.47.193 obtained from 192.168.47.254, lease time 1800
adding dns 192.168.47.1

这里上级网络有DHCP server,可以直接获取到一个IP地址。在手机连接到AP热点后,就会通过这个DHCP server获取到IP地址。

3.2 修改 /etc/hostapd.conf

修改 hostapd.conf :

mv /etc/hostapd.conf /etc/hostapd.conf.backup
touch /etc/hostpad.conf

添加内容:

country_code=CN
interface=wlan0
bridge=br0
ssid=Example-Wifi-Name
hw_mode=g
channel=11
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=2
wpa_passphrase=12345678
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP

名称是 Example-Wifi-Name ,密码是 12345678

3.3 启动hostapd
hostapd /etc/hostapd.conf -B

启动后,会作为一个后台进程运行。

# hostapd /etc/hostapd.conf -B
rfkill: Cannot open RFKILL control device
nl80211: Could not re-add multicdevice wlan0 entered promiscuous mode
ast membership for vendor events: -2 (Interrupted system call)
wlan0: interface state UNINITIALIZED->COUNTRY_UPDATE
# ADDRCONF(NETDEV_CHANGE): wlan0: link becomes ready

这里要注意,必须要开启 dhcpd,否则,手机连接这个热点时,无法DHCP到IP地址,会导致连接不上。 由于是使用桥接模式进行上网,因此,DHCP server由上级路由设备提供。这里对应的是WAN口的上级设备。

4. 连接AP

Screenshot_2023-11-08-16-32-26-00_41a74ddf68be21faad2fbbb691b15143(1)

测试手机与本机的连通:

7ed916816e750c9d2ba701068cdee4d7

测试手机与上级设备的连通:

1e6034cf262b7191dca7c719bc4fd8c1

这里只要上级设备出来的这个eth0能够上网,那么手机就可以正常上网了。

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

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

相关文章

前端特殊字符转码

前端特殊字符转码 建议 最好不要传名称,传ID 是在不行就用这个方法 name encodeURIComponent(name),

【LeetCode力扣】42.接雨水(困难)

目录 1、题目介绍 2、解题 2.1、解题思路 2.2、图解说明 2.3、解题代码 1、题目介绍 原题链接:42. 接雨水 - 力扣(LeetCode) 输入:height [0,1,0,2,1,0,1,3,2,1,2,1] 输出:6 解释:上面是由数组 [0,1,…

c语言练习第10周(6~10)

输入样例S -4.8 -8.0 -2.9 6.7 -7.0 2.6 6.5 1.7 1.9 5.6 -1.6 -6.3 -4.3 1.5 8.7 -0.3 5.4 -9.3 4.8 7.0 3.6 -8.3 -1.0 1.3 -9.9 9.7 -6.3 5.8 2.9 2.9 -7.7 4.9 -0.6 7.2 6.4 7.7 2.8 -5.8 -0.0 2.2 4.0 7.7 -3.0 -7.5 -3.5 9.7 …

最大连续子数组

最大连续子数组(Maximum Subarray)问题是一个经典的算法问题,其目标是在给定的整数数组中找到一个连续的子数组,使得该子数组的元素之和最大。这个问题有多种解决方法,其中包括暴力解法、分治法和动态规划等。 下面是…

转座子的鉴定

1.鉴定 将转座子鉴别和注释的方法分为3大类: ①从头算法; ②基于同源性的方法 ; ③联合算法。 其中,从头算法又包括基于基因组序列比对的方法、K—mer方法和基于结构特征的方法 ; 基于同源性的方法包括基于同源序…

Vue中的 配置项 setup

setup 是 Vue3 中的一个全新的配置项,值为一个函数。 setup 是所有 Composition API(组合式API)的入口,是 Vue3 语法的基础。 组件中所用到的数据、方法、计算属性等,都需要配置在 setup 中。 setup 会在 beforeCre…

说说对React中类组件和函数组件的理解?有什么区别?

一、类组件 类组件,顾名思义,也就是通过使用ES6类的编写形式去编写组件,该类必须继承React.Component 如果想要访问父组件传递过来的参数,可通过this.props的方式去访问 在组件中必须实现render方法,在return中返回…

Python实用技巧:将 Excel转为PDF

将Excel文件转换为PDF可以方便储存表格数据,此外在打印或共享文档时也能确保表格样式布局等在不同设备和操作系统上保持一致。今天给大家分享一个使用第三方Python库Spire.XLS for Python 实现Excel转PDF的简单方法。 实现步骤 首先,通过pip命令来安装依…

基于深度模型的日志异常检测

本文转载自:深度模型的日志异常检测,还有谁不会?PPT下载地址:https://bbs.huaweicloud.com/forum/thread-100052-1-1.html视频讲解地址:https://bbs.huaweicloud.com/live/DevRun_live/202101222000.html 文章目录 1. …

pyqt5的组合式部件制作(三)

到目前为止,组合式部件的制作已经初具雏形,唯一需要完善的是所有部件和子部件的自动初始化,如果有一个层次比较复杂的组合式部件,靠人工逐个输入子部件的名称显然不现实,比如下图: 这个部件由多层、多个部件…

类EMD的“信号分解方法”及MATLAB实现(第九篇)——小波包变换(WPT)/小波包分解(WPD)

在上一篇我们讲到了离散小波变换DWT,在建立了小波分解的基本概念后,我们现在转向小波包分解——一种更精细的小波分析方法。小波包分解在多分辨率分析的基础上,提供了一种全面的频率分析工具,这在许多复杂信号处理场合中被证明是极…

第五章:java方法重写/覆盖

系列文章目录 文章目录 系列文章目录前言一、方法重写/覆盖二、方法的重写和重载的比较总结 前言 方法重写指的是子类重写父类的方法。 一、方法重写/覆盖 方法覆盖(重写)就是子类有一个方法并且和父类的某个方法的名称、返回类型、参数一样,那么我们就说子类的这…

Docker指定容器使用内存

Docker指定容器使用内存 作者:铁乐与猫 如果是还没有生成的容器,你可以从指定镜像生成容器时特意加上 run -m 256m 或 --memory-swap512m来限制。 -m操作指定的是物理内存,还有虚拟交换分区默认也会生成同样的大小,而–memory-…

MySQL json相关函数详解

MySQL提供了一系列的JSON函数,用于解析、提取、修改和操作JSON数据。以下是一些常用的JSON函数及其功能。 以下所有操作都使用该表(zone_test)用来演示: 一:JSON_OBJECT(key1,value1,key2,value2) 1、作用:…

聚观早报 |GPT-4周活用户数达1亿;长城汽车10月销量增加

【聚观365】11月8日消息 GPT-4周活用户数达1亿 长城汽车10月销量增加 xAI宣布推出PromptIDE工具 aigo爱国者连发5款儿童手表 SpaceX预计今年营收90亿美元 GPT-4周活用户数达1亿 在OpenAI首届开发者大会上,该公司首席执行官萨姆奥特曼(Sam Altman&a…

【Python】python获取本机IP的两种方式

1.使用专用网络 通过进入网站:http://myip.ipip.net获取本机ip地址 代码实现: import requests res requests.get(http://myip.ipip.net, timeout5).text print(res) 也可以在终端cmd中用如下代码实现; curl http://myip.ipip.net 2.使用自带的socke…

java8中的函数式接口的应用

函数式接口详解&#xff08;Java&#xff09;-CSDN博客 下面是一个去重的代码 /*** 学习Function匿名函数 和Predicate匿名函数 的定义* author Administrator**/ public class DistinctFilterList {public static final List<Dish> menu Arrays.asList( new Dish(&quo…

数据源、映射器的复用

开发环境&#xff1a; Windows 11 家庭中文版Microsoft Visual Studio Community 2019VTK-9.3.0.rc0vtk-example参考代码目的&#xff1a;学习与总结 demo解决问题&#xff1a;复用球体数据源、映射器&#xff0c;vtkSmartPointer与std::vector、vtkNew与std::array的搭配使用…

实验5-2——网络yum源的配置

网络yum源的配置 实验步骤&#xff1a; 1.在/etc/yum.repos.d中新建一个文件夹bak备份原来的东西,查看/etc/yum.repos.d/内容 cd /etc/yum.repos.d mkdir bak ls 2.把/etc/yum.repos.d中已有的repo文件都移入bak文件夹中并查看 mv *.repo bak ls 3. 下载安装weget以防万一本…

程序员男盆友给自己做了一款增进感情的小程序

前言 又是无聊的一天&#xff0c;逛GitHub的时候发现一个给女朋友做了一个互动微信小程序&#xff0c;据说女朋友更爱自己了&#xff0c;所以当晚。。。。给自己做了丰盛的晚餐&#xff0c;我当即点开立马开发粘贴复制起来&#xff0c;想到做的小程序可以和未来的女朋友增进感…