嵌入式linux日常使用的网络工具分享

简介: 嵌入式linux日常使用的网络工具分享

前言

作为嵌入式linux开发中我们经常会调试网络,这个时候需要一些网络工具辅助我们的工作,有一些是命令工具有些是GUI工具,这些生产力工具如何使用呢,今天做一个小分享(本篇文章主要介绍命令行工具)。

作者:良知犹存

转载授权以及围观:欢迎关注微信公众号:羽林君

或者添加作者个人微信:become_me


wpa_cli wpa_supplicant命令 使用

这两个工具使用是用来进行手动配置网络的,平时遇到非UI界面的设备,机器本身联网机制比较复杂的时候,我们可以使用wpa工具进行手动联网(前提是设备里面支持)。

Wireless Tools、wpa_supplicant是两种无线网络配置工具,这里我使用了wpa_supplicant工具。

wpa_supplicant 是 wifi 客户端(client)加密认证工>具,并且是一个开源的项目,已经被移植到 Linux、Windows 以及很多嵌入式系统上。它是 WPA 的应用层认证客户端,负责完成认证相关的登录、加密等工作。

wpa_supplicant是一个连接、配置WIFI的工具,它主要包含wpa_supplicant与wpa_cli两个程序。wpa_supplicant是服务端,wap_cli是客户端,一般情况下使用wpa_cli就可以操作WiFi。但是它不支持所有的驱动,可以浏览wpa_supplicant网站获得它所支持的驱动列表。另外,wpa_supplicant目前只能连接到那些你已经配置好SSID的无线网络,也就是使用前需要配置好wpa_supplicant的配置文件wpa_supplicant.conf

wpa_supplicant 和 wpa_cli 的关系就像服务和客户端的关系,后台运行 wpa_supplicant,使用 wpa_cli 来搜索、设置、和连接网络。不过 wpa_cli 并不是必须的软件。

wpa_supplicant 是一个独立运行的守护进程,其核心是一个消息循环,在消息循环中处理 WPA 状态机、控制命令、驱动事件、配置信息等。

wpa_cli 有命令和交互的方式进行操作

wpa_cli -i wlan0 scan              //搜索附件wifi热点
wpa_cli -i wlan0 scan_result   //显示搜索wifi热点
wpa_cli -i wlan0 status              //当前WPA/EAPOL/EAP通讯状态

执行操作示例:我进行了一个网络的断开和重连839886cd3c004deb9abdba851aa48a4c.png

wpa_cli -i wlan0 disable_network  0 //   与network id 0的网络断开
wpa_cli -i wlan0 list_network    //列举保存过得连接
wpa_cli -i wlan0 enable_network   0 //使能制定的ssid  network id 0
wpa_cli -i wlan0 select_network  <network id>  //连接指定的ssid 
wpa_cli -i wlan0 remove_network  <network id>  //将指定的网络移除掉,必须先断开才行 
wpa_cli -i wlan0 save_config   //信息保存到默认的配置文件中,/etc/wpa_supplicant.conf
断开连接

除此之外,我还会进行wpa_supplicant.conf配置文件的修改,来配合联网和断网,其中修改用vim操作,联网使用wpa_supplicant命令。

ifconfig wlan0 up //打开wlan0
wpa_supplicant -B -D nl80211 -i wlan0 -c /etc/wpa_supplicant.conf //指定.conf 配置文件连接

除了我这里简单的描述使用,大家也可以参考更详细的文章:https://www.cnblogs.com/hokori/p/14168584.html

fuser、netstat、lsof端口占用查看工具使用

上面是网络的连接,很多时候我们还要查看网络端口占用的情况,下面有三个linux工具可以参考:

fuser可以显示出当前哪个程序在使用磁盘上的某个文件、挂载点、甚至网络端口,并给出程序进程的详细信息。

netstat 命令用于显示各种网络相关信息,如网络连接,路由表,接口状态 (Interface Statistics),masquerade 连接,多播成员 (Multicast Memberships) 等等。

lsof 命令可以查看进程打开的文件、目录,还可以查看进程监听的端口等 socket 相关的信息。

fuser 查看端口占用

ps $(fuser   6666/tcp) 组合ps查看进程信息
fuser   6666/tcp //查看tcp端口占用进程
fuser   6000/udp //查看udp端口占用进程

