可以ping一个IP,但不显示在netstat?

我想知道是否有人能够帮助我头部的抓手。 我们有一个设备已经与我们的服务器进行通信,但没有发回任何数据。

我能ping通ping的IP地址,但是当我在机器上执行netstat时,IP地址没有列出。

为什么会这样? IP地址如何可以ping通但不能连接? 有没有其他工具可以帮助我诊断这个问题?

更新:

对不起,使用下面的评论。 我没有意识到我可以编辑我自己的post!

EightBitTony,我想我会看到你在说:“netstat -a显示连接的机器,而不是每个机器的IP地址”。

这个分站设备唯一的工作就是上网并发送数据到我们的服务器。 设备的IP地址是:10.113.201.155,它应该连接的端口号是:6102。

当我做一个netstat,我期待它被连接到这个端口号(6102),但它不是。 6102是服务器软件侦听的端口。

这个分站在过去的两天里还没有发回任何数据,这是我们正在经历的问题,但它是可以ping通的,表明它是在线的。 不幸的是,这个设备不在办公室,我可以简单地重置它。

我们将不得不派遣一个维护团队,但我想更好地了解正在发生的事情以及为什么会发生这种情况。

我有另一个问题。 如果外站联机但不绑定到端口6102将不显示在netstat? 我想我知道答案在这里(不)。

更新2:

谢谢EightBitTony。 你已经完全向我解释,我明白你的意思。 在阅读你的答案后,我相信应用程序在某种程度上在该机器上失败,并处于某种崩溃的状态。

我试图“提出”你的答案,但没有足够的代表点!

您可以ping任何networking路由和防火墙允许的任何IP地址,但这并不意味着它已连接到您的计算机,所以不会显示在netstat中。

Netstat显示哪个TCP端口有活动的连接(即连接的机器,不只是可能用于连接的机器)。 Ping使用ICMP(有时是UDP),不依赖于TCP端口。

在你的情况下,这听起来像应用程序没有连接,但操作系统仍然在运行,所以你可以ping机器(因为这是操作系统响应),但应用程序无法连接到您的服务器,因为它不是运行,还是因为它有其他问题。

如果您无法远程连接并login以检查应用程序,则需要将某人发送给该应用程序。

你也问,

我有另一个问题。 如果外站联机但不绑定到端口6102将不显示在netstat? 我想我知道这里的答案。

我们不知道这个“外站”运行的是什么操作系统或应用程序,但它是连接到端口的应用程序,但它是操作系统(或者说是这些操作系统的组件),它们可以启动和pipe理networking。 所以,如果你的应用程序连接,是的,你会看到它。 但是,如果外站启动并启动networking,它将不会执行任何操作,直到正在运行的应用程序尝试执行任何操作,如果它崩溃,那么您将不会看到任何内容。 networking和应用程序是分开的。

最后一个例子,假设您的计算机可以连接到互联网,您可以ping www.google.com但这并不意味着www.google.com曾尝试连接到您的计算机。

你用什么选项netstat? 如果您想捕获ICMPstream量,则需要将-p icmp添加到您的命令行。 你可能在你的netstat输出中看不到设备的地址(EightBitTony的答案告诉你为什么),但是如果两台主机之间的通信成功,那么它的IP地址应该在服务器的ARPcaching中; 一个快速的arp -a会告诉你,假设两个主机在同一个子网。

您也可以通过使用Wireshark或类似的东西来获取更多有用的信息,从设备上获取到达服务器的应用程序stream量。