如何使用wireshark嗅探远程机器的流量?

abo*_*udy 48 wireshark

我可以嗅探本地电脑的流量,但我想知道如何通过wireshark嗅探远程机器的流量?

在捕获选项中,我选择远程接口并输入我的远程 ip 显示 error.code(10061)。我该怎么办?

kon*_*rad 65

在 Linux 和 OSX 上,您可以通过在 ssh 上运行 tcpdump 并让 wireshark 监听管道来实现这一点。

  1. 创建命名管道:

    $ mkfifo /tmp/remote

  2. 从命令行启动wireshark

    $ wireshark -k -i /tmp/remote

  3. 在远程机器上通过 ssh 运行 tcpdump 并将数据包重定向到命名管道:

    $ ssh root@firewall "tcpdump -s 0 -U -n -w - -i eth0 not port 22" > /tmp/remote

来源:http : //blog.nielshorn.net/2010/02/using-wireshark-with-remote-capturing/


小智 33

我使用这个 oneliner 作为 root。非常有用!

ssh root@sniff_server_ip -p port tcpdump -U -s0 'not port 22' -i eth0 -w - | wireshark -k -i -

-de 之前的最后一个|是该输出的重定向,用于wireshark 的标准输入。-kwireshark 中的选项意味着“立即开始嗅探


dmo*_*ati 11

一种方法是在交换机上使用所谓的镜像或跨接端口。如果您的交换机不够智能,您还可以在交换机/主机到捕获连接之间放置一个小型集线器。您将侦听主机的物理链路连接到该端口/集线器,然后您就可以看到穿过设备的所有流量。或者,您需要将数据包捕获软件安装在网络中更具战略意义的位置,例如边界防火墙/路由器。


小智 6

您可以使用文件描述符来连接和接收数据包,ssh并将其通过管道传输到本地的wireshark:

wireshark -i <(ssh root@firewall tcpdump -s 0 -U -n -w - -i eth0 not port 22)

您的wireshark将打开并向您显示“接口”,例如/dev/fd/63,它是包含来自远程系统的数据的文件描述符。


小智 5

在 RHEL 下,konrad 的答案对我不起作用,因为tcpdump需要 root,而我只有 sudo 访问权限。所做的工作是创建一个额外的远程 fifo,我可以从中读取:

remote:~$ mkfifo pcap
remote:~$ sudo tcpdump -s 0 -U -n -w - -i eth0 not port 22 > pcap
Run Code Online (Sandbox Code Playgroud)

并通过单独的连接发送数据:

local:~$ mkfifo pcap
local:~$ ssh user@host "cat pcap" > pcap
Run Code Online (Sandbox Code Playgroud)

最后启动Wireshark

local:~$ wireshark -k -i pcap
Run Code Online (Sandbox Code Playgroud)