【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

以上。

相关推荐
小成202303202653 小时前
Linux高级02
linux·开发语言
mounter6253 小时前
【硬核前沿】CXL 深度解析:重塑数据中心架构的“高速公路”,Linux 内核如何应对挑战?-- CXL 协议详解与 LSF/MM 最新动态
linux·服务器·网络·架构·kernel
++==4 小时前
Linux 进程间通信与线程同步技术详解:IPC 机制、线程 API、同步工具与经典同步问题
linux
特长腿特长4 小时前
centos、ubantu系列机的用户和用户组的结构是什么?具体怎么配置?用户组权限怎么使用?这篇文章持续更新,帮助你复习linux的基础知识
linux·运维·centos
zzzyyy5384 小时前
Linux环境变量
linux·运维·服务器
pluvium274 小时前
记对 xonsh shell 的使用, 脚本编写, 迁移及调优
linux·python·shell·xonsh
无级程序员5 小时前
centos7 安装 llvm-toolset-7-clang出错的问题解决
linux·centos
CHHC18805 小时前
NetCore树莓派桌面应用程序
linux·运维·服务器
云栖梦泽7 小时前
Linux内核与驱动:9.Linux 驱动 API 封装
linux·c++
si莉亚8 小时前
ROS2安装EVO工具包
linux·开发语言·c++·开源