【Linux】tcpdump抓包工具与wireshark介绍

😏★,° :.☆( ̄▽ ̄)/$:.°★ 😏

这篇文章主要介绍tcpdump抓包工具与wireshark介绍。
学其所用,用其所学。------梁启超

欢迎来到我的博客,一起学习,共同进步。

喜欢的朋友可以关注一下,下次更新不迷路🥞

文章目录

    • [:smirk:1. tcpdump介绍](#:smirk:1. tcpdump介绍)
    • [:blush:2. tcpdump命令行工具](#:blush:2. tcpdump命令行工具)
    • [:satisfied:3. wireshark界面工具](#:satisfied:3. wireshark界面工具)
    • [:satisfied:4. 实践案例](#:satisfied:4. 实践案例)

😏1. tcpdump介绍

在分析网络流量和安全连接等问题时,离不开抓包工具的辅助。

tcpdump 是 Linux 上最经典、最强大的命令行网络抓包工具,可以捕获和分析网络流量,支持丰富的过滤表达式。

Wireshark 是目前最流行、功能最强大的网络协议分析器(界面抓包工具)。

😊2. tcpdump命令行工具

接口相关

cpp 复制代码
tcpdump -i eth0          # 指定网卡
tcpdump -i any           # 所有网卡
tcpdump -D               # 列出所有可用接口
tcpdump -i eth0 -p      # 非混杂模式(只抓本机流量)

输出控制

cpp 复制代码
tcpdump -n              # 不解析主机名(提高速度)
tcpdump -nn             # 不解析主机名和端口服务名
tcpdump -q              # 简洁输出
tcpdump -v              # 详细输出
tcpdump -vv             # 更详细输出
tcpdump -vvv            # 最详细输出
tcpdump -t              # 不打印时间戳
tcpdump -tttt           # 完整格式时间戳

捕获控制

cpp 复制代码
tcpdump -c 10           # 只抓10个包
tcpdump -s 0            # 抓完整包(默认96字节)
tcpdump -s 1500         # 抓取1500字节
tcpdump -w file.pcap    # 写入文件(二进制)
tcpdump -r file.pcap    # 从文件读取
tcpdump -C 10           # 文件最大10MB后轮转
tcpdump -W 5            # 最多保留5个文件
tcpdump -G 300          # 每300秒轮转文件
tcpdump -U              # 包立即写入(实时性)

显示格式

cpp 复制代码
tcpdump -e              # 显示链路层头部
tcpdump -A              # ASCII格式显示
tcpdump -X              # 十六进制+ASCII
tcpdump -XX             # 十六进制+ASCII(包含链路层)
tcpdump -l              # 行缓冲输出(配合管道)

主机过滤

cpp 复制代码
tcpdump host 192.168.1.1                # 源或目的IP
tcpdump src host 192.168.1.1            # 源IP
tcpdump dst host 192.168.1.1            # 目的IP
tcpdump host www.example.com            # 域名(会做DNS解析)
tcpdump net 192.168.1.0/24              # 整个网段

端口过滤

cpp 复制代码
tcpdump port 80                         # 端口80
tcpdump src port 1234                   # 源端口
tcpdump dst port 80                     # 目的端口
tcpdump portrange 1-1024                # 端口范围
tcpdump tcp port 443                    # TCP 443端口

协议过滤

cpp 复制代码
tcpdump arp                             # ARP协议
tcpdump icmp                            # ICMP协议
tcpdump tcp                             # TCP协议
tcpdump udp                             # UDP协议
tcpdump 'icmp or arp'                   # 多协议组合

包大小过滤

cpp 复制代码
tcpdump less 64                         # 包长小于64字节
tcpdump greater 1500                    # 包长大于1500字节
tcpdump length > 100                    # 包长大于100

TCP标志位过滤

cpp 复制代码
tcpdump 'tcp[tcpflags] & tcp-syn != 0'  # SYN包
tcpdump 'tcp[tcpflags] & tcp-ack != 0'  # ACK包
tcpdump 'tcp[tcpflags] & tcp-fin != 0'  # FIN包
tcpdump 'tcp[tcpflags] & tcp-rst != 0'  # RST包
tcpdump 'tcp[13] & 2 != 0'              # SYN包(13是TCP标志位偏移)

😆3. wireshark界面工具

cpp 复制代码
sudo apt install wireshark
sudo wireshark

抓包功能和tcpdump类似,界面显示更便于小白入手。另外也可以用tcpdump抓好包在wireshark中分析。

IP过滤

cpp 复制代码
ip.addr == 192.168.1.1           # 包含此IP(源或目的)
ip.src == 192.168.1.1            # 源IP
ip.dst == 8.8.8.8                # 目的IP
ip.src == 192.168.1.0/24         # 源网段
!(ip.addr == 192.168.1.1)        # 排除此IP

端口过滤

cpp 复制代码
tcp.port == 80                   # TCP端口(源或目的)
udp.port == 53                   # UDP端口
tcp.srcport == 8080              # TCP源端口
tcp.dstport == 443               # TCP目的端口
tcp.port in {80 443 8080}        # 端口列表

协议过滤

cpp 复制代码
http                             # HTTP协议
dns                              # DNS协议
icmp                             # ICMP协议
ssl or tls                       # SSL/TLS
!arp                             # 非ARP
tcp                              # TCP协议
udp                              # UDP协议

😆4. 实践案例

tcpdump

cpp 复制代码
# 抓取DNS查询和响应
tcpdump -i eth0 -n udp port 53

# 监控网络吞吐量
tcpdump -i eth0 -w - | pv -bert > /dev/null

wireshark

cpp 复制代码
tls.handshake.type == 1            # 客户端Hello
tls.handshake.type == 2            # 服务器Hello

以上。

相关推荐
lengjingzju3 小时前
编译与调试完全指南—第10章 网络分析工具
linux
ltl4 小时前
新硬件对存储的影响:ZNS、CXL 与计算存储
linux
RisunJan4 小时前
Linux命令-xauth(X11 认证授权管理)
linux·服务器·microsoft
fb_123458 小时前
Linux三剑客超全精讲(grep+sed+awk)零基础入门|正则+实战面试题
linux·运维·服务器
火车叼位9 小时前
Bash 实现 IDE 式补全的组件与配置
linux·运维
潘正翔9 小时前
k8s高级_调度器Deployment
linux·运维·云原生·容器·kubernetes·jenkins·devops
H_oRIZoN_9 小时前
Linux入门DAY27(文件IO(系统调用)详解|open/read/write/lseek)
java·linux·服务器
海兰10 小时前
【插件】Logbook 插件完全指南(适配 Ubuntu 24.04)
linux·运维·人工智能·ubuntu·agent·openclaw
好评12410 小时前
【Linux】Socket编程TCP
linux·网络·tcp/ip
前进吧-程序员10 小时前
从零入门:eBPF 是什么、解决什么问题以及它的历史
linux