【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

以上。

相关推荐
chenyuhao20241 天前
Linux系统编程:进程控制
linux·运维·服务器·开发语言·c++·后端
冉佳驹1 天前
Linux ——— 常用的文件传输工具和编辑器配置方法
linux·vim·yum·rz·sz
落羽的落羽1 天前
【Linux系统】进程终止、进程等待与进程替换的概念与实现
linux·服务器·c++·人工智能·深度学习·机器学习·游戏引擎
博语小屋1 天前
实现简单日志
linux·服务器·数据库·c++
HerayChen1 天前
HbuilderX 内存溢出报错
java·大数据·linux
呱呱巨基1 天前
Linux 进程概念
linux·c++·笔记·学习
liulilittle1 天前
C++ 浮点数封装。
linux·服务器·开发语言·前端·网络·数据库·c++
Xの哲學1 天前
Linux Miscdevice深度剖析:从原理到实战的完整指南
linux·服务器·算法·架构·边缘计算
你们补药再卷啦1 天前
ai(二)ubuntu22.04配置环境
linux·ubuntu