我正在开发一个应用程序,它将使用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端做些什么才能让这个端口对外开放?
答案 0 :(得分:0)
隧道命令是正确的,但是为了使SSH绑定到通配符地址,远程服务器上的/etc/ssh/sshd_config
需要以下设置:
GatewayPorts yes
添加完成后,重新启动sshd
,隧道将按照需要运行,前提是没有防火墙。