我有一台远程机器运行一个服务器,我想在本地访问。 不过,我只能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?