2

我目前正在使用 Ubuntu 10.04 进行一些 Rails 开发。它在 Windows 7 x64 主机上使用 VirtualBox 作为来宾计算机安装。

在 Ubuntu 中,我试图将多个端口从远程服务器直接连接到来宾操作系统,以避免下载远程数据库。

假设我想将远程服务器上的端口 5000 转发到来宾操作系统上的端口 5000。

我已经使用 VBoxManage.exe 为 Windows 端的端口设置了一个转发器。这会将 HostPort 5000 转发到 GuestPort 5000。

然后在 ubuntu 中运行 ssh -L5000:127.0.0.1:5000。但是,每当我尝试访问“127.0.0.1:5000”时,我都会收到消息“通道 7:打开失败:连接失败:连接被拒绝”

我错过了什么吗?

谢谢您的帮助!

4

3 回答 3

-1

connect failed: Connection refused

This means that you'r not able to connect to 5000 on the remote end.

If you'r only using this connection from within your guest through your SSH tunnel then you don't need the forward from VBoxManager, as this will open op so that outside computers can connect directly to your guest, it won't help your guest connect to the outside.

Are you sure the server you connect (SSH) to is the same server that runs your database? And is the database running on that server?

When you've connected (SSH) to the server, you can try to list what ports are listening for connections or you could try to connect to the database with telnet. To list listeners you can run "netstat -lnt" (-l shows listening, -n is numeric (show IP and port number) and -t is tcp). You should have a line like "tcp 0 0 0.0.0.0:5000 0.0.0.0:* LISTEN" if you have a service listening for TCP on port 5000. To try and connect you can simply do "telnet 127.0.0.1 5000", if you can't connect with telnet from the server then the database ain't listening/allowing your connection, or the server is running on another port or server.

于 2010-10-04T08:17:36.590 回答
-1

SSH 默认使用 TCP 流量,对吗?

只是为了验证一下,VirtualBox 中的 NAT 确实有这些限制(根据用户手册):

用户应注意 NAT 模式的四个限制:

ICMP 协议限制:一些常用的网络调试工具(例如 ping 或 tracerouting)依赖于 ICMP 协议来发送/接收消息。虽然 VirtualBox 2.1 改进了 ICMP 支持(ping 现在应该可以工作),但其他一些工具可能无法可靠地工作。

UDP 广播的接收不可靠:访客不能可靠地接收广播,因为为了节省资源,它只会在访客在特定端口上发送 UDP 数据后侦听一定时间。因此,基于广播的 NetBios 名称解析并不总是有效(但 WINS 总是有效)。作为一种解决方法,您可以在 \server\share 表示法中使用所需服务器的数字 IP。

不支持 GRE 等协议:不支持 TCP 和 UDP 以外的协议。这意味着某些 VPN 产品(例如 Microsoft 的 PPTP)无法使用。还有其他 VPN 产品仅使用 TCP 和 UDP。

无法转发低于 1024 的主机端口:在基于 Unix 的主机(例如 Linux、Solaris、Mac OS X)上,无法从非 root 运行的应用程序绑定到低于 1024 的端口。因此,如果您尝试配置这样的端口转发,VM 将拒绝启动。

于 2010-10-04T15:18:43.097 回答
-1

尝试ssh -L5000:0.0.0.0:5000代替ssh -L5000:127.0.0.1:5000

有一种叫做“回环”的东西,它与 127.0.0.1 纠缠在一起,如果试图从不同的机器访问端口,它会让你感到悲伤。即你的主机。

于 2013-12-10T05:41:34.210 回答