我有一台运行服务器的远程机器,我想在本地访问它。但是,我只能通过 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
是什么赋予了?我不是最大的网络奇才,这可能很明显。
从您的本地机器:
然后,您将可以从本地系统访问远程计算机上的端口 5555。只需将浏览器指向
http://localhost:5555/
看起来您需要在 Amazon Elastic Load Balancer 中为端口 5555 启用端口转发。您是否在实例前面使用 ELB?