839886cd3c004deb9abdba851aa48a4c.png

netstat 查看端口占用

netstat -tunlp | grep 40999 // 查看端口占用
-t (tcp) 仅显示tcp相关选项
-u (udp)仅显示udp相关选项
-n 拒绝显示别名,能显示数字的全部转化为数字
-l 仅列出在Listen(监听)的服务状态
-p 显示建立相关链接的程序名       

839886cd3c004deb9abdba851aa48a4c.png

sudo lsof -i:6000 或者使用lsof -i查看全部端口占用image.png

这样我们知道了进程占用的端口。以上这三者工具都有丰富的功能,我只是使用的它们其中一些功能,详细可以参考这些文章

https://www.cnblogs.com/Sungeek/p/11857549.html

https://www.jianshu.com/p/70be9a5694ef

https://www.cnblogs.com/ggjucheng/archive/2012/01/08/2316661.HTML

更详细的使用大家也可以自行搜索。


tcpdump使用

端口占用工具使用之后,我们需要进行更深层次的数据分析,这个时候我们需要进行网络tcp和udp层次的数据分析,这个时候有很多工具例如Wireshark、Network Monitor和tcpdump,今天主要介绍tcpdump的使用。

tcpdump 是一款强大的网络抓包工具,它使用 libpcap 库来抓取网络数据包,这个库在几乎在所有的 Linux/Unix 中都有。

它的命令组合起来很丰富,今天只是介绍几个工作中使用的命令,详细大家可以参考这篇文章:https://juejin.cn/post/6844904084168769549

我们会多的使用tcpdump的基本数据命令,但是有时候我们需要详细信息打印的捕获比较,这个时候有以下命令可以帮助我们在终端上详细输出信息:

tcpdump udp port 6666 -XX -vvv -nn
-v:当分析和打印的时候,产生详细的输出。
-vv:产生比-v更详细的输出。
-vvv:产生比-vv更详细的输出。
-XX:输出包的头部数据,会以16进制和ASCII两种方式同时输出。
-nn :直接以IP以及PORT number显示,而非主机名与服务名称

下面是我比较常用的命令组合分享:

tcpdump -i wlan0 port 6666  //捕获6666端口数据
tcpdump -i wlan0 host 192.168.1.111 //指定IP捕获
tcpdump -i wlan0 port 6666 -XX -vvv -nn //详细信息捕获
tcpdump -i wlan0 dst  192.1168.1.111 -XX -vvv -nn //控制输出ip筛选
tcpdump -i wlan0  net 192.168.1 -XX -vvv -nn //控制总网段捕获
tcpdump -i wlan0  dst net 192.168.1 -XX -vvv -nn 、、控制输出网段捕获

示例:

sudo tcpdump -i lo portrange 5000-8000 -vv -XX -nn 5000-8000端口进行捕获数据,检查双方链路通信 image.png

此外我还可以做tcp网路的连接捕获:

这个是三次握手839886cd3c004deb9abdba851aa48a4c.png

tcp 协议的三次握手过程,第一条就是 SYN 报文,这个可以通过 Flags [S] 看出,而第二条数据的 [S.] 表示 SYN-ACK,就是 SYN 报文的应答报文。下面是常见的 TCP 报文的 Flags:
[S] : SYN(开始连接)
[.] : 没有 Flag
[P] : PSH(推送数据)
[F] : FIN (结束连接)
[R] : RST(重置连接)

这个是四次挥手839886cd3c004deb9abdba851aa48a4c.png

结语

这就是我自己的一些网络工具使用分享。如果大家有更好的想法和需求,也欢迎大家加我好友交流分享哈。

