我正在尝试记录传入的 UDP 流(流的意义是它是连续数据报的流)。
我试过了netcat
,但不幸的是多种来源在相同的端口地址上发送数据,并且nc
不允许您指定源或目标多播地址。
然后我尝试了,tcpdump -w -
因为 tcpdump 有丰富的过滤选项,但它记录了原始流,而我只需要实际数据,这样我就可以像处理流一样处理它。不幸的是,它记录了所有与数据包相关的信息,如源/目标或 IP/UDP 标头。
有办法吗?我可以编写一个小的 C 程序来执行此操作,但我更喜欢使用现有的工具。
答案1
我的第一选择是 wireshark。如果你必须从终端执行此操作,你也可以尝试 ngrep,它提供的输出比 tcpdump 更易读。你可能可以使用简单的 bash 脚本过滤掉标头信息。
答案2
答案3
网状或 iptables +libnetfilter_queue 模块或者 ngrep 可能会做你想做的事。