Windows 7上的VirtualBox端口转发无法正常工作

时间:2015-04-20 10:13:04

标签: ssh virtualbox portforwarding

Windows 7上的VirtualBox端口转发无法正常工作

我试图通过端口转发从我的Windows 7主机ssh到我的VirtualBox,但是VirtualBox不会打开端口进行监听。我可以通过打开VirtualBox GUI并通过该终端导航来连接它,但我无法通过主机上的标准ssh客户端进行连接。我希望能够在我的主机上的2222端口ssh给客人。

这是我的设置:

Host: Window 7 SP1
Guest: Ubunto Ubuntu 12.04
VirutalBox: 4.3.26
Host Processor: Intel Core i7 920

将来宾计算机配置为NAT,并为主机端口2222的127.0.0.1启用端口转发到来宾端口22。

来宾ifconfig的输出:

eth0    inet addr:10.0.2.15 Bcast:10.0.2.255 Mask: 255.255.255.0

来宾ps -ef | grep sshd的输出:

root    625 1   0   12:27   ?   00:00:00    /usr/sbin/sshd -D

来宾netstat -ant | grep 22的输出:

tcp     0   0   0.0.0.0:22  0.0.0.0:*
tcp6    0   0   :::22       :::*

但是在主持人上,netstat -ant | grep 2222没有显示任何内容。

在VBox.log中我有这个:

00:00:03.413790 NAT: set redirect TCP host 127.0.0.1:2222 => guest 10.0.2.15:22
00:00:03.424301 supR3HardenedErrorV: supR3HardenedScreenImage/LdrLoadDll: rc=VERR_LDRVI_UNSUPPORTED_ARCH fImage=1 fProtect=0x0 fAccess=0x0 \Device\HarddiskVolume2\Windows\mfnspstd64.dll: WinVerifyTrust failed with hrc=Unknown Status 0x800B0101 on '\Device\HarddiskVolume2\Windows\mfnspstd64.dll'
00:00:03.424422 supR3HardenedErrorV: supR3HardenedMonitor_LdrLoadDll: rejecting 'C:\Windows\mfnspstd64.dll' (C:\Windows\mfnspstd64.dll): rcNt=0xc0000190
00:00:03.424476 NAT: failed to redirect TCP 127.0.0.1:2222 => 10.0.2.15:22

最后一行看起来像嫌疑人但是没有任何关于它为什么无法重定向的线索。我已尝试过各种其他帖子和论坛中的所有内容,但无法让它在主机上的任何端口上收听:

  • 关闭防火墙
  • 更改了端口
  • 在BIOS上启用VT-X
  • 已禁用Hyper-V
  • 尝试了许多不同版本的VirtualBox

非常感谢任何帮助。使用OS-X在我的Mac Book上正常工作。

3 个答案:

答案 0 :(得分:2)

您是否在机器设置中设置转发?

  1. 要在VirtualBox中转发端口,请先通过选择菜单中的“设置”选项打开虚拟机的设置窗口。

  2. 在虚拟机的配置窗口中选择“网络”窗格,展开“高级”部分,然后单击“端口转发”按钮。请注意,此按钮仅在您使用NAT网络类型时才处于活动状态 - 如果您正在使用NAT,则只需转发端口。

  3. 使用VirtualBox的“端口转发规则”窗口转发端口。您不必指定任何IP地址 - 这两个字段是可选的。

  4. 此处:http://www.howtogeek.com/122641/how-to-forward-ports-to-a-virtual-machine-and-use-it-as-a-server/

答案 1 :(得分:0)

我使用this article SSH进入我的Raspberry pi3 VM。

使用此命令ssh -p 2222 pi@localhost

最初,我一直尝试使用ssh pi@10.0.2.x -p 2222,但是它不起作用,并一直返回“连接超时”。我的端口号是2222,但是您的端口号可能会有所不同,具体取决于您在VirtualBox中设置的端口号。

我在Debian Raspberry Pi VM(VirtualBox)中使用Windows 10。

答案 2 :(得分:0)

我在hypernode-vagrant issue中找到了解决方案:VirtualBox无法在Vagrant的标准端口2222上建立SSH的端口转发,但是可以使用更高的端口。在该问题中,端口> = 4000起作用,而端口<= 3500将失败。在运行Windows 10的计算机上,我发现2380是可以为其建立TCP重定向的第一个端口。

可以通过在Vagrantfile中添加以下行来更改用于转发的主机上的端口(在该端口中,您可能必须用更大的数字替换4000):

config.vm.network :forwarded_port, guest: 22, host: 2222, disabled: true
config.vm.network :forwarded_port, guest: 22, host: 4000, id: "ssh"

我不知道此行为的根本原因是什么样的,但到目前为止,解决方法一直在可靠地起作用。