如何在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 linktcpdump -D 查看。

常用基础选项:

  • -n:不解析主机名,显示 IP 地址(加快输出)
  • -v, -vv, -vvv:增加输出详细程度
  • -c N:只抓取 N 个包后退出
  • -w file.pcap:将数据包保存到文件,供 Wireshark 等工具分析
  • -r file.pcap:从文件读取并分析数据包
tcpdump -i eth0 -n -c 10 -w capture.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为该地址的包
tcpdump -i eth0 src 192.168.1.100 and dst port 80

抓取从 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:指定端口范围
tcpdump -i eth0 tcp port 22

只抓 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(迪杰斯特拉)算法求最短路径  晋江文学城电脑版官网 晋江文学城网页版直接进入