有些时候我们需要用 wireshark 来分析 openwrt 路由器上的一些流量,端口镜像是一种方法,不过有时候还是需要用 tcpdump 和 SSH 结合一下,然后在本地用 wireshark 分析流量。
在本地运行这条命令:
ssh -p 22 [email protected] [email protected] 'tcpdump -s 0 -U -n -i br-lan -w - not port 22'|wireshark -k -i -
这条命令将在连接上路由器的 SSH 后,执行 tcpdump -s 0 -U -n -i br-lan -w - not port 22 这条命令,即运行路由器上的 tcpdump,并且告诉 tcpdump:-s 保存完整的数据报,-i br-lan 指定接口,-w -将抓取到的东西写到标准输出中。然后通过管道符号 | ,将 tcpdump 的输出交给 wireshark 从而分析。
当然也可以先建立一个命令管道:
mkfifo /tmp/pcappipe
然后在执行:
SSH -p 22 [email protected] [email protected] 'tcpdump -s 0 -U -n -i br-lan -w - not port 22'>/tmp/pcappipe
然后用wireshark打开这个管道就可以了。