复现SenCom教程,用RT-AC86U安装nexmon实操经验总结(傻瓜新手教程)

先验知识

一、虚拟机版本问题
  • 首先在虚拟机中安装ubuntu14.0.1,后面在出问题的时候以为是虚拟机版本的问题,换了ubuntu18.0.4、20等几个版本,经过测试发现和版本无关,都可以。
二、完成了shell语法的学习,了解一些常见的linux命令操作。

Linux 中有许多常见的命令,用于执行各种任务。以下是一些常见的 Linux 命令及其功能:

  1. 文件和目录操作:

    • ls: 列出目录内容。
    • cd: 切换当前工作目录。
    • cp: 复制文件或目录。
    • mv: 移动/重命名文件或目录。
    • rm: 删除文件或目录。
    • mkdir: 创建新目录。
  2. 文本编辑:

    • nano, vim, emacs: 启动文本编辑器。
    • cat: 查看文件内容。
    • head, tail: 查看文件的前几行或后几行。
  3. 权限管理:

    • chmod: 修改文件或目录的权限。
    • chown: 更改文件或目录的所有者。
    • chgrp: 更改文件或目录的组。
  4. 系统信息:

    • uname: 显示系统信息。
    • df: 显示磁盘空间使用情况。
    • free: 显示内存使用情况。
    • ps: 显示进程状态。
    • top: 实时显示系统资源使用情况。
  5. 网络相关:

    • ping: 测试与目标主机的连接。
    • traceroute: 显示数据包在网络中的传输路径。
    • ifconfigip: 查看和配置网络接口。
    • netstat: 显示网络统计信息。
  6. 压缩和解压缩:

    • tar: 打包和解压文件。
    • gzip, gunzip: 压缩和解压缩文件。
    • zip, unzip: 创建和解压 ZIP 文件。
  7. 进程控制:

    • ps: 显示系统进程。
    • kill: 终止进程。
    • pkill: 根据进程名称终止进程。
  8. 用户和组管理:

    • useradd, userdel: 添加和删除用户。
    • passwd: 修改用户密码。
    • groupadd, groupdel: 添加和删除用户组。
    • su, sudo: 切换用户或以超级用户权限执行命令。
  9. 查找文件:

    • find: 根据条件查找文件。
    • locate: 基于数据库快速查找文件。
  10. 包管理系统:

    • apt, apt-get: Debian/Ubuntu 系统的包管理工具。
    • yum, dnf: Red Hat/CentOS 系统的包管理工具。

这只是一小部分 Linux 命令,Linux 系统中还有很多其他命令和工具可用。你可以使用 man 命令来查看命令的手册页以获取更详细的信息,例如 man ls

三、内核相关知识
  • 在上周的实验中,出现了各种各样的问题,这些问题促使我学习了linux内核的相关知识,了解了rmmod、insmod等命令的功能含义和原理,后面学习了有关ssh的相关问题,因为在实验的时候要远程登录路由器并给路由器发送一些安装包,了解了不同服务器或者客户端可以通过ssh建立连接,用scp去相互传输复制文件。
    rmmodinsmod 是 Linux 中与内核模块(Kernel Module)管理相关的命令,用于卸载和加载内核模块。以下是它们的功能和原理:

    rmmod 命令:

    功能: rmmod 用于卸载(移除)已加载到内核的模块。

    语法: rmmod module_name

    • module_name: 要卸载的内核模块的名称。

    原理: 当你使用 rmmod 命令时,它会尝试从内核中卸载指定的模块。卸载过程包括执行模块的退出函数(exit 函数),释放模块所占用的资源,并解除模块与内核的关联。如果该模块正在被使用,卸载可能会失败。

    insmod 命令:

    功能: insmod 用于加载新的内核模块到运行中的内核中。

    语法: insmod module_path [module_parameters]

    • module_path: 要加载的内核模块的路径。
    • module_parameters: 可选参数,用于传递给模块的初始化参数。

    原理: 当你使用 insmod 命令时,它会将指定的模块加载到内核中。加载过程包括执行模块的初始化函数(init 函数),为模块分配内存和资源,并与内核建立关联。如果加载成功,该模块将成为内核的一部分,并可以被其他系统组件使用。

    示例:

    1. 加载模块:
    insmod my_module.ko
    
    1. 卸载模块:
    rmmod my_module
    

    这两个命令通常用于在运行时动态地添加或删除内核模块,而不需要重新启动系统。

四、路由器版本问题
  • 了解到路由器的相关知识,一开始用原装的路由器操作的时候在ssh这一步上卡壳,后面了解到原装路由器固件并没有嵌入linux,需要进行更改rt-ac86u固件版本,有官改和梅改,都试了一下,真一言难尽。目前为止,实验卡在最后一步远程控制路由器进行发包这一步,我怀疑两个原因:
    1. 路由器固件版本问题
    2. Github源码cmake报错(找找原因)
