我可以嗅探本地电脑的流量,但我想知道如何通过 wireshark 嗅探远程机器的流量?
当我在捕获选项中选择远程接口并输入我的远程 IP 时,系统会显示 error.code(10061)。我该怎么办?
答案1
在 Linux 和 OSX 上,您可以通过 ssh 上运行 tcpdump 并让 wireshark 监听管道来实现此目的。
创建命名管道:
$ mkfifo /tmp/remote
从命令行启动 wireshark
$ wireshark -k -i /tmp/remote
在远程机器上通过 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/
答案2
我以 root 身份使用这个 oneliner。非常有用!
ssh root@sniff_server_ip -p port tcpdump -U -s0 'not port 22' -i eth0 -w - | wireshark -k -i -
-
de 之前的最后一个|
是该输出的重定向,并被 wireshark 用作标准输入。wireshark-k
中的选项表示“立即开始嗅探
答案3
一种方法是使用所谓的镜像或跨度端口在您的交换机上。如果您的交换机不够智能,您还可以在交换机/主机到捕获连接之间放置一个小型集线器。您将从侦听主机到该端口/集线器的物理链路连接起来,然后您就可以看到通过该设备的所有流量。或者,您需要在网络中更具战略性的位置安装数据包捕获软件,例如边界防火墙/路由器。
答案4
在 RHEL 下,konrad 的答案对我不起作用,因为tcpdump
需要 root 权限,而我只有 sudo 访问权限。 起作用的是创建一个额外的远程 fifo,我可以读取它:
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