我目前有一个EC2实例运行并运行Amazon Linux并使用FileZilla通过SFTP将我的项目(包含React / NodeJS / Express)传输到EC2实例。
对于EC2的安全组,我打开了一个3000端口(协议:tcp,源:0.0.0.0/0),这也是我的Express的定义方式。
所以我对EC2实例进行了攻击并运行了项目的Express,并看到它在终端内监听端口3000。但是,一旦我使用ec2...us-west-1.compute.amazonaws.com:3000
点击公共DNS,它就说无法访问该网站 - ec2 ... us-west-1.compute.amazonaws.com为时已晚,无法回复。
可能是什么问题,如何从这里开始连接呢?
提前感谢您,并将提出/接受答复。
答案 0 :(得分:2)
只需检查您的Node.js服务器是否在EC2实例上运行。
调试:
sudo netstat -tulpn | grep :3000
npm run server --verbose
如果它仍然不起作用并且响应需要很长时间。 这意味着其他一些服务正在同一个端口上运行。
在ec2中试试这个:
sudo killall -9 node
npm run server
使用 IP (54.4.5。*:3000)或 公共DNS ({ {3}})。
希望它会有所帮助:)
答案 1 :(得分:1)
通常,当我们遇到连接问题时,它是基本的或防火墙。我假设您已检查防火墙是否在两端运行,例如。 iptables -L -n。此外,任何协议分析器(如wireshark或tcpdump)都会告诉您端口3000的数据包在哪里可见。
答案 2 :(得分:1)
您可能遇到出站流量问题。您可能位于公司的网络中,无论是物理连接还是VPN输入。在某些情况下,您的VPN不会设置为处理拆分流量,因此您必须遵守公司的出站限制。
在这种情况下,您可能希望使用代理来访问您的网站。在锁定安全组时,请确保使用代理的公共IP(而不是公司的IP)。