在netcat手册页中,您可以使用以下内容嗅探/保存TCP流:
mkfifo data
cat data | nc -l $port | tee -a $fn1 | nc $server $port | tee -a $fn2 > data
所以我尝试了类似下面的内容来为UDP做同样的事情:
mkfifo data
cat data | nc -lu $port | tee -a $fn1 | nc -u $server $port | tee -a $fn2 > data
但它失败了,我认为这是因为写入和读取data
之间的竞争条件以及tee
命令的管道,这意味着我不能保证UDP数据包是一个接一个地传播。
我是否可以使用现有的命令或工具来嗅探UDP会话而不更改数据包?最好是一个单行bash命令,虽然短的ruby或python或任何脚本也可以。
答案 0 :(得分:0)
socat -x "udp-listen:$port" "udp:$server:$host" 2> logfile