百度360必应搜狗淘宝本站头条
当前位置:网站首页 > IT知识 > 正文

如何在 Ubuntu 命令行中使用 Wireshark 进行抓包?

liuian 2025-07-02 22:19 133 浏览

Wireshark 是一个开源的网络协议分析工具,因其强大的抓包和分析功能而闻名。无论是调试网络问题、监控流量,还是进行安全审计,它都能派上用场。 通常,我们会在带有图形界面的系统中,通过 Wireshark 的窗口点击操作来完成抓包。但在 Ubuntu 的命令行环境中,尤其是服务器上,图形界面往往不可用。这时,Wireshark 的命令行工具 tshark 就闪亮登场了!

为什么要在命令行中使用 Wireshark 呢?原因很简单:灵活性与自动化。在服务器上,你可以用 tshark 捕获流量并保存到文件;在脚本中,你可以设置定时任务或条件触发抓包;甚至在远程调试时,你可以通过 SSH 登录服务器,直接操作。这样的场景是不是让你有点心动? 本文将从零开始,手把手教你在 Ubuntu 命令行中驾驭 Wireshark,探索网络世界的奥秘。

准备工作

在开始抓包之前,我们需要做一些准备工作,确保 Wireshark 在 Ubuntu 上安装并配置妥当。别担心,这部分很简单,但细节很重要!

安装 Wireshark

首先,确保你的 Ubuntu 系统是最新的,然后安装 Wireshark。打开终端,输入以下命令:

sudo apt update
sudo apt install wireshark -y

安装过程中弹出这个框,直接默认即可:

看到这里就代表安装成功

-y 参数会自动确认安装,避免手动输入 "yes"。安装过程中,系统可能会弹出一个配置窗口,询问是否允许非超级用户捕获网络包。出于安全考虑,我建议选择 "No",然后手动配置权限。 这样可以避免潜在的安全风险,同时保持对系统的控制。

配置抓包权限

Wireshark 需要访问底层网络接口,而这通常需要 root 权限。为了让普通用户也能抓包,我们需要调整权限设置。以下是具体步骤:

  1. 创建 wireshark 用户组

输入以下命令创建一个名为 wireshark 的用户组:

sudo groupadd wireshark
  1. 将你的用户添加到组中

将当前用户加入 wireshark 组,替换 $USER 为你的用户名,或者直接用 $USER 变量:

sudo usermod -a -G wireshark $USER
  1. 设置 dumpcap 权限

dumpcap 是 Wireshark 的抓包核心工具,我们需要让它对 wireshark 组开放:

sudo chgrp wireshark /usr/bin/dumpcap
sudo chmod 750 /usr/bin/dumpcap
sudo setcap cap_net_raw,cap_net_admin=eip /usr/bin/dumpcap

这里使用了 setcap 命令,为 dumpcap 设置特定的网络权限(cap_net_rawcap_net_admin),让它能在非 root 用户下抓包。

  1. 生效配置

配置完成后,注销并重新登录,或者重启系统,让组更改生效。

验证安装

为了确认一切就绪,运行以下命令检查 tshark 是否可用:

tshark -v

如果看到版本信息,恭喜你,安装成功了! 如果提示命令不存在,可能是安装过程中出了问题,检查是否漏装了 Wireshark 包。

基本抓包操作

准备工作完成后,我们终于可以开始抓包了!在命令行中,tshark 是 Wireshark 的灵魂,它几乎能实现图形界面中的所有功能。 下面,我们从基础操作开始。

列出网络接口

抓包的第一步是找到要监听的网络接口。运行以下命令:

tshark -D

你会看到类似这样的输出:

这些是系统中可用的网络接口。enp3s0 是有线网卡,docker0 是无线网卡,lo 是本地回环接口。记下你想抓包的接口名,比如 enp3s0

简单抓包

现在,让我们在 eth0 上开始抓包:

tshark -i enp3s0

-i 参数指定接口。运行后,终端会实时显示捕获到的数据包,格式类似于 Wireshark 的包列表,包括时间戳、源地址、目标地址和协议信息。按 Ctrl+C 停止抓包。

保存抓包文件

实时查看很有趣,但大多数时候,我们需要保存数据包以供后续分析。使用 -w 参数将抓到的包写入文件:

tshark -i enp3s0 -w capture.pcap

这会将所有捕获的包保存到 capture.pcap 文件中。你可以用 Wireshark 的图形界面打开这个文件,或者稍后用 tshark 分析。

添加抓包过滤器

网络流量往往很杂乱,我们通常只关心特定类型的包。tshark 支持 BPF(Berkeley Packet Filter)语法来过滤抓包。例如,只捕获 TCP 端口 80(HTTP)的流量:

tshark -i enp3s0 -f "tcp port 80"