五、路由器设置
  • 路由器由于重置会恢复出厂设置,在实验期间,先重置,然后把内网ip设置为特定的地址,比如192.168.2.1(后面会用到),主要用来ssh登录路由器时使用,还要设置路由器的用户名,密码,将ssh设置为wan&lan(主要目的是为保证通过lan或者wan连接的SAT可以使用ssh),将ssh端口设置为22.
六、scp命令具体用法
  • scp 客户端文件 服务器地址:复制的目录
七、关于Nexmon CSI Tool的介绍
  • Nexmon CSI提取器使用修改的固件从一系列Broadcom WiFi中提取CSI。该工具支持2.4 GHz和5 GHz频段,最高可达80 MHz带宽并提取多达256个子载波的幅度。Nexmon需要一个有root的Nexus 5或6P智能手机或树莓派B3+/B4或华硕RT-AC86U WiFi路由器作为CSI提取器(带WiFi监控模式)来监听商业WiFi接入点(AP)和WiFi客户端(如mini pc或笔记本电脑)之间交换的CSI数据包。与Linux 802.11n和Atheros CSI Tools相比,Nexmon所需的硬件更容易获得。然而,CSI提取的准备量是相似的。

相关问题

一、路由器版本固件问题
  • 不恰当的路由器固件版本会出现一些让人不能理解的问题。比如:3.0.0.4.382_15098在刷了固件之后登录路由器时自己设置的密码居然报错(输入十几次,五次后五分钟后重试,无语),重置路由器之后继续实验,发现依然如此,无奈只能换固件版本。
    Tips:在这个过程中,刷固件大约三分钟,然后重启。
二、全程最好登录在root下进行实验
Tips:虚拟机首次登录root时会验证失败,要先进行设置root密码:sudo passwd root;
三、ssh报错问题
  • 远程登录ssh时,第一次会要求确定是否yes,如果路由器重置后,直接ssh会报错,在这里需要我们使用ssh-keygen -R [router address]
  • Tips:关于ssh-keygen -R [router address],这里的原理是,将服务器的公钥发送给客户端进行更新,公钥所在文件为/etc/…ssh/host.list和host.list.old,有时候因为一些操作发生错误的时候需要删除host.list文件中的内容,这里我了解以下其中原理:在ssh远程登录的时候,为了保证安全性,会使用一些加密方式,常见的是对称加密方式,需要公钥和私钥完成加密,这个文件就是保存公钥的,这样每次在连接的时候,客户端用服务器提供的公钥去加密,服务器有自己的私钥,服务器用其进行解密,如果加密和解密的结果一致,服务器接受请求。
四、git clone时报错问题
  • 虚拟机有时候在git仓库的时候报错,属于正常现象,多试几次就好了,可以通过ping一下github.com看一下当前丢包率等,有时候虚拟机无法ping通github,这个时候需要再etc/hosts文件下手动添加githu.com的地址,即140.82.114.4,有好几个地址可用,可用IP地址查询工具进行查询,选取自己电脑最少延迟的ip地址进行设置。
`我的PC的ip地址为:(每个人的PC会有所不同)`
140.82.113.4    github.com
151.101.1.194   github.global.ssl.fastly.net
五、scp命令注意事项
  • 在使用scp命令的时候,保证目的位置没有重名的文件。
六、有线接路由器,无线开monitor
  • 打开monitor模式之后,连接的WiFi会断掉;树莓派的wifi被monitor占用了,树莓派跟路由器网线链接,在一个冲突域。

总结与建议

1、为什么只有少数使用过时通信标准(如 802.11n)的商用 Wi-Fi 设备能够访问 CSI 数据?

答:在商用Wi-Fi 设备中,用户端并不总是提供 CSI。这是因为大多数 Wi-Fi 芯片组制造商将 CSI 访问作为私有功能保留,并且不向消费者提供专用功能接口。但灵活性非常有限,例如Intel 5300 和Atheros AR9580 Wi-Fi 设备、RT-AC86U安装nexmon工具等。

2、复现sencom这篇文章是向原作者(何映晖)私信,他给的建议是:

答:我这边的建议是,你可以使用西电蒋志平老师开发的PicoScenes平台,网卡选用ax200或者ax210,这个网卡也支持在monitor模式下采集CSI。我之前使用nexmon csi tool就是因为当时没有蒋老师的平台,但又希望能够在monitor模式下采集csi,所以不得不用。做的修改也是为了提取一些Wi-Fi包头信息。蒋志平老师的PicoScenes平台相对而言,更加完善,上手更加简单,也已经提供了一些包头信息。我相信你用这个平台会更容易上手。
另外,有关实现流程,我不太清楚你说的流程是哪个。如果是硬件搭建,可以参考蒋老师的PicoScenes,如果你要用nexmon csi tool,那就参考相应nexmon的github。如果是系统搭建,我们在文章中给出了完善的系统图,按照相应的流程走就可以了。
ps:非常感谢何师兄的回复。

  • 14
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值