'socat' 不显示传入的 UDP 数据包,但 Wireshark 可以显示

'socat' 不显示传入的 UDP 数据包,但 Wireshark 可以显示

该链接是Wireshark 转储包含 UDP 数据包的传入 60 字节以太网帧。数据包有效负载是单个单词“hello”(抱歉,我没有足够的代表直接粘贴图像)。

问题:我无法获取socatnc读取和显示该数据包(这并不完全正确;请参阅下面的#1)。

我按如下方式运行阅读器:

$ socat UDP:192.168.50.129:5000 -

我尝试过各种不同的 UDP 相关地址格式以及这个格式。编写器运行如下:

$ socat READLINE UDP:192.168.50.132:5000

问题:我如何显示这个传入的数据包,最好以单个单词的形式显示hello

不幸的是,存在一些复杂情况:

#1

如果我运行阅读器,那么# socat INTERFACE:ens4f0 -获取传入帧的显示(出于某种原因,它显示了两次)。有一些二进制输出,然后是单词hello。但是,我无法做到这一点,因为最终会有其他进程使用此接口,所以我需要了解发生了什么

#2

传入帧实际上具有一个目标 IP 地址192.168.50.132;防火墙设置为将其转换为192.168.50.129,这是读取器正在监听的地址:

  # iptables -t nat -A PREROUTING -i ens4f0 -j DNAT --to 192.168.50.129

Wireshark 输出显示转换前的传入数据包,因此将目标 IP 地址显示为192.168.50.132。我真的不知道这是否有效 - 我能否socat生成实际看到的十六进制转储ens4f0

#3

这是比较难的一个,但我希望它没有关系。这实际上是一个环回测试:单个帧从 发出ens4f0,由外部硬件环回,并原封不动地返回到ens4f0。NIC 的 IP 地址为192.168.50.129。我有一个ip neigh add命令,它将对 的访问从192.168.50.132路由ens4f0到外部硬件;数据包原封不动地返回,这就是为什么我需要命令iptables将目标 IP 地址转换回ens4f0地址。

相关内容