目录
相关文章
|
2月前
|
Linux 网络安全 数据安全/隐私保护
Linux 超级强大的十六进制 dump 工具:XXD 命令,我教你应该如何使用!
在 Linux 系统中,xxd 命令是一个强大的十六进制 dump 工具,可以将文件或数据以十六进制和 ASCII 字符形式显示,帮助用户深入了解和分析数据。本文详细介绍了 xxd 命令的基本用法、高级功能及实际应用案例,包括查看文件内容、指定输出格式、写入文件、数据比较、数据提取、数据转换和数据加密解密等。通过掌握这些技巧,用户可以更高效地处理各种数据问题。
169 8
|
2月前
|
监控 安全 Linux
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景,包括 ping(测试连通性)、traceroute(跟踪路由路径)、netstat(显示网络连接信息)、nmap(网络扫描)、ifconfig 和 ip(网络接口配置)。掌握这些命令有助于高效诊断和解决网络问题,保障网络稳定运行。
96 2
|
8天前
|
数据采集 人工智能 自然语言处理
FireCrawl:开源 AI 网络爬虫工具,自动爬取网站及子页面内容,预处理为结构化数据
FireCrawl 是一款开源的 AI 网络爬虫工具,专为处理动态网页内容、自动爬取网站及子页面而设计,支持多种数据提取和输出格式。
66 18
FireCrawl:开源 AI 网络爬虫工具,自动爬取网站及子页面内容,预处理为结构化数据
|
16天前
|
存储 安全 物联网
浅析Kismet:无线网络监测与分析工具
Kismet是一款开源的无线网络监测和入侵检测系统(IDS),支持Wi-Fi、Bluetooth、ZigBee等协议,具备被动监听、实时数据分析、地理定位等功能。广泛应用于安全审计、网络优化和频谱管理。本文介绍其安装配置、基本操作及高级应用技巧,帮助用户掌握这一强大的无线网络安全工具。
45 9
浅析Kismet:无线网络监测与分析工具
|
5天前
|
安全 网络协议 Linux
结合 `nc` 工具利用笑脸漏洞(Smile Bug)攻击 Metasploitable2 Linux
本文介绍如何使用 `nc`(Netcat)工具结合笑脸漏洞(Smiley Bug)攻击 Metasploitable2 Linux 靶机。首先概述了 `nc` 的基本功能和高级用法,包括建立连接、监听端口、文件传输等操作。接着详细描述了笑脸漏洞的原理及其在网络攻防中的应用,展示了通过 `nc` 发送恶意输入检测漏洞的方法。最后结合 Python 脚本实现更复杂的攻击场景,并强调了合法性和环境隔离的重要性。
32 13
|
3天前
|
网络协议 安全 测试技术
Nping工具详解:网络工程师的瑞士军刀
### Nping工具详解:网络工程师的瑞士军刀 Nping是Nmap项目的一部分,支持TCP、UDP、ICMP和ARP等多种协议,用于生成和分析网络数据包。它提供灵活的命令行界面,适用于网络探测、安全测试和故障排除。本文介绍Nping的基础与高级用法,包括发送不同类型的网络请求、自定义TCP标志位、路由跟踪等,并通过实战案例展示其应用。掌握Nping有助于更好地理解和管理网络环境。 (239字符)
32 8
|
9天前
|
Ubuntu Linux 开发者
Ubuntu20.04搭建嵌入式linux网络加载内核、设备树和根文件系统
使用上述U-Boot命令配置并启动嵌入式设备。如果配置正确,设备将通过TFTP加载内核和设备树,并通过NFS挂载根文件系统。
49 15
|
12天前
|
运维 监控 Linux
推荐几个不错的 Linux 服务器管理工具
推荐几个不错的 Linux 服务器管理工具
|
14天前
|
Ubuntu Unix Linux
Linux网络文件系统NFS:配置与管理指南
NFS 是 Linux 系统中常用的网络文件系统协议,通过配置和管理 NFS,可以实现跨网络的文件共享。本文详细介绍了 NFS 的安装、配置、管理和常见问题的解决方法,希望对您的工作有所帮助。通过正确配置和优化 NFS,可以显著提高文件共享的效率和安全性。
109 7
|
23天前
|
存储 监控 Linux
嵌入式Linux系统编程 — 5.3 times、clock函数获取进程时间
在嵌入式Linux系统编程中,`times`和 `clock`函数是获取进程时间的两个重要工具。`times`函数提供了更详细的进程和子进程时间信息,而 `clock`函数则提供了更简单的处理器时间获取方法。根据具体需求选择合适的函数,可以更有效地进行性能分析和资源管理。通过本文的介绍,希望能帮助您更好地理解和使用这两个函数,提高嵌入式系统编程的效率和效果。
91 13