树莓派配置双网卡分别为AD HOC和AP模式

树莓派配置双网卡分别为AD HOC和AP模式

  1. 需求说明:为了实现分级网络管理,将多个无人机分簇,簇间使用AD HOC进行无中心自组织的网络,簇内使用AP-AC模式进行中心化网络。因此,需要配置一台设备,同时完成AD HOC+AP模式的网络配置。
  2. 配置说明:树莓派3B+,安装了64位官方操作系统,插上了一个USB网卡RTL8811CU。
  3. 预期效果
    a. AD HOC可以ping通对方
    b. AP模式可以连接

一、树莓派更新源

  1. 更新源
    a. 首先使用 uname -a 查看系统,结果如下
    在这里插入图片描述
    b. 依照该教程进行源的替换:树莓派官方32位和64位系统换源

  2. 更新和安装库
    a. 更新

sudo apt-get update
sudo apt-get upgrade

b. 安装 dnsmasq

sudo apt update
sudo apt install dnsmasq
  1. 安装USB 网卡驱动
    参考我的另外一个博客,进行安装。

  2. 查看网卡和支持类型

ifconfig
iwconfig
iw list

二、配置wlan0为AD HOC模式

  1. 在配置文件中进行调整:
sudo nano /etc/network/interfaces

使用如下内容来替换文件中的 wlan0 配置部分:

auto wlan0
iface wlan0 inet staticaddress 192.168.100.2netmask 255.255.255.0network 192.168.100.0broadcast 192.168.100.255wireless-channel 1wireless-essid CPS-IBSSwireless-mode ad-hoc
  1. 修改无线配置文件:编辑 /etc/wpa_supplicant/wpa_supplicant.conf,确保不包含任何与AP相关的配置。
  2. 使用以下命令重启无线服务:
sudo ifdown wlan0
sudo ifup wlan0

三、配置wlan1为AP模式

  1. 创建或编辑hostapd的配置文件 /etc/hostapd/hostapd.conf,使用以下内容:
interface=wlan1
driver=nl80211
ssid=CPS-AP-A
hw_mode=g
channel=6
ieee80211n=1
wmm_enabled=1
ht_capab=[HT40][SHORT-GI-20][DSSS_CCK-40]macaddr_acl=0
ignore_broadcast_ssid=0
auth_algs=1
wpa=2
wpa_key_mgmt=WPA-PSK
wpa_passphrase=CPS123456
wpa_pairwise=TKIP
rsn_pairwise=CCMP
  1. 编辑 /etc/default/hostapd 文件,指定配置文件位置:
DAEMON_CONF="/etc/hostapd/hostapd.conf"
  1. 编辑 /etc/dnsmasq.conf,添加以下内容:
interface=wlan1
dhcp-range=192.168.101.10,192.168.101.100,255.255.255.0,24h
  1. 设置静态 IP 地址。编辑 /etc/dhcpcd.conf 文件,添加以下配置:
interface wlan1
static ip_address=192.168.101.1/24
nohook wpa_supplicant
  1. 启动和启用服务
    a. 重启 dhcpcd
sudo service dhcpcd restart

b. 启动 hostapd 和 dnsmasq

sudo systemctl start hostapd
sudo systemctl enable hostapd
sudo systemctl restart dnsmasq
  1. 配置防火墙(如果需要)
    如果树莓派连接到互联网,并且您希望分享互联网连接,可能需要设置NAT规则:
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
sudo sh -c "iptables-save > /etc/iptables.ipv4.nat"

编辑 /etc/rc.local 文件,在“exit 0”之前添加以下行以恢复IPTABLES规则:

iptables-restore < /etc/iptables.ipv4.nat

四、测试结果

  1. 重启之后,有一定几率出现wlan0没有变为AD HOC模式,而是managed模式。
  2. 如果一切正常,则是AD HOC模式+AP模式。HOC之间可以互相ping通,AP模式也可以被其他设备连接并互相ping通。
    问题
    之前使用了三台设备组成AD HOC网络,可以正常ping通,但是有如下问题:
  3. 必须3台设备同时在线,一台设备关闭ad hoc或者关机,另外两台就无法ping通。
  4. 尝试更换essid名字、ip,无法解决。
  5. 尝试使用动态ad hoc网络协议,不成功。
  6. 尝试清除路由缓存,不成功。
  7. 总之就是问题不知道出现在哪里,按理说AD HOC自组织网络,怎么断掉一个就不行了呢?
    计划尝试解决
  8. 难道是至少三台设备?后续用4台设备,然后断开一台设备进行测试。

