0

我正在开发一个应用程序,它将使用 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 端做什么才能使这个端口对外开放?

4

1 回答 1

0

隧道命令是正确的,但是为了使 SSH 绑定到通配符地址,/etc/ssh/sshd_config远程服务器上需要以下设置:

GatewayPorts yes

添加后,重新启动sshd,如果没有防火墙阻碍,隧道将按需要工作。

于 2013-12-13T05:44:03.017 回答