我的同事有一台旧 Mac,需要在 Windows 上测试一些东西。他的 Mac 性能不够强大,无法运行虚拟机,所以他需要我拥有的那些。我有几个虚拟机符合他的需求。
我想到的解决方案是我托管虚拟机,他通过 RDP 连接到虚拟机。如果你有更简单的解决方案,我愿意听。不,我们(目前)没有本地服务器可以在无头模式下运行虚拟机(那就太好了)。
我使用 VirtualBox 4.2.12,托管在 Windows 7 Pro 上。我使用的 VM 是从http://www.modern.ie;现在我正在尝试使用 Windows 7 Enterprise。VirtualBox
附加组件安装在客户操作系统上;我甚至重新安装了它们,以防万一。
在虚拟机的配置中,在“显示/远程访问”选项卡中,我选中了“启用服务器”,端口 3390,无身份验证,允许多个连接。我还尝试了各种随机端口,结果相同
在“网络”选项卡中,我尝试了 NAT 和桥接:
- 当我使用“NAT”时,当我尝试
m.y.i.p:3390
使用mstsc进行连接时,我收到一条消息:Your computer could not connect to another console session on the remote computer because you already have a console session in progress
。我在Google上找不到有关此错误的更多信息,而且我找到的任何方法都不起作用,例如这里。 - 当我使用“桥接”时,当您尝试使用 VM 的 IP 连接到不存在或已禁用 RDP 的计算机时,我会收到一条经典消息,即使我已禁用 VM 中的防火墙。
客户机和主机操作系统上的防火墙均已被禁用。
您知道如何远程访问这些虚拟机吗?
谢谢
答案1
我发现了一个不太友好但有效的解决方案:
在虚拟机的设置中:
- 将 RDP 端口设置为任意值(适用于 5030)
- 将网络访问设置为 NAT
- 转到网络 > 高级 > 端口重定向,添加以下行:
RDP ; TCP ; host's IP ; 5030 ; 10.0.2.15 ; 3389
如果要连接另一台计算机,主机的 IP 必须是实际主机的 IP;如果要在主机上连接,则主机的 IP 必须是 127.0.0.1。
我的虚拟机似乎都具有 10.0.2.15 作为 IP,但这可能是巧合。如果它不起作用,请检查一下。
在客户操作系统上,检查 RDP 是否已启用:在 Win7 上,右键单击计算机 > 属性 > 远程设置(在左侧面板上)> 允许连接(我使用了“不太安全”的连接)
在 modern.ie 上下载的虚拟机具有“自动登录”功能,该功能总体上很不错,但在这种情况下很烦人(它们可能会阻止您登录)。在 Win7 上,运行“netplwiz”并选中“用户必须输入用户名和密码”。可以找到用户的密码这里(它是Passw0rd!
)
答案2
上述答案(由cosmo0
)应该可以解决问题,除非您需要经过身份验证的连接。对于身份验证,请external
选择 虚拟机设置 > 显示 > 远程显示 > 身份验证方法。然后在 RDP 客户端中按显示选项并勾选允许我保存凭证. 按下连接,它会提示您登录/密码对话框。
如果此方法对您不起作用,请按如下方式创建 RDP 用户。找到VBoxManage.exe
命令行工具(在我的情况下是C:\Program Files\Oracle\VirtualBox\
),并在 VM 关闭时执行以下命令:
VBoxManage internalcommands passwordhash "your_password"
您将在此处获得哈希值。复制它。然后继续:
VBoxManage setproperty vrdeauthlibrary "VBoxAuthSimple"
VBoxManage modifyvm "your_VM_name" --vrdeauthtype external
VBoxManage setextradata "your_VM_name" "VBoxAuthSimple/users/your_username"
your_hash
这样,您便可以创建一个可以正常工作的 RDP 用户。注意,此用户与客户机或主机操作系统中的任何现有用户无关,它仅适用于 VirtualBox。
答案3
这应该无需在虚拟机上运行服务器即可工作。您正在连接的是 VirtualBox 的服务器。
没必要以无头方式启动。
如果您已为“客户端”启用 RDP,请使用不同的端口。请允许多个屏幕。