扫描 UDP 或所有协议上的一个或所有端口,看看我是否得到了,我应该得到什么

扫描 UDP 或所有协议上的一个或所有端口,看看我是否得到了,我应该得到什么

我有一个 GPS 定位器 (TK102)。我已将其设置为通过 GPRS 向特定 IP 和特定端口发送响应。有人告诉我,它使用 UDP。

看起来某物正在发送(在本地化人员使用的电话号码的连接列表上注册了付费传输),但它没有到达服务器(可能)。

似乎我的侦听器在服务器上运行,没有收到来自本地化程序的任何响应。

侦听器本身工作正常(仅在端口 3333 和 7777 上侦听 UDP),因为我可以从任何其他客户端发送 UDP 数据包,并且它们正在正确捕获并在数据库中注册。我在两个不同的端口上测试了 NetCat 和 UDP 测试工具。一切正常。

我的问题是,是否有任何工具或服务可以在我的服务器上运行来扫描 UDP 或所有协议上的特定或所有端口,以查看我是否从该本地化程序中获取任何内容?换句话说,如果这是本地化器或服务器问题或介于两者之间的任何问题。

顺便说一句:我使用的服务器非常有限(实际上是 NAS 设备),因此我无法运行通常可以在发行版中找到的许多工具或系统命令。

答案1

看来tcp转储是最好的,即使不是唯一的答案。它看起来非常适合这项工作。因为我在 NAS 上使用的 Linux 版本非常有限,所以它不存在。但简单的调用就ipkg install tcpdump解决了问题(希望我之前已经安装了 Optware,因为它也丢失了)。

对于这个特定问题(侦听端口 3333 或 7777 上的 UDP 数据包),要执行的命令是:

tcpdump -i eth0 -n udp port \( 3333 or 7777 \)

其中-i告诉 tcpdump 仅在接口上侦听eth0(执行tcpdump -D以查看特定计算机上 tcpdump 可用的所有适配器)并-n强制 tcpdump 不转换截获数据包的源地址并将其显示为纯 IP。

为了测试,如果我的定位器没有更改使用的端口,我可以调用:

tcpdump -i eth0 -n udp

这导致它侦听 UDP 协议中的任何内容(任何端口)。

替代方案:

tcpdump -i eth0 -n port \( 3333 or 7777 \)

将导致 tcpdump 拦截端口 3333 或 7777 上的任何流量,无论使用哪种协议。

tcpdump仅使用接口参数运行:

 tcpdump -i eth0

或者甚至不带任何参数调用它也会捕获所有的交通即将来到运行tcpdump.但是,如果您可以物理访问它并且可以手动运行程序,那么这很有用。如果您只能进行远程访问并且必须tcpdump通过 SSH 运行,那么您可能就没那么幸运了。 SSH 本身发送了如此多的数据包,即使所有其他服务都关闭,您也可能看不到其中的任何内容”数据包噪声”。

如果您知道源 IP 地址(即机器的远程地址,它将发送您想要捕获的流量),则可以部分解决此问题。有了这个,你可以tcpdump这样限制:

 tcpdump -i eth0 -n src 77.233.177.237

这是一种单向侦听器,它将捕获从该 IP 到您的计算机的所有流量。

替代版本:

tcpdump -i eth0 -n dst 77.233.177.237

让您检查从您的计算机发送到指定 IP 地址的所有“答案”。

最后,执行这个命令:

tcpdump -i eth0 -n host 77.253.175.217

将向您显示在您运行并提到的 IP 的计算机之间交换的所有流量tcpdump,在这种形式下,该 IP 作为源和目的地都受到威胁,因此您会看到“问题”和“答案”。

您还可以tcpdump在您的计算机上使用它来侦听连接到同一网络的其他两台计算机之间交换的流量。由于这太离题了,并且使用程序作为真正的嗅探器,也许会做一些坏事,所以我不会给你正确的执行命令。请参阅我使用的资源或在互联网上搜索。

资料来源:

  1. http://www.softpanorama.org/Net/Sniffers/tcpdump.shtml
  2. http://linux.byexamples.com/archives/283/simple-usage-of-tcpdump/
  3. http://kmaiti.blogspot.com/2011/01/hot-to-use-tcpdump-command-to-capture.html
  4. http://openmaniak.com/tcpdump.php
  5. http://danielmiessler.com/study/tcpdump/

相关内容