0

我正在开发一个应用程序,它将使用AWS的SNS服务通过HTTP接收通知。通过ssh隧道传输HTTP时的封闭端口

正如我在本地开发的应用程序,并没有我们公司的防火墙的控制,我试图隧道HTTP连接从外部EC2主机我的本地机器进行测试的目的。外部检查时,检验从EC2主机本身的连接时,然而端口关闭

一切都看起来不错。

我的本地应用程序是在端口2222我已执行我的本地机器上运行以下命令来建立代理:

ssh -i myCredentials.pem [email protected] -R 2222:localhost:2222 

myserver.com指向一个EC2实例。 SSH'ing到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和iptables没有在服务器上运行的端口2222的TCP流量。

我需要做什么对EC2做到底,使这个口通向外面的世界?

+0

编辑您的安全配置文件? –

+0

安全组已经从端口2222接受来自0.0.0.0/0的入站TCP通信。 – nullPainter

+0

对不起,一定跳过了那部分。如果您启动另一个EC2可能是现货实例,它是否打开? –

回答

0

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

GatewayPorts yes 

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