-f 参数指定抓包过滤器。运行后,只有与端口 80 相关的包会被捕获,其他流量会被忽略。 再比如,只抓 ICMP(ping)流量:

tshark -i enp3s0 -f "icmp"

BPF 过滤器功能强大,支持多种条件组合,我们会在高级功能部分深入探讨。


高级功能:让抓包更智能、更高效

掌握了基本操作后,我们来玩点高级的!tshark 不仅能抓包,还能自动化、定制化你的工作流。

使用显示过滤器

除了抓包时的过滤,tshark 还支持 Wireshark 的显示过滤器语法,用于筛选已捕获的包。使用 -Y 参数:

tshark -i enp3s0 -Y "http"

这会只显示 HTTP 协议的包。注意,-f 是抓包时过滤(减少捕获量),而 -Y 是抓包后筛选(不影响捕获量,仅影响显示)。 例如,查看 DNS 请求:

tshark -i enp3s0 -Y "dns"

自动化抓包

手动抓包虽然灵活,但有些场景需要自动化。tshark 提供了多种自动停止条件,非常适合脚本化任务:

  • 捕获固定数量的包

-c 参数指定包数:

tshark -i enp3s0 -c 100 -w capture.pcap

捕获 100 个包后自动停止。

  • 按时间停止

-a 参数设置持续时间(单位:秒):

tshark -i enp3s0 -a duration:10 -w capture.pcap

抓包 10 秒后停止。

  • 按文件大小停止

设置文件大小上限(单位:KB):

tshark -i enp3s0 -a filesize:100 -w capture.pcap

文件达到 100KB 时停止。

多文件捕获(Ring Buffer)

对于长时间抓包,单个文件可能会变得很大。tshark 支持 ring buffer 模式,将流量分割成多个文件:

tshark -i enp3s0 -b files:5 -b duration:3600 -w capture.pcap

-b files:5 表示最多保留 5 个文件,-b duration:3600 表示每小时生成一个新文件。旧文件会被覆盖,像个循环缓冲区。

编写自动化脚本

我们可以将这些命令嵌入 Bash 脚本。例如,监控网络 10 分钟并保存结果:

#!/bin/bash
TIMESTAMP=$(date +%Y%m%d_%H%M%S)
tshark -i enp3s0 -a duration:600 -w "capture_$TIMESTAMP.pcap"
echo "抓包完成,结果保存在 capture_$TIMESTAMP.pcap"

保存为 capture.sh,赋予执行权限(chmod +x capture.sh),然后运行 ./capture.sh。这会生成带时间戳的抓包文件。


分析抓包结果:从数据到洞察

虽然本文聚焦抓包,但简单聊聊如何分析是个不错的收尾。tshark 提供了一些基本分析功能。

读取捕获文件

-r 参数读取 .pcap 文件:

tshark -r capture.pcap

这会显示文件中所有包的详细信息。

应用显示过滤器

结合 -Y 筛选特定流量,例如查看 HTTP 请求:

tshark -r capture.pcap -Y "http.request"

或者统计 TCP 会话:

tshark -r capture.pcap -z conv,tcp

-z 参数支持多种统计功能,非常实用。

图形界面辅助

对于复杂分析,我建议用 Wireshark 图形界面打开 .pcap 文件。它提供了丰富的可视化工具,能更直观地展示流量模式。


常见问题与解决方法

抓包过程中难免遇到问题,以下是常见情况及应对策略:

  1. 权限不足
  2. 现象:提示 "You don't have permission to capture"
  3. 解决:检查是否加入 wireshark 组,或用 sudo 运行 tshark
  4. 接口不存在
  5. 现象:提示 "No such device exists"
  6. 解决:用 tshark -D 确认接口名,或用 ip link show 检查接口状态。
  7. 抓不到包
  8. 原因:接口无流量,或过滤器太严格。
  9. 解决:确保接口 UP(sudo ip link set eth0 up),检查过滤器语法。
  10. tshark 未找到
  11. 现象:提示 "command not found"
  12. 解决:确认安装(sudo apt install wireshark),检查 PATH(which tshark)。
  13. 文件无权限
  14. 现象:保存 .pcap 文件失败
  15. 解决:确保写入目录有权限(chmodchown)。

通过这篇文章,你已经从零到一掌握了在 Ubuntu 命令行中使用 Wireshark 抓包的技能。从安装配置到基本操作,再到高级自动化和故障排除,你现在可以自信地在终端中嗅探网络了!

命令行抓包不仅适用于无图形界面的环境,还为自动化任务打开了大门。无论是调试网络问题,还是监控服务器流量,tshark 都能助你一臂之力。快去试试吧,用它解锁网络世界的秘密,成为真正的网络探险家!

相关推荐

