我有一个使用 SSH 登录的远程容器,并想使用 Wireshark 捕获其流量。
在 Mac 或 Linux 环境中我可以写
ssh remote-ssh-host 'sudo tcpdump -U -i eth1 -w -' | wireshark -i - -k
有人知道 Windows 的等效版本吗?
答案1
这捕获设置/管道文章中有一些针对 Windows 的命名 FIFO 示例,并提到 Wireshark 支持从 TCP 连接读取捕获内容,而不仅仅是从管道读取。
开始捕获并将其传送到 TCP 侦听器:
ssh -L 12345:127.0.0.1:12345 root@host "socat -u exec:'tcpdump -U -w - -i eth1' tcp-l:12345,bind=127.0.0.1"
或者
ssh -L 12345:127.0.0.1:12345 root@host "tcpdump -U -w - -i eth1 | nc -v -l -s 127.0.0.1 -p 12345"
另外,启动 Wireshark:
"C:\Program Files\Wireshark\Wireshark.exe" -k -i [email protected]:12345
如果您在 Windows 上没有 OpenSSH,但有 PuTTY,则替换ssh
为plink
(或可能plink -no-antispoof
);所有其他选项保持不变。