【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

以上。

相关推荐
readhere5 小时前
从ZYNQ7000开发板,学会启动嵌入式Linux系统——入门学习:EBAZ4205篇目录
linux·启动·嵌入式linux·zynq7000·ebaz4205
打工仔折腾 AI7 小时前
在 Ubuntu ARM64 部署 Q1 V3.0 MuJoCo 模型:加载、单步推理与执行器响应解析
linux·运维·人工智能·python·深度学习·ubuntu·性能优化
‎ദ്ദിᵔ.˛.ᵔ₎7 小时前
关于Linux 线程局部存储的认识
linux·运维
小小de风呀9 小时前
de风——【从零开始学习Linux】(九):进程基础 —— 从冯诺依曼体系到 fork 创建进程
linux·学习
晚风吹北巷11 小时前
Linux复习篇(自用)
linux·运维·服务器·1024程序员节
by2099911 小时前
Linux 压缩传输、进程查看与权限管理
linux·经验分享·1024程序员节
无足鸟ICT12 小时前
【RHCA+】reboot命令(重启)
linux·运维·服务器·1024程序员节
DYWorker00113 小时前
第1课:基于正点原子RK3568开发板读懂Linux内核
linux·运维·网络
Android系统攻城狮13 小时前
Linux FFmpeg深度解析之avformat_open_input调用流程与实战(一)
linux·运维·ffmpeg·车载音视频·ffmpeg音视频·音视频进阶手册