尽管地址正在使用中,但通过 EC2 进行远程端口转发不起作用

尽管地址正在使用中,但通过 EC2 进行远程端口转发不起作用

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

我启动了一个 Amazon EC2 实例并打开了它的所有端口。计划是从该机器到 EC2 实例建立一条远程隧道。

在远程机器上,服务器正在运行:

$ links http://localhost:5555/foobs

这样就可以foobs正确访问页面了。在 EC2 上,如果服务器托管在那里,我可以访问端口 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

怎么回事?显然,我并不是网络方面的专家。

答案1

从本地机器:

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

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

答案2

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

相关内容