通过EC2远程端口转发不起作用,虽然地址正在使用

我有一台远程机器运行一个服务器,我想在本地访问。 不过,我只能SSH进入机器,不能使用任何其他端口

我启动了Amazon EC2实例并打开了所有的端口。 计划是build立从机器到ec2实例的远程隧道。

在远程计算机上,服务器正在工作:

$ links http://localhost:5555/foobs 

这会正确访问foobs页面。 在EC2上,如果服务器托pipe在那里,我可以访问端口5555:

 $ echo really > index.html $ python -m SimpleHTTPServer 5555 Serving HTTP on 0.0.0.0 port 5555 ... 

然后,从我的本地浏览器: http : //ec2-xx-xx-xx-xx.compute-1.amazonaws.com : 5555/给我的“真正的”页面。

但是,如果我做端口转发,从机器:

 $ ssh -R 5555:ec2-xx-xx-xx-xx.compute-1.amazonaws.com:5555 -i keys/key.pem [email protected] 

然后指向我的浏览器http://ec2-xx-xx-xx-xx.compute-1.amazonaws.com:5555/不会让我的页面。 使用它的应用程序提供ERR_CONNECTION_REFUSED 。 但是,该端口正在使用。 如果从正在进行转发的ssh shell中尝试在相同的端口上运行服务器:

 $ python -m SimpleHTTPServer 5555 ... socket.error: [Errno 98] Address already in use 

是什么赋予了? 我不是最大的networking向导,可能是显而易见的。

从您的本地机器:

 $ ssh -L5555:localhost:5555 [email protected] 

然后,您将可以从本地系统访问远程计算机上的端口5555。 只需将浏览器指向http://localhost:5555/

看起来您需要在Amazon Elastic Load Balancer中为端口5555启用端口转发。您是否在实例前使用了ELB?