如何在Linux中抓取网络包 Linux tcpdump过滤技巧
发布时间 - 2025-08-23 00:00:00 点击率:次tcpdump是Linux下常用网络抓包工具,支持灵活过滤。1. 基本命令如tcpdump -i eth0 -n -c 10 -w capture.pcap可抓10个包并保存;2. 按IP过滤用host、src、dst;3. 按端口和协议过滤用port、tcp、udp;4. 高级技巧支持BPF语法,可按协议、标志位、包大小等过滤,结合-w与-r可配合Wireshark分析,提升排查效率。
在Linux系统中,tcpdump 是最常用的命令行网络抓包工具,能够捕获经过网卡的数据包,并支持灵活的过滤规则,帮助你快速定位问题。掌握 tcpdump 的基本用法和过滤技巧,对网络调试、安全分析和性能排查非常有帮助。
1. 基本抓包命令
开始使用 tcpdump 前,确保你有 root 权限或具备抓包能力(如 cap_net_raw 能力)。
最简单的抓包命令:
tcpdump -i eth0-i eth0 指定监听的网络接口,可替换为实际接口名(如 enp3s0、wlan0 等)。若不确定接口名,可用 ip link 或 tcpdump -D 查看。
常用基础选项:
- -n:不解析主机名,显示 IP 地址(加快输出)
- -v, -vv, -vvv:增加输出详细程度
- -c N:只抓取 N 个包后退出
- -w file.pcap:将数据包保存到文件,供 Wireshark 等工具分析
-
-r fil
e.pcap:从文件读取并分析数据包
这条命令抓取前10个包,不解析域名,保存到 capture.pcap。
2. 按IP地址过滤
只关心特定主机的流量时,使用 host 过滤。
tcpdump -i eth0 host 192.168.1.100抓取与 192.168.1.100 相关的所有流量。
进一步限定方向:
- src 192.168.1.100:只抓源IP为该地址的包
- dst 192.168.1.100:只抓目标IP为该地址的包
抓取从 192.168.1.100 发出、目标端口为80的包。
3. 按端口和协议过滤
使用 port 可以过滤特定服务流量。
tcpdump -i eth0 port 80抓取所有涉及80端口的流量(包括 TCP 和 UDP)。
结合协议过滤:
- tcp port 443:HTTPS 流量
- udp port 53:DNS 查询
- portrange 80-88:指定端口范围
只抓 SSH(端口22)的 TCP 流量。
多个条件用 and / or / not 连接:
tcpdump -i eth0 port 80 and host 10.0.0.5抓取与 10.0.0.5 通信且使用80端口的包。
4. 高级过滤技巧
tcpdump 使用 BPF(Berkeley Packet Filter)语法,支持更复杂的表达式。
常见高级用法:
- 抓取特定协议:tcpdump -i eth0 icmp(只抓 ICMP 包)
- 排除特定流量:tcpdump -i eth0 not port 22(排除 SSH 流量,减少干扰)
- 抓取小包:tcpdump -i eth0 less 128(抓小于128字节的包,常用于探测异常)
- 抓取特定标志位:tcpdump -i eth0 'tcp[tcpflags] & tcp-syn != 0'(抓SYN包,用于分析连接建立)
组合示例:抓取非SSH、非DNS的外部通信
tcpdump -i eth0 not port 22 and not port 53 and not src net 192.168.0.0/16这有助于发现可疑外联行为。
基本上就这些。熟练掌握 tcpdump 的过滤语法,能极大提升排查效率。建议结合 -w 保存现场,再用 Wireshark 分析细节。日常使用中,先缩小范围(接口、IP、端口),再逐步深入,避免输出刷屏。
# linux
# 工具
# less
# Filter
# 接口
# https
# udp
# wireshark
# tcpdump
# ssh
# 数据包
# 为该
# 多个
# 你有
# 这条
# 再用
# 最简单
# 可按
# 若不
# 命令行
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
网站制作公司哪里好做,成都网站制作公司哪家做得比较好,更正规?
如何在腾讯云服务器快速搭建个人网站?
Laravel Vite是做什么的_Laravel前端资源打包工具Vite配置与使用
如何为不同团队 ID 动态生成多个非值班状态按钮
简单实现Android文件上传
Laravel如何安装Breeze扩展包_Laravel用户注册登录功能快速实现【流程】
如何在宝塔面板中创建新站点?
如何破解联通资金短缺导致的基站建设难题?
Laravel中的Facade(门面)到底是什么原理
如何基于云服务器快速搭建网站及云盘系统?
音乐网站服务器如何优化API响应速度?
如何用AWS免费套餐快速搭建高效网站?
零基础网站服务器架设实战:轻量应用与域名解析配置指南
用yum安装MySQLdb模块的步骤方法
微信小程序 闭包写法详细介绍
JS经典正则表达式笔试题汇总
如何在阿里云ECS服务器部署织梦CMS网站?
javascript日期怎么处理_如何格式化输出
Windows10如何更改计算机工作组_Win10系统属性修改Workgroup
Laravel如何使用Collections进行数据处理?(实用方法示例)
Laravel怎么进行数据库事务处理_Laravel DB Facade事务操作确保数据一致性
canvas 画布在主流浏览器中的尺寸限制详细介绍
Laravel事件和监听器如何实现_Laravel Events & Listeners解耦应用的实战教程
怎么用AI帮你设计一套个性化的手机App图标?
如何在IIS中新建站点并配置端口与IP地址?
实现点击下箭头变上箭头来回切换的两种方法【推荐】
phpredis提高消息队列的实时性方法(推荐)
如何选择可靠的免备案建站服务器?
1688铺货到淘宝怎么操作 1688一键铺货到自己店铺详细步骤
Laravel怎么实现验证码(Captcha)功能
HTML5空格在Angular项目里怎么处理_Angular中空格的渲染问题【详解】
Android自定义控件实现温度旋转按钮效果
网站图片在线制作软件,怎么在图片上做链接?
绝密ChatGPT指令:手把手教你生成HR无法拒绝的求职信
Android中AutoCompleteTextView自动提示
使用spring连接及操作mongodb3.0实例
如何有效防御Web建站篡改攻击?
使用豆包 AI 辅助进行简单网页 HTML 结构设计
如何在企业微信快速生成手机电脑官网?
独立制作一个网站多少钱,建立网站需要花多少钱?
Laravel如何实现邮箱地址验证功能_Laravel邮件验证流程与配置
Android自定义listview布局实现上拉加载下拉刷新功能
北京专业网站制作设计师招聘,北京白云观官方网站?
Win11怎样安装网易有道词典_Win11安装词典教程【步骤】
Laravel Eloquent模型如何创建_Laravel ORM基础之Model创建与使用教程
Laravel如何使用Facades(门面)及其工作原理_Laravel门面模式与底层机制
如何用wdcp快速搭建高效网站?
JavaScript如何实现倒计时_时间函数如何精确控制
C++用Dijkstra(迪杰斯特拉)算法求最短路径
晋江文学城电脑版官网 晋江文学城网页版直接进入


e.pcap:从文件读取并分析数据包