在此之前,我已经阅读了大约30多个StackOverflow答案,但似乎都没有解决我对此问题的特殊偏见。在下面,我列出了在寻求更多建议之前我已经尝试过的所有答案。
我试图通过fsockopen从另一台计算机通过PHP中的套接字访问我的ec2实例,指向我的ec2公共IP(我有一个弹性固定IP地址54.68.166.28)和指定的端口。
行为:我可以直接通过浏览器上的公共IP访问实例和从实例内部运行的ChatScript应用程序。但是,如果我在针对我实例IP地址的外部机器上使用完全相同的套接字调用来运行完全相同的网页(再次检查它是否是正确的),则在端口1024上进行连接时会出现500 Internal Server Error(对于我的自定义TCP连接) ),在端口443(HTTPS)上再添加500个。在端口80(HTTP)上,它挂起20+秒,然后为我提供200的成功状态,除非它无法正确连接到应用程序并且什么都不响应。
故障排除: 我已经设置了安全组规则,可以从任何地方接受传入的TCP: HTTP(80)TCP 80 0.0.0.0/0 HTTP(80)TCP 80 :: / 0 HTTPS(443)TCP 443 0.0.0.0/0 HTTPS(443)TCP 443 :: / 0 自定义(1024)TCP 1024 0.0.0.0/0 自定义(1024)TCP 1024 :: / 0
出站规则的端口范围为0-65535,目标地址为0.0.0.0/0,因此应该可以使用。
我每次都在没有问题的情况下向22端口的ssh SSH,SCP也可以正常工作。 检查$ sudo服务httpd状态:正在运行,这就是为什么我的UI可以在那里正常显示的原因。 检查$ sudo / sbin / iptables -L,我所有的策略都设置为ACCEPT,没有规则 检查$ netstat --listen -p,我定位的应用程序正在侦听端口0.0.0.0.0:1024。 已选中的网络实用程序以及端口80和1024被注册为打开状态。端口443不是。 Ping对其中任何一个都不起作用,数据包丢失率为100%。
检查我的实例是否与具有所有权限的安全组相关联-确实如此。 IP显然是正确的,或者我既不能SSH也不能提供网页...我可以。
我停止并重新启动了实例。
我替换了实例。
我认为这是在寻求帮助之前的尽职调查……现在我需要它!
答案 0 :(得分:0)
我意识到我的配置是正确的:问题是我用于GUI的托管域(与大多数托管域一样)没有打开自定义端口,因此tcp无法正常工作。