OpenWrt 抓包详解

一、OpenWrt 抓包简介

用 Wireshark 抓包是常见的网络故障排查手段之一。但在路由器中,整合 Wireshark 并不现实,而 OpenWrt 内置的 tcpdump 工具就成了抓包的首选。tcpdump 是一款基于命令行的数据包嗅探器,支持捕获与过滤各种协议的数据包,是网络进行故障排查的重要工具。

下面,我们将主要从如下方面介绍 OpenWrt 抓包:

二、OpenWrt 抓包的命令行操作

1. 安装 tcpdump 工具

使用 SSH 连接到 OpenWrt 路由器,并使用 opkg 安装 tcpdump 工具。注意,为了能够成功执行该操作,必须先配置好路由器的网络连接。

opkg update
opkg install tcpdump

2. 简单抓包并保存到文件

基本用法很简单,执行以下命令,tcpdump 就会开始抓包并将结果输出到终端:

tcpdump

为了方便查看,我们可以将结果保存到文件中:

tcpdump -i eth0 -w /tmp/test.pcap

其中,-i 参数指定采用的网卡(这里是 eth0),-w 参数指定保存的文件路径及文件名(这里是 /tmp/test.pcap)。这样,tcpdump 抓到的数据包就会被保存到 test.pcap 文件中。

3. 过滤器的使用

tcpdump 可以通过过滤器来捕获特定的数据包。比如,我们只想抓取目的 IP 是 192.168.1.100 的数据包:

tcpdump -i eth0 -w /tmp/test2.pcap dst 192.168.1.100

在这个例子中,我们使用了 dst 过滤器并指定了 IP 地址,这样 tcpdump 就只会捕获目的 IP 是 192.168.1.100 的数据包,而忽略其他的数据包。

三、Wireshark 分析抓包结果

1. 下载并安装 Wireshark

首先,需要在本机下载并安装 Wireshark。下载地址为:https://www.wireshark.org/download.html

2. 从路由器下载 pcap 文件

从路由器下载 pcap 文件非常简单,只需使用 SCP 命令:

scp root@192.168.1.1:/tmp/test.pcap /path/to/your/local/folder/

在这个例子中,我们将 test.pcap 文件下载到了 /path/to/your/local/folder/ 目录下。

3. 打开 Wireshark 并分析 pcap 文件

用 Wireshark 打开刚刚下载的 pcap 文件,操作步骤如下:

1)打开 Wireshark

2)点击 File -> Open 或者使用 Ctrl + O 打开 pcap 文件

3)分析抓包结果

Wireshark 的详细使用方法不再赘述。

四、OpenWrt 抓包其他技巧

1. 联机调试

为了方便调试,Tcpdump 提供了联机调试功能。只要将数据包发送到相应端口上,Tcpdump 就可以将其拦截并显示或输出至文件。如下所示,将入站 IP 数据包通过 TCP 端口放行:

tcpdump -i eth0 -n -p tcp port 80 -w /tmp/test.pcap

2. 抓取指定应用数据包

如果你只想抓取指定应用的数据包,可以结合 Tcpdump 和流控制工具一起使用。以抓取 HTTP 数据包为例,使用 tcpdump 加上流控制工具来指定仅抓取 TCP 协议中端口为 80、80 和 25 的 HTTP 数据包示例如下:

tcpdump -i eth0 -n -p -s 0 -w /tmp/http.pcap tcp port 80 or port 8080 or port 25

五、小结

本文主要介绍了 OpenWrt 抓包的基础用法和其他技巧,并介绍了如何用 Wireshark 对抓包结果进行分析。通过本文的学习,您应该已经掌握了 OpenWrt 抓包的基本技能,并能更好地排查网络故障。

原创文章,作者:MRAYV,如若转载,请注明出处:https://www.506064.com/n/370026.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
MRAYVMRAYV
上一篇 2025-04-18 13:40
下一篇 2025-04-18 13:40

相关推荐

  • Linux sync详解

    一、sync概述 sync是Linux中一个非常重要的命令,它可以将文件系统缓存中的内容,强制写入磁盘中。在执行sync之前,所有的文件系统更新将不会立即写入磁盘,而是先缓存在内存…

    编程 2025-04-25
  • 神经网络代码详解

    神经网络作为一种人工智能技术,被广泛应用于语音识别、图像识别、自然语言处理等领域。而神经网络的模型编写,离不开代码。本文将从多个方面详细阐述神经网络模型编写的代码技术。 一、神经网…

    编程 2025-04-25
  • Linux修改文件名命令详解

    在Linux系统中,修改文件名是一个很常见的操作。Linux提供了多种方式来修改文件名,这篇文章将介绍Linux修改文件名的详细操作。 一、mv命令 mv命令是Linux下的常用命…

    编程 2025-04-25
  • Python输入输出详解

    一、文件读写 Python中文件的读写操作是必不可少的基本技能之一。读写文件分别使用open()函数中的’r’和’w’参数,读取文件…

    编程 2025-04-25
  • nginx与apache应用开发详解

    一、概述 nginx和apache都是常见的web服务器。nginx是一个高性能的反向代理web服务器,将负载均衡和缓存集成在了一起,可以动静分离。apache是一个可扩展的web…

    编程 2025-04-25
  • MPU6050工作原理详解

    一、什么是MPU6050 MPU6050是一种六轴惯性传感器,能够同时测量加速度和角速度。它由三个传感器组成:一个三轴加速度计和一个三轴陀螺仪。这个组合提供了非常精细的姿态解算,其…

    编程 2025-04-25
  • 详解eclipse设置

    一、安装与基础设置 1、下载eclipse并进行安装。 2、打开eclipse,选择对应的工作空间路径。 File -> Switch Workspace -> [选择…

    编程 2025-04-25
  • Python安装OS库详解

    一、OS简介 OS库是Python标准库的一部分,它提供了跨平台的操作系统功能,使得Python可以进行文件操作、进程管理、环境变量读取等系统级操作。 OS库中包含了大量的文件和目…

    编程 2025-04-25
  • Java BigDecimal 精度详解

    一、基础概念 Java BigDecimal 是一个用于高精度计算的类。普通的 double 或 float 类型只能精确表示有限的数字,而对于需要高精度计算的场景,BigDeci…

    编程 2025-04-25
  • git config user.name的详解

    一、为什么要使用git config user.name? git是一个非常流行的分布式版本控制系统,很多程序员都会用到它。在使用git commit提交代码时,需要记录commi…

    编程 2025-04-25

发表回复

登录后才能评论