Answers:
在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/
ssh root@{MY_VPS_IP} -p 27922 "tcpdump -s 0 -U -n -w - -i eth0 not port 27922" > /tmp/remote
能告诉我为什么吗?
一种方法是在交换机上使用所谓的镜像或跨接端口。如果您的交换机不够智能,您还可以在交换机/主机到捕获的连接之间放置一个小型集线器。您将物理链接从侦听主机连接到该端口/集线器,然后您便可以查看通过该设备的所有流量。或者,您需要将数据包捕获软件安装在网络中更重要的位置,例如边界防火墙/路由器。
在RHEL下,由于tcpdump
需要root用户,konrad的答案对我不起作用,而且我只有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