桌面上的文件删除了怎么恢复
  • 桌面上的文件删除了怎么恢复
  • 桌面上的文件删除了怎么恢复
  • 桌面上的文件删除了怎么恢复
  • 桌面上的文件删除了怎么恢复
麦克风没声音(win11麦克风没声音)

一.先确保你的麦克风能正常使用。请确保麦克风本身是好的,连接线没有问题,请确保你的测试软件已正确设置,如YY之类的软件。二.确认你的麦克风是否插入正确的插孔一般麦克风是插入红色插孔中。三.确认你...

vs2015官网下载(vs2015 下载)

VisualStudio2015下载完成之后,会有一个名为“vs2015.pro_chs.iso”的光盘镜像文件。光盘镜像文件将光盘镜像文件在虚拟光驱中加载之后,可以打开查看光盘内容。安装文件双...

u盘自我保护怎么解除(怎么样取消u盘的自我保护)

要解除U盘保护,首先插入U盘后打开“我的电脑”,右击选择U盘图标,点击“属性”。在弹出的对话框中,选择“安全”标签,然后点击“编辑”按钮,根据自己的需要选择或取消“对于系统用户完全控制”权限,点击“确...

如何设置自动关机win10(windows 10如何设置自动关机)

Win10设置自动关机,需要以下步骤:1.按“Win+R”组合键,呼出“运行”;2.将定时关机命令设置为“shutdown-s-t7200”;3.在“运行”内输入命令,点击“确定”即可;4.如果设置错...

公版驱动(公版驱动和专用驱动的区别)

公版这个名词特指显卡本身,与驱动无关。一般采用芯片制造商自己设计的显卡,称为公版。显卡驱动只有WHQL版本、Beta版本、兼容版、定制版之分。兼容版一般称为万能驱动,不会给显卡带来多少优化,只是让你能...

nod32是什么软件(nod32是哪个国家的)

起源于捷克斯洛伐克总部现在美国下面是nod32的由来:nod是根据一部电视剧(城市边缘的医院)起的,原意是“磁盘边的医院”32是源于当16-bitNOD-ICE很成熟的时候32位处理器出来了升级适应3...

欧拉linux系统官网(欧拉系统命令)

在华为欧拉服务器上配置Linux网络,首先需要编辑网络配置文件,位于/etc/sysconfig/network-scripts目录下,根据网络需求配置对应的网络接口,IP地址、子网掩码、网关等信息,...

笔记本摄像头无法打开(笔记本的摄像头打不开了)
  • 笔记本摄像头无法打开(笔记本的摄像头打不开了)
  • 笔记本摄像头无法打开(笔记本的摄像头打不开了)
  • 笔记本摄像头无法打开(笔记本的摄像头打不开了)
  • 笔记本摄像头无法打开(笔记本的摄像头打不开了)
deepin安装显卡驱动(deepin安装显卡驱动后无法进入图形界面)

1、首先必须使用rufus制作U盘启动,必须选择DD格式2、从其他linux镜像比如Ubantu或其他拷贝出EFI的引导文件,具体是镜像中的EFI—boot—grubx86.efi这个文件,把这个文件...

小米路由器管理员初始密码(miwifi小米路由器管理员初始密码)

小米路由器管理员密码初始是123456。1、小米路由器的管理员初始密码是admin。2、如果输入admin路由器没有反应,说明密码错误,可以查看路由器背面的管理员登录密码,登录后可以自行修改设置账户名...

路由器组网具体连接方法(路由器组网教程)

举例:你正在用一个TP-LINK的无线路由器上网,信号不是太好,你想在下边再连一个无线路由器的话,就得在第二个路由器上设置了,先不管第一个路由器,设置步骤:把第二个无线路由器连接到电脑上(只是路...

雨林木风win7纯净版gho(雨林木风win7官网)

雨林木风WIN7光盘重装系统的步骤是将光盘放入光驱内,设置光驱为第一启动盘,打开电脑后进入光盘引导,最后将系统文件镜像到系统盘上1.你下载的雨林木风GHOSTXPSP3纯净版Y8.0是一个克隆光...

电脑一直正在重新启动怎么解决

1、电脑误删除或者是破坏了系统文件。那么需要重新安装系统。2、可能是安装的软件或者是插件跟系统兼容性冲突导致的。可以强制关机3次,然后重新启动电脑会出现恢复界面——选择安全模式——然后电脑会重新启...

如何下载ps软件免费版(ps如何下载免费版本)
如何下载ps软件免费版(ps如何下载免费版本)

1.在搜索引擎中输入adobe并点击搜索。2.点击adobe官网。3.点击支持并点击下载与安装。4.点击开始免费试用并点击下载。5.打开文件夹并点击打开进行安装即可。6.根据以上步骤即可下载安装ps。AdobePhotoshopCS6号...

2026-01-14 05:37 liuian