五、最终测试结果

  1. 对上述的猜测进行测试,果然是最少需要三台设备才能组成AD HOC网络。测试过程为,准备4台设备正常ping,去除任意一台也可以正常ping,但是同时去除2台就无法ping成功。

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

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

相关文章

Quartz.Net(1)

Quartz 1 Quartz是一个强大的、开源的、轻量级的任务调度框架 Quartz官方文档 2 Quartz中有五个重要的概念 Scheduler 调度器Trigger 触发器Job 工作任务ThreadPool 线程池 &#xff0c;不是CLI的线程池&#xff0c;而是Quartz特有的线程池JobStrore 调度存储&#xff0c;存…

三、配置带HybridCLR的ARCore开发环境

预告 本专栏将介绍如何使用这个支持热更的AR开发插件&#xff0c;快速地开发AR应用。 专栏&#xff1a; Unity开发AR系列 插件简介 通过热更技术实现动态地加载AR场景&#xff0c;简化了AR开发流程&#xff0c;让用户可更多地关注Unity场景内容的制作。 “EnvInstaller…”支…

【eclipse】如何在IDE里创建一个Java Web项目?

如何在eclipse中创建一个动态Web项目并成功运行&#xff1f; 一、 最终效果 懒得写那么多了…我也不知道该怎么写了&#xff0c;有点乱&#xff0c;有问题可以在评论里留言&#xff0c;我看到会解决的&#xff0c;在这个过程中也踩到了一些坑&#xff0c;但好在有CSDN帮助解决…

【C++杂货铺】红黑树

目录 &#x1f308;前言&#x1f308; &#x1f4c1; 红黑树的概念 &#x1f4c1; 红黑树的性质 &#x1f4c1; 红黑树节点的定义 &#x1f4c1; 红黑树的插入操作 &#x1f4c1; 红黑树和AVL树的比较 &#x1f4c1; 全代码展示 &#x1f4c1; 总结 &#x1f308;前言…

文章模版--测试

学习目标&#xff1a; 提示&#xff1a;这里可以添加学习目标 例如&#xff1a; 一周掌握 Java 入门知识 学习内容&#xff1a; 提示&#xff1a;这里可以添加要学的内容 例如&#xff1a; 搭建 Java 开发环境掌握 Java 基本语法掌握条件语句掌握循环语句 学习时间&#…

四川汇昌联信:拼多多网点怎么开?大概需要多少钱?

想要开一家拼多多网点&#xff0c;你肯定很关心需要准备多少资金。下面&#xff0c;我们就来详细解答这个问题&#xff0c;并从多个角度分析开设网点的要点。 一、 开设拼多多网点&#xff0c;首要任务是确定启动资金。根据不同的经营模式和地区差异&#xff0c;成本会有所不同…

WIFI模块的AT指令联网数据交互--第十天

1.1.蓝牙&#xff0c;ESP-01s&#xff0c;Zigbee, NB-Iot等通信模块都是基于AT指令的设计 初始配置和验证 ESP-01s出厂波特率正常是115200, 注意&#xff1a;AT指令&#xff0c;控制类都要加回车&#xff0c;数据传输时不加回车 1.2.上电后&#xff0c;通过串口输出一串系统…

【面试经典题】环形链表

个人主页&#xff1a;一代… 个人专栏&#xff1a;数据结构 在面试中我们经常会遇到有关链表的相关题目&#xff0c;面试官通常会对题目给出拓展 下面我就两个leetcode上的一个双指针的题目为例&#xff0c;并对其进行拓展 题目链接&#xff1a;环形链表 题目描述&#xf…

145.二叉树的后序遍历

刷算法题&#xff1a; 第一遍&#xff1a;1.看5分钟&#xff0c;没思路看题解 2.通过题解改进自己的解法&#xff0c;并且要写每行的注释以及自己的思路。 3.思考自己做到了题解的哪一步&#xff0c;下次怎么才能做对(总结方法) 4.整理到自己的自媒体平台。 5.再刷重复的类…

深入理解前端性能优化:从网络到渲染

