在ssh上隧道传输HTTP时关闭端口

时间:2013-12-13 05:13:27

标签: amazon-web-services ssh amazon-ec2 reverse-proxy amazon-sns

我正在开发一个应用程序,它将使用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

但是,当我从本地计算机对EC2实例运行nmap时,端口已关闭:

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端做些什么才能让这个端口对外开放?

1 个答案:

答案 0 :(得分:0)

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

GatewayPorts yes

添加完成后,重新启动sshd,隧道将按照需要运行,前提是没有防火墙。