这有效:
tethereal -i eth0 -w /root/mycapture.pcap
但它会捕获每个数据包。我只需要捕获 DNS 请求。这可能吗?服务器是 Linux。
另一件事是:是否可以通过网络将文件保存到另一台计算机?服务器只有一个小硬盘,不足以容纳捕获文件。
谢谢。
答案1
使用指定捕获过滤器-f "port 53"
。
附注:tshark
现在是,不再是了tethereal
。
要在本地捕获但将数据存储在远程服务器上,请使用-
或/dev/stdout
作为输出文件,并将命令传送至ssh
:
tshark -i eth0 -f "port 53" -l -w - | ssh otherhost "cat > foo.pcap"
tcpdump -i eth0 -f "port 53" -l -w - | ssh otherhost "cat > foo.pcap"
您也可以做相反的操作——在远程服务器上捕获数据但在本地存储数据:
ssh otherhost "tshark -i eth0 -f "port 53" -l -w -" > foo.pcap
ssh otherhost "tcpdump -i eth0 -f "port 53" -l -w -" > foo.pcap
笔记:总是像这样存储数据时指定捕获过滤器。如果不指定,每个数据包都会导致无限循环。