如何将远程机器上实时运行的tcpdump结果导出到我电脑上的pcap文件中?
Posted
技术标签:
【中文标题】如何将远程机器上实时运行的tcpdump结果导出到我电脑上的pcap文件中?【英文标题】:How to export the tcpdump result running in real-time on a remote machine into a pcap file on my computer? 【发布时间】:2019-10-19 20:53:03 【问题描述】:我有一个我可以管理的 Wi-Fi 探测器。在一个线程中,我必须通过 SSH 运行 tcpdump,并通过 ssh 隧道获取结果并将其写入我自己计算机上的 pcap 文件中。
现在,我运行 tcpdump 命令并返回结果,但我不知道如何将其写入 PCAP 文件,而且我真的不知道返回的数据类型是什么。
self.dataSSH=self.TunnelSSH_data.OuvrirTunnelSSH() #self.dataSSH is a paramiko.SSHClient object
sin, sout, serr = self.dataSSH.exec_command(self.ssh_command, get_pty=True)
while self.running :
for l in self.line_buffered(sout):
print(l)
def line_buffered(self,f):
line_buf = ""
while not f.channel.exit_status_ready():
line_buf += to_unicode(f.read(1))
if line_buf.endswith('\n'):
yield line_buf
line_buf = ''
ssh_command 的内容是:
"tcpdump -i " + <Interface to monitor> + " -B 8192 -s 500 -U -n -w -"
今天,我只是用unicode打印结果,但我不知道如何将它写入pcap文件。
【问题讨论】:
【参考方案1】:我必须查看调用“tcpdump”的代码才能给您一个明确的答案,但您应该知道“tcpdump”已经让您可以选择将结果写入“.pcap”文件。示例:
tcpdump -s 0 port ftp or ssh -i eth0 -w mycap.pcap
上面的代码将结果转储到“mycap.pcap”(取自https://linuxexplore.com/2012/06/07/use-tcpdump-to-capture-in-a-pcap-file-wireshark-dump/)。
所以我会尝试在探针中生成 pcap,然后将 pcap 跟踪传输到您的计算机,然后如果确实需要,则从探针磁盘中删除 pcap 文件。
【讨论】:
我知道 tcpdump 的这个选项,但是探针没有足够的内存来保存 pcap 文件,所以我必须在其他地方创建文件...以上是关于如何将远程机器上实时运行的tcpdump结果导出到我电脑上的pcap文件中?的主要内容,如果未能解决你的问题,请参考以下文章
当我通过 Git Bash 中的 ssh 在远程 Linux 机器上运行命令时,如何将文件的内容直接复制到我的 Windows 剪贴板中?