1. 网络优化 减少HTTP请求 合并资源&#xff1a;通过合并CSS和JavaScript文件减少请求次数。资源内联&#xff1a;对于小的CSS和JavaScript&#xff0c;直接内联到HTML中。 使用HTTP/2 HTTP/2支持多路复用&#xff0c;减少请求阻塞&#xff0c;提高加载速度。 开启GZIP压缩…

Android获取系统常用阈值

问题 我自定义了一个控件&#xff0c;重写了其默认的OnTouch事件 这样系统自带的OnClickListener和OnLongClickListener就会失效 现在我想手动在OnTouch里实现Click和LongClick功能 这个很容易解决&#xff0c;通过touch时长就很容易实现 但是我想让LongClick触发的Time和系统…

LLVM中期报告

1&#xff0e;主要开展的工作 研究对LLVM IR层面进行代码混淆&#xff0c;分析IR的指令 &#xff0c;并且实现混淆 从LLVM代码混淆的角度出发&#xff0c;函数之间的正常调用构成了待混淆程序的原始控制流&#xff0c;不同的基础代码块构成了一个个的函数&#xff0c;每个基础…

Nginx-01-聊一聊 nginx

nginx 系列 Nginx-01-聊一聊 nginx Nginx-01-Nginx 是什么 Nginx-02-为什么使用 Nginx Nginx-02-Nginx Ubuntu 安装 windows10 WSL ubuntu 安装 nginx 实战笔记 Nginx-02-基本使用 Nginx-03-Nginx 项目架构 Nginx-04-Docker Nginx Nginx-05-nginx 反向代理是什么&…

自定义类型——结构体、枚举和联合

自定义类型——结构体、枚举和联合 结构体结构体的声明匿名结构体结构体的自引用结构体的初始化结构体的内存对齐修改默认对齐数结构体传参 位段枚举联合 结构体 结构是一些值的集合&#xff0c;这些值被称为成员变量&#xff0c;结构的每个成员可以是不同类型的变量。 数组是…

【随笔】Git 高级篇 -- 远程跟踪分支 git checkout -b | branch -u(三十五)

&#x1f48c; 所属专栏&#xff1a;【Git】 &#x1f600; 作  者&#xff1a;我是夜阑的狗&#x1f436; &#x1f680; 个人简介&#xff1a;一个正在努力学技术的CV工程师&#xff0c;专注基础和实战分享 &#xff0c;欢迎咨询&#xff01; &#x1f496; 欢迎大…

go语言函数/方法入参对象方法 接口interface约束示例

go语言使用泛型接口约束可以约束指定的对象参数 必须具备指定的方法 或者必须实现了指定的接口 1个或者多个接口&#xff08;通过接口继承实现&#xff09;&#xff0c; 这个在面向api的接口编程中应用非常广泛&#xff0c;也非常实用&#xff0c;废话不多说&#xff0c;直接上…

向银行家应用程序添加日期

● 首先我们将下面图片上的时间更换成现在的时间 const now new Date(); const day now.getDate(); const month now.getMonth() 1; const year now.getFullYear(); const hour now.getHours(); const min now.getMinutes();labelDate.textContent ${day}/${month}/$…

parallelsdesktop19密钥激活 PD19虚拟机完整图文安装教程

Parallels Desktop 19 &#xff08;简称 PD 19)是最新发布的 macOS 平台的 windows 虚拟机&#xff0c;本文是使用 Parallels Desktop 19 虚拟机安装 Windows 的详细图文破解安装教程。 一下载安装 Parallels Desktop 软件下载完成后打开&#xff0c;双击打开 安装.dmg Para…

3. 深度学习笔记--优化函数

深度学习——优化器算法Optimizer详解&#xff08;BGD、SGD、MBGD、Momentum、Adagrad、Adadelta、RMSprop、Adam、Nadam、AdaMax、AdamW &#xff09; 0. GD &#xff08;梯度下降&#xff09; Gradient Descent&#xff08;梯度下降&#xff09;是一种迭代优化算法&#xf…

【C】每日一题 53 最大子数组和

给你一个整数数组 nums &#xff0c;请你找出一个具有最大和的连续子数组&#xff08;子数组最少包含一个元素&#xff09;&#xff0c;返回其最大和。 子数组 是数组中的一个连续部分。 这是一个经典的动态规划问题&#xff0c;可以通过遍历数组并利用动态规划的思想来解决。…