简介
在本次实验中,你将学习使用 Wireshark 的命令行工具 tshark
捕获实时网络流量。你将练习使用 -D
选项识别网络接口,使用 -i
选项选择像 eth1
这样的接口,并使用默认设置捕获数据包。
本实验将指导你使用 -w
选项将捕获的内容保存到 pcap
文件中,以便后续分析。这些基本技能对于实际场景中的网络故障排除和流量监控至关重要。
在本次实验中,你将学习使用 Wireshark 的命令行工具 tshark
捕获实时网络流量。你将练习使用 -D
选项识别网络接口,使用 -i
选项选择像 eth1
这样的接口,并使用默认设置捕获数据包。
本实验将指导你使用 -w
选项将捕获的内容保存到 pcap
文件中,以便后续分析。这些基本技能对于实际场景中的网络故障排除和流量监控至关重要。
在这一步中,你将学习如何使用 Wireshark 的命令行工具 tshark
列出可用的网络接口。网络接口是计算机连接到网络的物理或虚拟节点。在捕获网络流量之前,识别系统上哪些接口处于活动状态至关重要,因为不同的接口处理不同类型的网络流量。
~/project
,这意味着除非你另行指定,否则你创建的任何文件都将保存在这里。 2. 要列出所有可用的网络接口,请运行以下命令:
tshark -D
1. eth1
2. any
3. lo (Loopback)
4. nflog
5. nfqueue
6. docker0
-D
标志是一个特定的命令选项,用于指示 tshark
显示可用的接口。每个接口都有不同的用途:
eth1
:这通常是你的主要有线网络接口,处理大多数外部网络通信。lo
:回环接口处理你自己机器内部的网络流量。any
:一个特殊的虚拟接口,可同时捕获所有可用接口的流量。花点时间仔细查看接口列表。当我们开始捕获数据包时,你需要参考这些接口名称,因为你必须确切指定要监控哪个网络接口的流量。编号在后续命令中选择接口时会有所帮助。
在这一步中,你将学习如何使用 Wireshark 的 tshark
工具选择特定的网络接口进行数据包捕获。网络接口是计算机连接到网络的物理或虚拟节点。eth1
接口通常是 Linux 系统上的第一个以太网端口,负责处理大多数外部网络流量。
cd ~/project
eth1
接口上专门捕获数据包,请执行以下命令:sudo tshark -i eth1
让我们来了解这个命令各部分的作用:
sudo
:为你提供访问网络接口所需的管理员权限。tshark
:Wireshark 的命令行版本。-i eth1
:告诉 tshark 监听 eth1
接口(如果你的系统使用不同的接口名称,请更改此参数)。运行命令时,你会在终端中看到实时网络流量显示如下:
Capturing on 'eth1'
1 0.000000000 192.168.1.100 → 192.168.1.1 TCP 74 55942 → 80 [SYN] Seq=0 Win=64240 Len=0
2 0.000123456 192.168.1.1 → 192.168.1.100 TCP 74 80 → 55942 [SYN, ACK] Seq=0 Ack=1 Win=65535 Len=0
每行代表一个网络数据包,显示源/目的 IP、协议类型和其他技术细节。
要停止捕获数据包,请按 Ctrl+C
。然后,终端将显示有关捕获流量的汇总统计信息。
给初学者的重要提示:
eth1
是大多数 Linux 系统上第一个以太网接口的默认名称。sudo
,因为捕获网络流量需要特殊权限。在这一步中,你将学习如何使用 Wireshark 的 tshark
工具,以默认设置开始进行基本的数据包捕获。这是在你之前识别接口并选择 eth1
的基础上进行的。我们将从捕获流经 eth1
接口的所有网络流量开始,eth1
通常是 Linux 系统上的第一个以太网接口。
cd ~/project
eth1
接口上以默认设置开始捕获数据包,请运行以下命令:sudo tshark -i eth1
sudo
命令是必需的,因为捕获网络流量需要 root 权限。-i eth1
标志告诉 tshark
专门监听 eth1
网络接口。
此命令的关键要点:
eth1
的所有类型的数据包(如 TCP、UDP、ICMP 等)。你应该会看到类似以下的输出:
1 0.000000000 192.168.1.100 → 8.8.8.8 DNS 74 Standard query
2 0.000123456 8.8.8.8 → 192.168.1.100 DNS 90 Standard query response
每行代表一个网络数据包。箭头(→)表示源 IP 地址和目的 IP 地址之间的流量流向。
要暂时暂停输出(不停止捕获),请按 Ctrl+S
。按 Ctrl+Q
可恢复。当你想查看特定数据包而又不想让新数据包滚动过快时,这很有用。
记住关于此基本捕获的这些要点:
Ctrl+C
停止。在这一步中,你将学习如何正确地停止数据包捕获会话,并将捕获的数据包保存到文件中以供后续分析。这完成了我们基本的 Wireshark/tshark 工作流程。当你需要在稍后的时间分析网络流量或与同事共享数据时,将数据包保存到文件至关重要。
~/project
目录通常用于实验(Lab)练习:cd ~/project
-w
标志告诉 tshark 将捕获的数据存储在哪里:tshark -i eth1 -w capture.pcap
让我们分解一下这个命令的关键方面:
-w capture.pcap
:指定输出文件名,并将数据包以标准 PCAP 格式保存~/project
)中创建关于权限的重要说明:
- 不要在此命令中使用
sudo
(例如,sudo tshark -i eth1 -w capture.pcap
)~/project
目录具有特定的权限,限制访问,包括 root 访问- 使用
sudo
运行将导致“Permission denied(权限被拒绝)”错误- 使用不带
sudo
的命令以确保使用正确的权限正确创建文件
让捕获运行约 30 秒,以收集有意义的网络流量。此持续时间允许你捕获各种类型的数据包,而不会创建过大的文件。
要正常停止捕获并完成文件,请按 Ctrl+C
。终端将显示有关你的捕获会话的摘要信息:
^CCapturing on 'eth1'
45 packets captured
-lh
标志以人类可读的格式显示文件大小:ls -lh capture.pcap
-rw-r--r-- 1 labex labex 12K Aug 10 15:30 capture.pcap
.pcap
扩展名是数据包捕获文件的标准在本次实验中,你学习了如何使用 Wireshark 的命令行工具 tshark
捕获实时网络流量。你练习了使用 -D
标志列出可用接口,并使用 -i
参数在特定接口上捕获数据包,同时观察了 IP 地址和协议等关键网络细节。
本次练习让你亲身体验了基本的 tshark
命令,包括正确使用 sudo
权限和基本的捕获控制。这些重要技能是进行更高级的网络分析和故障排除任务的基础。