Wireshark怎么捕捉DNS流量?

HCRM技术_小炮 DNS 2025-12-28 56 0

在Wireshark中捕捉DNS流量有以下几种方法:

方法一:使用捕获过滤器(Capture Filter)

**端口过滤器(最常用)

DNS主要使用UDP端口53,有时也使用TCP端口53:

port 53

**特定协议过滤器

udp port 53 or tcp port 53

**指定源/目的端口

src port 53 or dst port 53

方法二:使用显示过滤器(Display Filter)

捕获后,在过滤栏中输入:

dns

或更具体的:

dns.qry.name contains "example.com"
dns.flags.response == 0    # 只显示请求
dns.flags.response == 1    # 只显示响应

完整操作步骤:

步骤1:启动Wireshark

sudo wireshark    # Linux需要管理员权限

步骤2:选择网络接口

- 选择正在使用的网络接口(如Wi-Fi、以太网)

- 有线连接通常选eth0 或类似

- 无线连接选wlan0 或类似

步骤3:设置捕获过滤器(可选)

1、在接口列表上方找到"捕获过滤器"输入框

2、输入:port 53

3、点击开始捕获按钮(鲨鱼鳍图标)

步骤4:生成DNS流量

为了测试,可以在终端执行:

nslookup example.com
dig google.com
ping baidu.com    # 这会先进行DNS查询

步骤5:分析DNS数据包

捕获到数据包后:

- 展开"Domain Name System (query/response)"

- 查看"Queries"部分

- 注意"Answers"部分(如果有响应)

常用显示过滤器示例:

过滤器 作用
dns 显示所有DNS流量
dns.flags.rcode == 0 显示成功的DNS响应
dns.flags.rcode == 3 显示NXDOMAIN(域名不存在)
dns.qry.name == "example.com" 显示特定域名的查询
dns.a 显示A记录响应
dns.aaaa 显示AAAA记录响应

保存捕获结果:

1、停止捕获(红色方块按钮)

2、文件 → 保存

3、选择保存位置和文件名

高级技巧:

**只捕获特定主机的DNS

host 192.168.1.100 and port 53

**排除特定DNS服务器

port 53 and not host 8.8.8.8

**捕获并保存到文件

使用tshark(命令行版本)
tshark -i eth0 -f "port 53" -w dns_capture.pcap

注意事项:

1、权限问题:Linux/Mac需要sudo权限

2、无线网络:可能需要开启监控模式

3、VPN/代理:可能会影响DNS流量捕获

4、DNS over HTTPS/TLS:标准端口53无法捕获这些加密的DNS流量

这样就能成功捕获和分析DNS流量了。

文章摘自:https://idc.huochengrm.cn/dns/22266.html

评论