我有一个天线座。看起来像这样的东西(只是其中之一)。最终基座将连接一个碟形天线。
这个底座有两个电机,可以水平和垂直旋转盘子。每个电机都有一个 IP 地址。为了便于讨论,我们假设它们是 10.10.10.161 和 10.10.10.162
制造基座的公司(无法透露)提供了一个 Windows 应用程序,用于通过以太网与基座通信(发送 UDP 数据包)。
我们尝试从 Windows ping 两个电机,没有出现任何问题。然而,当我们从 Linux 对电机执行 ping 操作时,没有任何响应。
我们尝试在网上查找可能出现的问题,但没有找到任何合理的答案。更糟糕的是,我们的项目经理不允许我们联系基座制造商。我们必须先找到问题的解释,然后才能让制造商知道问题所在。
以前有人遇到过这种类型的问题吗(可以从 Windows ping 通,但无法从 Linux ping 通)?如果是,那么哇,您解决了这个问题吗?我们还缺少什么?
最佳答案
以下是 Windows 与 Linux ping
命令之间差异的说明。
注释:
- Linux 系统 = 192.168.1.201
- Windows 系统 = 192.168.1.7
- 下面的输出来自
tcpdump
数据包捕获
从 Windows 执行 ping 操作时:
18:21:38.740379 IP 192.168.1.7 > 192.168.1.201: ICMP echo request, id 1, seq 3094, length 40
18:21:38.740433 IP 192.168.1.201 > 192.168.1.7: ICMP echo reply, id 1, seq 3094, length 40
从 Linux 执行 ping 操作时:
18:29:44.152333 IP 192.168.1.201 > 192.168.1.7: ICMP echo request, id 11524, seq 1, length 64
18:29:44.152460 IP 192.168.1.7 > 192.168.1.201: ICMP echo reply, id 11524, seq 1, length 64
id
和 seq
无关紧要。然而,长度
是一个重大差异。
为了使 Linux 在这方面与 Windows 相匹配,您可以指定数据包大小(它设置数据有效负载的大小,其中将在顶部添加 8 个字节的开销)。
这个 Linux 命令:
$ ping 192.168.1.7 -s 32
此数据包捕获结果:
18:30:59.528357 IP 192.168.1.201 > 192.168.1.7: ICMP echo request, id 11569, seq 2, length 40
18:30:59.528522 IP 192.168.1.7 > 192.168.1.201: ICMP echo reply, id 11569, seq 2, length 40
<小时/>
关于nmap
的使用,可以使用-O
标志来启用它的operating system detection feature .
$ nmap -O <target IP>
关于linux - 在 Windows 和 Linux 上与网络设备通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50769785/