TSHARK DNS 到 LOGFILE

TSHARK DNS to LOGFILE

我试图让这个命令输出到日志文件..当我使用 tee 命令时 - 它直接进入 tshark 帮助屏幕,没有 tee 命令,它正确地将 DNS 行打印到屏幕.我该如何正确记录屏幕?

sudo tshark -i enp2s0 -f "src port 53" -n -T fields -e ip.dst -e dns.qry.name -e dns.a -w | tee -a logfile.log

您正在使用日志文件并使用 -T 字段,因此预期的输出是文本。 问题是您正在使用 -w,它将输出更改为数据包位。每 tshark's manpage:

-w <outfile> | -
  Write raw packet data to outfile or to the standard output if outfile is '-'.

  NOTE: -w provides raw packet data, not text. If you want text output you need 
  to redirect stdout (e.g. using '>'), don't use the -w option for this.

第二个问题是您在指定 -w 时没有同时指定输出文件或标准输入。如果删除 -w 标志,tshark 将不会出现任何语法错误。