如果防火墙在远程系统上,Ping命令不被接受

我正在使用ping命令来了解远程机器是否打开。 但问题是,如果防火墙处于打开状态,并且假定远程计算机已closures,ping命令(ICMP Packect)在远程计算机上将不被接受,因为ping状态返回false。 有没有其他的方法来知道远程机器是否打开防火墙。

根据防火墙configuration,您可以使用TCP SYN ping。

实际上,如果端口正在侦听,您将收到一个ACK,如果没有,则收到一个RST。

存在这样做的各种工具,特别是NMAP

如果防火墙有什么好处,则无法检查。 防火墙的要点是,如果你发送的数据包被拒绝了,那么接收服务器的状态根本就没有任何线索:核心思想就是你无法区分这个情况的

1)服务器不在那里,和

2)防火墙阻止了你。

为了判断远程服务器是否打开,您必须决定服务器将响应的某个端口,并在防火墙中设置适当的位置。

如果另一台计算机在同一局域网上,即使阻塞了ping ,它也应该回答ARP请求。 在这种情况下,你可以尝试使用类似arping东西。 有关维基百科的更多信息 。

在一个更大的networking上,我想不出一个可靠的方式来告诉主机是否在没有合作的情况下。

(没有足够的声誉尚未评论,所以我把这个作为答案)

这是我通常鼓励在所有机器上至less允许几个icmptypes(回声请求,回声回复和超时时间)的原因,因为丢弃ICMP并不是真的隐藏了机器的存在(它可能是机器尽pipe如此),但大多阻碍了监视和networkingdebugging。

如果你对pingflood攻击真的很偏执,那么某种速率限制可能会做(或者只在networking的边界上进行过滤)。

需要注意的是,不回应回应请求不是机器不在那里的标志,通常由最后的路由器用ICMP数据包types3,代码1(主机不可达)回复,所以使机器真正不可见是比看起来更复杂。

至于最初的问题,其中一个nmap扫描通常会完成这个工作(通常是所谓的“tcp ping”扫描)。

我这样做的方法是启动到已知的开放端口的TCP连接。 如果它是一个Web服务器,它将响应端口80(或443)。 积极的回应表明机器还活着。 负面响应表示许多可能的问题之一,例如通过networking的连接,不正确的防火墙configuration,服务中断或机器停机。

如果你正在设置监控,只是想知道什么时候注意机器,只需要依靠一个已知的开放端口。 至less如果它停止响应,你会知道一些事情。

大多数现代防火墙也可以拦截最初的SYN-SYN / ACK-ACK来防止资源耗尽型攻击(即发送大量的SYN,迫使服务器在其连接表中放入一个条目,然后再继续连接 – 使这种types的攻击更加激进,这些连接可能来自欺骗性的IP地址)。

您可能需要打开一个连接,并实际请求数据以确保服务器实际上处于运行状态(当然,caching服务器和其他事情也可能会影响到这一点)。

它是什么types的服务器? 连接types可以与服务器提供的服务相适应。 像nmap( http://nmap.org/ )这样的工具可以请求http标头。

这不是Windows的问题吗? Windows是唯一的延迟足以阻止ping默认情况下的操作系统。

我真的很讨厌这个 我想知道有多less人被networking故障人员浪费了,只是因为ping不起作用。

你可以做一个ARP Ping。 即使防火墙阻止了ICMP ping,ARP Ping也会基本询问是否有人使用特定的IP。 ARP用于确保没有IP冲突,所以机器必须响应。 一旦这样的工具在这里 。