首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在AWS上向世界开放一个港口

在AWS上向世界开放一个港口
EN

Stack Overflow用户
提问于 2022-10-09 23:43:43
回答 1查看 98关注 0票数 0

我在通过TCP从internet访问在码头容器(端口5005)中运行的服务时遇到了问题。

服务器是一个ubuntu ec2实例,在安全组中打开端口5005 ( v4和v6寻址)。

码头进程运行良好,似乎将端口从其容器内映射到ec2实例。

代码语言:javascript
复制
ubuntu@ip-172-31-5-89:~$ docker ps
CONTAINER ID   IMAGE                   COMMAND                  CREATED          STATUS          PORTS                                       NAMES
71e620ea2969   rasa/rasa-sdk:latest    "./entrypoint.sh sta…"   15 minutes ago   Up 15 minutes   0.0.0.0:5055->5055/tcp, :::5055->5055/tcp   emma_action_server_1
533010182ca7   rasa/rasa:latest-full   "rasa run --enable-a…"   15 minutes ago   Up 15 minutes   0.0.0.0:5005->5005/tcp, :::5005->5005/tcp   emma_rasa_1

(是的,5005和5055都是有效的端口,而不是一个错误--但只有5005应该公开给ec2实例,并通过防火墙向web公开。ufw似乎在向港口发出信号。

代码语言:javascript
复制
Status: active

To                         Action      From
--                         ------      ----
5005/tcp                   ALLOW       Anywhere                  
5005                       ALLOW       Anywhere                  
22                         ALLOW       Anywhere                  
5005/tcp (v6)              ALLOW       Anywhere (v6)             
5005 (v6)                  ALLOW       Anywhere (v6)             
22 (v6)                    ALLOW       Anywhere (v6)      

ec2实例似乎很好地侦听:

代码语言:javascript
复制
ubuntu@ip-172-31-5-89:~$ sudo netstat -plunta | grep LISTEN
tcp        0      0 127.0.0.53:53           0.0.0.0:*               LISTEN      561/systemd-resolve 
tcp        0      0 0.0.0.0:5055            0.0.0.0:*               LISTEN      6473/docker-proxy   
tcp        0      0 0.0.0.0:5005            0.0.0.0:*               LISTEN      6451/docker-proxy   
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      810/sshd: /usr/sbin 
tcp6       0      0 :::5055                 :::*                    LISTEN      6480/docker-proxy   
tcp6       0      0 :::5005                 :::*                    LISTEN      6458/docker-proxy   
tcp6       0      0 :::22                   :::*                    LISTEN      810/sshd: /usr/sbin 

然而,当我尝试在任何在线端口检查工具上访问public.IP.address:5005时,它说端口关闭了。当我试图通过邮递员发出一个帖子请求-我得到ETIMEDOUT,我不确定这是不是另一种方式来表示它关闭,或事实上,它只是一个超时.但是,当我在服务器上发出相同的POST请求时,使用本地地址,它可以正常工作。

它在ec2 (容器外)上本地工作:

代码语言:javascript
复制
curl -XPOST localhost:5005/webhooks/rest/webhook -d '{"message":"hi"}'

这是行不通的- ETIMEOUT:

代码语言:javascript
复制
curl -XPOST publicIPAddressHere:5005/webhooks/rest/webhook -d '{"message":"hi"}'

ACL和Network的设置也是正确的。

当我运行可达性分析器时,它可以工作--但这显然来自网络内部的私有IP地址.172..。所以这个问题显然是把港口暴露在世界面前。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-10-12 20:13:46

我能够通过在自己的VPC/ACL上创建一个新的ec2实例来实现这一点,其配置与上面的配置相同。

这并不是一个真正的答案,因为它是一个在系统中工作的捣蛋鬼。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74009120

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档