我可以嗅闻我的本地电脑的stream量,但我想知道如何通过wireshark嗅探远程机器的stream量?
在捕获选项时,我select远程接口,并input我的远程ip show me error.code(10061)。 我该怎么办?
在Linux和OSX上,您可以通过在ssh上运行tcpdump并让wireshark在pipe道上监听来实现此目的。
创build一个命名pipe道:
$ mkfifo /tmp/remote
从命令行启动wireshark
$ wireshark -k -i /tmp/remote
在远程计算机上通过ssh运行tcpdump并将数据包redirect到命名pipe道:
$ 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/
一种方法是在交换机上使用所谓的镜像或跨接端口 。 如果您的交换机不够智能,您也可以在交换机/主机到捕获连接之间插入一个小型集线器。 您从监听主机连接到该端口/集线器的物理链路,然后您可以看到穿过该设备的所有通信。 或者,您需要将您的数据包捕获软件安装在networking中更为重要的位置,如边界防火墙/路由器。
我使用这个oneliner作为根。 非常有用!
ssh root@sniff_server_ip -p port tcpdump -U -s0 'not port 22' -i eth0 -w - | wireshark -k -i -
最后-
在de |
之前 是该输出的redirect,并用于wireshark的标准input。 wireshark中的-k
选项表示“开始不中用嗅探
您可以使用文件描述符通过ssh
连接和接收数据包,并将其传送到wireshark本地:
wireshark -i <(ssh root@firewall tcpdump -s 0 -U -n -w - -i eth0 not port 22)
wireshark会打开并显示“接口”,如/dev/fd/63
,这是包含远程系统数据的文件描述符。
请参阅有关设置远程计算机的信息,以允许本地计算机进行连接和捕获
你只能嗅探到你的stream量。 所以Joe A去Joe B不会靠近你的电脑,所以你看不到它。
唯一的办法是让你去交通或获得交通给你。 要获得stream量,需要连接到路由器或连接中间某个位置的交换机或集线器。 要获得stream量给你,你需要ARP毒化一些交换机,所以他们认为你的。
在RHEL下,konrad的答案不适用于我,因为tcpdump
需要root用户,而且我只有sudo访问权限。 什么工作是创build一个额外的远程前锋,我可以读:
remote:~$ mkfifo pcap remote:~$ sudo tcpdump -s 0 -U -n -w - -i eth0 not port 22 > pcap
并通过单独的连接发送数据:
local:~$ mkfifo pcap local:~$ ssh user@host "cat pcap" > pcap
最后启动Wireshark
local:~$ wireshark -k -i pcap