您的位置:

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 抓包的基本技能,并能更好地排查网络故障。