本文共 1746 字,大约阅读时间需要 5 分钟。
在网络 diagnosing 和故障排除中,抓包工具是非常有用的工具。tcpdump 和 Wireshark 是两款常用的抓包工具,各具特色,适用于不同的场景。
tcpdump 是一款强大的网络抓包工具,常用于抓取网络流量数据。它支持多种选项,用户可以根据需求进行灵活配置。
tcpdump 提供了丰富的选项,用户可以通过这些选项来定制抓包行为:
-c:表示在接收到指定数量的分组后,tcpdump 会自动停止抓包。-C:在将文件写入之前,检查文件大小是否超过指定的 size。如果超过,会关闭当前文件并新建一个新的文件。-D:显示系统中所有可以用 tcpdump 拉取的网络接口。-e:打印数据链路层的头信息。-E:用于解密 IPsec ESP 分组,具体参数为 spi@ipaddr algo:secret。-f:以数字形式打印外部 IP 地址。-F:从指定文件中读取表达式,忽略命令行中的表达式。-i:指定监听的网络接口。-l:将标准输出缓冲为行输出,适合导出到文件。-L:列出网络接口的已知数据链路。-m:导入 SMI MIB 模块定义文件。-M:处理 TCP-MD5 选项,验证摘要。-b:在.data链路层选择协议,包括 IP、arp、rarp、IPX 等。-n:不转换网络地址为 hostname。-nn:不转换端口号为名称。-N:不输出主机名的域名部分。-t:不输出时间戳。-O:禁用分组匹配代码优化。-P:不设置网络接口为混杂模式。-q:快速输出,仅显示少量协议信息。-r:从指定文件中读取包(通常由 -w 选项生成)。-S:以绝对值形式输出 TCP 序列号。-s:从每个分组中读取指定数量的字节。-T:指定报文类型,常见于 RPC 和 SNMP。-u:输出未解码的 NFS句柄。-v:输出详细信息,例如 TTL 和 服务类型。-vv:输出更详细的报文信息。-w:直接将分组写入文件,避免分析和打印。###ैठiểm josephclipboard
常用的 tcpdump 命令示例:
[root@localhost ~]# tcpdump -D
这将显示系统中所有可以用 tcpdump 拉取的网络接口。例如:
[root@localhost ~]# tcpdump -vv -i ens33 -s 0 -w 1.pcap
这个命令会以详细的形式抓取经过 ens33 接口的流量,并将结果保存到 1.pcap文件中。运行后,会显示类似以下信息:
tcpdump: listening on ens33, link-type EN10MB (Ethernet), capture size 262144 bytes^C144 packets captured147 packets received by filter0 packets dropped by kernel
如果需要抓取特定主机的流量,可以使用:
[root@localhost ~]# tcpdump -i any host 192.168.213.1
此时,tcpdump 会只抓取来自 192.168.213.1 的报文。
Wireshark 是 tcpdump 的图形化版本,用户友好,适合定位网络问题。
在 CentOS 系统中安装 Wireshark:
[root@localhost ~]# yum -y install wireshark*
安装完成后,Wireshark 提供了直观的图形界面,和 Windows 系统类似的使用方式。
Wireshark 允许用户可视化地分析网络流量,支持时序分析和抓包解析。它支持多种协议的解析,包括 TCP、UDP、HTTP、HTTPS、DNS 等。
通过 tcpdump 和 Wireshark,用户可以根据需求选择适合的工具,进行网络流量的捕获和分析。选择 tcpdump 时,需熟悉命令行操作;选择 Wireshark 时,则可以借助图形界面直观地查看加密流量等信息。
转载地址:http://uzlgz.baihongyu.com/