Linux 中怎么使用 Tcpdump 抓取指定域名的流量

陌雪小哥_6677

陌雪小哥_6677

2026-10-22

427人浏览

原创

tcpdump 不能直接按域名过滤,因其工作在网络层和传输层,host 关键字仅匹配解析后的 ip 地址,无法识别应用层域名;可行方案包括:dns 阶段用 udp port 53 + grep 域名、http 明文用 -a + grep host 头、https 加密流量需抓包后用 wireshark 查 sni 字段。

linux 中怎么使用 tcpdump 抓取指定域名的流量

tcpdump 本身不能直接按域名(如 example.com)过滤流量,因为它工作在 OSI 模型的网络层和传输层,而域名解析发生在应用层,且只出现在 DNS 查询或 HTTP/HTTPS 的 Host 头、SNI 扩展中——这些内容不在 tcpdump 默认过滤语法支持范围内。

为什么不能直接写 “host example.com”?

tcpdump 的 host 关键字匹配的是 IP 地址,不是域名。即使你写 tcpdump host example.com,它也会先尝试用系统 DNS 解析该域名,然后替换成对应 IP 再过滤——这只能捕获与该 IP 通信的流量,且无法区分同一 IP 上多个域名的请求(比如虚拟主机场景)。

Obsidian (Linux)
Obsidian (Linux)

操作 Obsidian 库(纯 Markdown 笔记),并通过 notesmd-cli 实现自动化。

下载

实际可行的替代方案

要定位某域名产生的流量,需结合其协议特征和已知信息,分情况处理:

  • DNS 查询阶段:抓取发往 DNS 服务器、查询该域名的 UDP/TCP 包
    例如:抓本机向 8.8.8.8 发起的对 api.example.com 的 DNS 查询:
    sudo tcpdump -i any -n 'udp port 53 and (ip src host 8.8.8.8 or ip dst host 8.8.8.8)' -A | grep -i "api\.example\.com"
  • HTTP 流量(明文):用 -A 输出 ASCII 内容,再配合 grep 提取 Host 头
    例如:抓端口 80 流量并实时过滤含域名的请求行或 Host 行:
    sudo tcpdump -i any -n -A -s 0 'tcp port 80' | grep -i "Host:.*example\.com\|GET.*example\.com"
  • HTTPS 流量(加密):无法看到 URL 或 Host 头(但可看到 SNI 域名,需额外解析)
    可用 tcpdump -i any -n -s 0 'tcp port 443' -w ssl.pcap 抓包后,用 Wireshark 打开 → 查看 TLS 握手包的 Client Hello → 展开 TLS → Extension → Server Name Indication(SNI)字段,即可看到客户端试图访问的域名
  • 先查 IP,再抓包:如果域名解析结果固定,可先 dig +short example.com 或 nslookup example.com 获取 IP,再用 host xxx.xxx.xxx.xxx 过滤
    注意:CDN、负载均衡或动态 IP 场景下该方法可能漏包

小技巧提升效率

添加关键选项避免干扰:

  • -n:禁用 DNS 反解,防止命令卡顿
  • -s 0:捕获完整数据包,确保 HTTP 头或 TLS 扩展不被截断
  • -w file.pcap:保存为 pcap 文件,便于后续用 Wireshark 深度分析 SNI、HTTP/2 伪头等
  • port 53 or port 80 or port 443:缩小范围,聚焦常见 Web 相关端口

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
Java 网络安全
Java 网络安全

本专题聚焦 Java 在网络安全与加密通信中的应用,系统讲解常见加密算法(MD5、SHA、AES、RSA)、数字签名、HTTPS证书配置、令牌认证(JWT、OAuth2)及常见安全漏洞防护(XSS、SQL注入、CSRF)。通过实战项目(如安全登录系统、加密文件传输工具),帮助学习者掌握 Java 安全开发与加密技术的实战能力。

2025.10.13

4885

12

PHP 安全与防护
PHP 安全与防护

本专题聚焦于PHP开发中的安全问题与防御措施,详细讲解SQL注入、XSS攻击、CSRF攻击、文件包含漏洞等常见安全风险及其修复方法。通过结合实际案例,帮助开发者理解漏洞成因,掌握输入验证、会话安全、加密存储与安全编码规范,全面提升PHP网站的安全防护水平。

2025.11.04

415

21

磁盘配额是什么
磁盘配额是什么

磁盘配额是计算机中指定磁盘的储存限制,就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。php中文网为大家提供各种磁盘配额相关的内容,教程,供大家免费下载安装。

2023.06.21

4170

4

如何安装LINUX
如何安装LINUX

本站专题提供如何安装LINUX的相关教程文章,还有相关的下载、课程,大家可以免费体验。

2023.06.29

3533

10

linux find
linux find

find是linux命令,它将档案系统内符合 expression 的档案列出来。可以指要档案的名称、类别、时间、大小、权限等不同资讯的组合,只有完全相符的才会被列出来。find根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部分为 path,之后的是 expression。还有指DOS 命令 find,Excel 函数 find等。本站专题提供linux find相关教程文章,还有相关

2023.06.30

2753

5

linux修改文件名
linux修改文件名

本专题为大家提供linux修改文件名相关的文章,这些文章可以帮助用户快速轻松地完成文件名的修改工作,大家可以免费体验。

2023.07.05

6750

7

linux系统安装教程
linux系统安装教程

linux系统是一种可以免费使用,自由传播,多用户、多任务、多线程、多CPU的操作系统。本专题提供linux系统安装教程相关的文章,大家可以免费体验。

2023.07.06

6402

7

linux查看文件夹大小
linux查看文件夹大小

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。linux怎么查看文件夹大小呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.07.20

3693

8

linux查看ip命令
linux查看ip命令

本专题为大家提供linux查看ip命令相关文章内容,感兴趣的朋友可以免费下载体验试试。

2023.07.20

3185

4

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Python uv官方安装与入门文档
Python uv官方安装与入门文档

共0课时 | 0人学习

Buffalo框架快速入门指南
Buffalo框架快速入门指南

共0课时 | 0人学习

Valgrind支持平台说明
Valgrind支持平台说明

共0课时 | 0人学习