当我将应用程序部署到AWS(更精确地说,基于EC2的Elastic Beanstalk)时,遇到了一些奇怪的问题。 我们使用的VOIP提供的地址是vh1107.ipex.cz 。 应用程序在本地主机上正常工作(即使在不同的主机上),但在AWS上无法连接到这个地址。 当我login到实例时,我也无法ping通它,但是它可以ping任何我试过的networking地址。 那么这里有什么问题? 这个地址可以在某个AWS黑名单上吗?
编辑
对不起,我把我的问题写错了。 我知道HTTP和ICMP之间的区别,但是我可以从我自己的机器ping它,所以这意味着服务器侦听ICMP和问题在AWS。 任何HTTP客户端也是如此,例如curl vh1107.ipex.cz/calls -v在我的机器上运行良好,但请求在AWS上挂起。 我们以前的托pipe也可以到达服务器。
该服务器不响应ping请求。 Ping使用许多服务器在防火墙上阻塞的ICMP。
更多的背景:ping运行在ICMP上( 阅读本文 ),这与http / https运行的TCP协议不同并且是分开的。
一个网站通常几乎没有什么可以让人们ping通,而且任何方式让用户访问您的网站或服务器都会带来风险。 我不允许ICMP进入我的服务器,除了从一个指定的IP地址。 因为它们是独立的协议,所以很容易在防火墙上阻止ICMP。 这就是为什么你不能ping一些服务器。
更新
根据我们在评论中的对话,我可以validation服务器拒绝一些基于位置的连接。 从捷克共和国我可以连接(虽然URL是无效的),从新西兰或美国我无法连接。
我想你需要一个不同的提供者,一个VPN或者来自提供者的合作。
您是否查看了您的Elastic Beanstalk应用程序正在使用的安全组? 您需要确保安全组允许正确的stream量入站。 这里是来自AWS Doumentation的摘录:
附加到您的实例的安全组决定允许哪些stream量到达实例(入口),哪些stream量允许离开实例(出口)。 Elastic Beanstalk创build一个安全组,允许HTTP(80)和HTTPS(443)的标准端口上的负载均衡器的stream量。 您可以指定您创build的其他安全组,以允许其他端口或其他来源的stream量。 例如,您可以创build一个SSH访问安全组,允许来自受限制的IP地址范围的端口22上的入口,或者为了额外的安全性,从只有您有权访问的堡垒主机。