在本地端口上嗅探UDP数据包


12

我想知道一个应用程序“ APM Planner”发送给另一个“ MAVProxy”的数据包的内容。我知道他们正在通过UDP端口14550进行通信。我通过运行以下命令尝试使用tcpdump

tcpdump -u port 14550

tcpdump udp

netstat -uanpc | grep 14550

但是没有一个向我展示这两个应用程序真正交换了什么。我需要像cutecom这样的工具来监视UDP连接。有没有这样的东西?当我运行命令

netstat -lnpuc

,它在输出中显示以下内容

udp 5376 0 0.0.0.0:14550 0.0.0.0:* 23598/apmplanner2 

您是否考虑过称为的GUI程序wireshark?它将剖析数据包,并向您显示每个数据包发送的信息,然后您可以使用udp.port == 14550或类似的过滤命令来仅显示该流量。问题是,您将不得不根据数据包的内容拼凑来回的内容。但这听起来似乎是您最终想做的事情...((lo如果这样做,只需嗅探接口-这是系统内部的“本地” 127。*。*。*范围和本地IPv6))
Thomas Ward

谢谢你的评论。我安装了Wireshark并输入udp.port == 14550Apply a display filter文件,但是什么也没出现。我也在udp port 14550Enter a capture filter领域尝试过。同样,当我运行命令时netstat -lnpuc,它在输出中显示以下内容udp 5376 0 0.0.0.0:14550 0.0.0.0:* 23598/apmplanner2
Salahuddin Ahmed'May

在我看来,不一定是在本地听。您是否尝试过在其他接口上进行跟踪以查看其是否在出站通信?
托马斯·沃德

1
现在可以了。我不得不wiresharksudo。非常感谢
Salahuddin Ahmed'May

Answers:


17

tcpdump支持UDP捕获。用法示例:

tcpdump -n udp port 14550

编辑

由于您的应用程序正在与lo接口通信,因此必须指定如下接口:

tcpdump -i lo -n udp port 14550

此命令仅打印标题。如果要以十六进制和ASCII格式打印数据包的数据部分,请使用以下命令:

tcpdump -i lo -n udp port 14550 -X

或者,如果您要将数据包保存到文件中并在Wireshark中查看其内容,请使用以下命令:

tcpdump -i lo -n udp port 14550 -w packets.pcap

我尝试了此命令,但没有捕获数据包。它输出以下内容listening on wlo1, link-type EN10MB (Ethernet), capture size 262144 bytes,无其他内容!
Salahuddin Ahmed'5

@SalahuddinAshraf我将其修复:)
Ghasem Pahlavan

谢谢,它现在正在工作。它显示传输数据的源,目的地和长度。是否可以使其显示传输的数据本身?
Salahuddin Ahmed'5

@SalahuddinAshraf是的。您必须-A 在tcpdump后面附加选项才能查看数据。您也可以将数据包发送到文件中,并在Wireshark中查看数据包作者-w packets.pcap
Ghasem Pahlavan,2015年

帕尔万,太好了。现在我可以看到数据了。是否可以使数据以十六进制显示?非常感谢
Salahuddin Ahmed'May

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.