我正在开发一个应用程序,它将使用 AWS 的 SNS 服务通过 HTTP 接收通知。
由于我在本地开发应用程序并且无法控制我们公司的防火墙,因此我试图将 HTTP 连接从外部 EC2 主机传输到我的本地计算机以进行测试。
验证来自 EC2 主机本身的连接时,一切看起来都很好,但是在外部检查时端口是关闭的。
我的本地应用程序在端口 2222 上。我在本地机器上执行了以下命令来建立代理:
ssh -i myCredentials.pem ec2-user@myserver.com -R 2222:localhost:2222
myserver.com
指向 EC2 实例的位置。SSH 到 EC2 实例,我可以通过隧道成功连接到我的应用程序,并nmap
显示以下内容:
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00055s latency).
Not shown: 997 closed ports
PORT STATE SERVICE
22/tcp open ssh
25/tcp open smtp
2222/tcp open EtherNet/IP-1
但是,当我nmap
从本地计算机运行 EC2 实例时,端口已关闭:
Nmap scan report for xxxxxx
Host is up (0.24s latency).
Not shown: 998 filtered ports
PORT STATE SERVICE
22/tcp open ssh
2222/tcp closed EtherNet/IP-1
分配给服务器的安全组允许 0.0.0.0/0 上的端口 2222 上的 TCP 流量,并且iptables
未在服务器上运行。
我需要在 EC2 端做什么才能使这个端口对外开放?