VirtualBox下如何从Ubuntu宿主机打开并控制客户机终端,同时解决图形窗口显示问题
VirtualBox下如何从Ubuntu宿主机打开并控制客户机终端,同时解决图形窗口显示问题
我完全懂你的需求——不想把宿主机的终端当成客户机的终端来用,而是要直接调出客户机自己的终端窗口,还要能正常显示多窗口的图形模拟器。结合你已经配置了NAT端口转发(2200转22)的情况,给你几个实用的方案,都不用装太复杂的东西:
方案一:用SSH X11转发直接调出客户机终端(最省事)
你已经在用ssh -X连接,但图形程序显示不了,大概率是客户机缺了X11认证工具,或者转发权限不够。按下面步骤来:
- 先在客户机里安装
xauth:sudo apt install xauth - 宿主机这边确保X Server在运行(Ubuntu桌面版默认是开启的),然后用更宽松的转发参数连接:
ssh -Y -p 2200 name@localhost - 连接成功后,直接在这个SSH会话里输入客户机桌面环境的终端命令,比如GNOME桌面用
gnome-terminal,XFCE用xfce4-terminal,回车后宿主机上就会弹出客户机的原生终端窗口! - 之后在这个弹出的终端里启动你的模拟器,图形窗口就能正常显示了——本质上是把客户机的终端和图形程序通过X11转发投射到宿主机上,完全符合你想要的“打开客户机终端”的效果。
方案二:用VirtualBox自带的VRDP远程桌面(原生完整体验)
如果需要完整操作客户机的桌面环境,VirtualBox自带的远程桌面功能最省心,不用在客户机额外装服务器:
- 打开VirtualBox,选中你的Ubuntu客户机,点击「设置」→「显示」→「远程显示」
- 勾选「启用服务器」,可以保留默认端口3389,或者自定义一个(比如3390)避免冲突,然后点击确定
- 启动客户机,宿主机打开Remmina(Ubuntu桌面版自带,没有的话装
sudo apt install remmina),新建连接选择「RDP」协议,地址填localhost:3389(改了端口就填对应的),输入客户机的用户名密码,连接后就能看到完整的客户机桌面,直接打开终端运行程序就行。
方案三:轻量VNC方案(资源占用更低)
如果你的宿主机或客户机资源有限,轻量VNC是更好的选择:
- 客户机安装
tightvncserver:sudo apt install tightvncserver - 第一次运行
vncserver,按提示设置VNC连接密码,然后启动一个桌面会话:vncserver :1(这里的:1对应端口5901) - 回到VirtualBox的客户机设置,在「网络」→「端口转发」里新增一条:宿主机端口填5901,客户机端口填5901
- 宿主机打开自带的
vinagre(或者装tightvncviewer),连接地址填localhost:5901,输入刚才设置的密码,就能看到客户机的桌面,直接操作终端和图形程序。
备注:内容来源于stack exchange,提问作者Luca Pizzuto
相关产品推荐
相关产品推荐

