tcpdump获取linux服务器访问域名

内容目录

需求产生

公司安全重构,需要获取打包服务器访问的常用域名加入白名单

启动tcpdump到后台运行

nohup tcpdump > domain_requests.log 2>&1 &

获取域名并排序

cat domain_requests.log | grep "_gateway" | grep "AAAA?" |awk '{print $8}'| sed 's/\.$//' |sort|uniq >domain.txt

结束进程

pkill tcpdump

要使用 tcpdump 提取 DNS 域名解析的日志,可以使用以下命令捕获 DNS 查询和响应的数据包。DNS 通常使用端口 53,因此可以通过监听这个端口来捕获 DNS 流量。

以下是一个示例命令:

sudo tcpdump -i any port 53 -w dns_traffic.pcap

这条命令将捕获所有接口上与端口 53 相关的流量,并将其写入到名为 dns_traffic.pcap 的文件中。捕获的数据可以稍后用 Wireshark 或其他工具进行分析。

如果你想实时查看 DNS 查询,可以使用以下命令:

sudo tcpdump -i any port 53 -l | grep 'A?'

这条命令会实时显示 DNS 查询,并过滤出查询 A 记录的请求。

或者,如果你想要更详细的输出,可以使用:

sudo tcpdump -i any -n port 53

解释每个参数:

  • -i any: 监听所有网络接口。
  • -n: 不进行DNS和服务名解析,直接显示IP地址和端口号。
  • port 53: 仅捕获与端口53相关的流量(DNS流量)。
  • -l: 将标准输出设为行缓冲模式,便于实时处理。
  • -w dns_traffic.pcap: 将捕获的数据写入文件 dns_traffic.pcap 中。

捕获的数据将显示DNS请求和响应的详细信息,包括查询的域名和响应的IP地址。

如果只想显示解析到的域名,可以结合 grep 过滤结果:

sudo tcpdump -i any port 53 -l -n | grep -E "A\? |AAAA\?"

这样你将会看到 DNS A 记录和 AAAA 记录的查询。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注