我有一个在 EC2 AWS 服务器上运行的 ubuntu 服务器。我正在测试一个设置为监听端口 9000 的 hello world Nodejs 应用程序。如果我使用 AWS 控制台中的 GUI 打开传入的 9000 TCP 端口,则应用程序运行良好。但是,如果我尝试使用下面显示的命令行序列,它将不允许连接。
须藤
ufw 允许 9000/tcp
ufw 允许 22/tcp
ufw 允许 80/tcp
ufw 允许 8080/tcp
ufw 允许 443/tcp
ufw启用
ufw状态
我在我的 AWS EC2 实例中执行任何安全组操作之前运行了这些,但没有运气。我正在做一个学校项目,我们只能通过 SSH CLI 访问 EC2,所以如果可能的话,我想尝试通过 CLI 打开端口。提前感谢您的帮助
最佳答案
如果 AWS 控制台中的 GUI 是指安全组,那么您应该知道它没有配置 ufw
.相反,安全组修改 AWS 网络设备(分配给您的网络的路由器或交换机或防火墙设备)中的防火墙规则。在某些情况下,您需要同时配置 ufw
和 AWS 安全组允许访问,尤其是当您使用具有限制性默认防火墙的发行版时(Debian 和扩展 Ubuntu 默认情况下不启用防火墙)。
如果您想从命令行或脚本中配置安全组,您需要使用 aws cli .安装 aws cli 后,您可以执行以下操作:
aws ec2 authorize-security-group-ingress --group-id $group_id --protocol tcp --port 9000 --cidr 0.0.0.0/0
请注意,aws cli 的作用与转到浏览器并在控制台中配置安全组相同,但通过 API。因此,安装 aws cli 的位置并不重要。您无需在 EC2 实例上安装它。您可以将它安装在您的个人 Windows 或 Linux 或 Mac 机器上。如果您有兴趣,甚至可以在 Android 和 iOS 上安装一个应用程序来配置安全组。
关于node.js - Ubuntu EC2 端口开放问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63212113/