1. 前言
《Linux下使用VirtualBox》一文中,使用命令行操作virtualbox,有很多不方便的地方,比如创建虚拟机就很麻烦。
能不能在远程linux使用VirtualBox的时候,通过图形界面使用呢?可以的。
要远程使用图形界面,服务端需要安装vncserver,客户端需要安装vncclient。
参考文档:
2. xfce4桌面
参考文档Ubuntu如何安装vncserver。
1、安装xfce4桌面系统(twm桌面)
apt-get install xfce4
xfce4桌面系统非常简单,界面只有一个灰色背景加上一个shell窗口。
2、安装vnc4server和xrdp
1
| apt-get install -y vnc4server xrdp
|
VNC4Server 是一个基于 VNC(Virtual Network Computing)协议的远程桌面服务器软件,它允许用户通过 VNC 客户端在远程计算机上查看和操作图形界面。VNC4Server 通过在远程计算机上创建虚拟显示设备并将图形渲染传输到客户端来实现远程桌面功能。
XRDP 是一种远程桌面协议,它允许用户通过 Microsoft 的 RDP(Remote Desktop Protocol)协议访问远程计算机的桌面。XRDP 提供了在 Linux 系统上实现 RDP 功能的方式。
XRDP 与 VNC4Server 结合使用,以在 Linux 系统上提供远程桌面访问。通常的配置是,XRDP 充当 RDP 服务器,接受来自 Windows 或其他 RDP 客户端的连接请求,并将这些连接请求转发到 VNC4Server。VNC4Server 在远程 Linux 计算机上运行,负责处理图形界面渲染,并将渲染的结果传输回 RDP 客户端。这样,用户可以使用 RDP 客户端连接到远程 Linux 计算机并在其中运行图形应用程序。
3、配置默认使用xfce4作为登录界面
1
| echo "xfce4-session" >~/.xsession
|
4、重启xrdp
5、启动vncserver
根据提示设置远程密码,默认放在/root/.vnc/passwd中,同时生成/root/.vnc/xstartup。
其中:1
表示在5900的基础上加1,就是vnc端口。
xstartup内容为:
1 2 3 4 5 6 7 8 9 10 11 12
| #!/bin/sh
[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup [ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources xsetroot -solid grey vncconfig -iconic & x-terminal-emulator -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" & x-window-manager &
|
6、本地打开vncviewer client,输入ip:5901
进行连接。连接成功后发现,桌面是灰色背景,桌面上只有一个shell。这就是传说中的twm界面。

7、启动virtualbox
在shell中,输入virtualbox
至此,就能愉快地使用virtualbox图形界面了。
3. gnome桌面
上面的xfce4桌面,可以满足我们使用virtualbox的需求。
但是,这款桌面实在太简单了,快捷键只能切换窗口(Alt+Tab),无法快捷打开terminal,右键鼠标啥也没有。
所以,还得折腾下,搞个更好用的桌面,参考文档Ubuntu如何安装vncserver。
1、关闭vncserver
1 2
| vncserver --list vncserver -kill :1
|
2、安装gnome桌面
1
| apt-get install -y gnome-panel gnome-settings-daemon metacity nautilus gnome-terminal
|
3、修改xstartup
1 2
| cp /root/.vnc/xstartup{,.xfce4} vim /root/.vnc/xstartup
|
修改后内容如下:
1 2 3 4 5 6 7 8 9 10
| #!/bin/sh export XKL_XMODMAP_DISABLE=1 unset SESSION_MANAGER unset DBUS_SESSION_BUS_ADDRESS
gnome-panel & gnome-settings-daemon & metacity & nautilus & gnome-terminal &
|
4、启动vncserver
5、连接vncserver

gonme桌面,已经比xfce4好了很多,但是还是比较简陋。
4. ubuntu-desktop桌面
参考文档:ubuntu20.04 vncservr配置
1、关闭vncserver
1 2
| vncserver --list vncserver -kill :1
|
2、安装ubuntu-desktop桌面
1 2
| apt-get install ubuntu-desktop ls -l /usr/share/xsessions/
|
3、修改xstartup
1 2 3 4
| cp /root/.vnc/xstartup{,.gnome} ls /usr/share/xsessions/ cat /usr/share/xsessions/ubuntu.desktop vim /root/.vnc/xstartup
|
修改后内容如下:
1 2 3 4 5 6 7 8 9 10 11 12
| #!/bin/sh export XKL_XMODMAP_DISABLE=1 unset SESSION_MANAGER unset DBUS_SESSION_BUS_ADDRESS
export XDG_SESSION_DESKTOP=ubuntu export XDG_DATA_DIRS=/usr/share/ubuntu:/usr/local/share:/usr/share:/var/lib/snapd/desktop export XDG_CONFIG_DIRS=/etc/xdg/xdg-ubuntu:/etc/xdg
exec /usr/bin/gnome-session
|
其中最关键的是exec /usr/bin/gnome-session
,这个值是在/usr/share/xsessions/ubuntu.desktop
中获取到的。
4、启动vncserver
1 2 3 4 5
| vncserver
vncserver :1 -localhost no
vncserver :1 -xstartup /root/.vnc/xstartup -localhost no
|

再次连接后,看到的就是正常的桌面了,nice。
5、修改窗口大小
vncserver默认的窗口大小为1024x768,使用时如果感觉窗口比较小,可以进行修改。
vim /usr/bin/vncserver
,如下修改:
1 2
| $geometry = "1280x1024";
|
然后kill掉已经启动的vncserver,启动新的即可。
5. 错误解决
在某次远程桌面连接时,提示too many security failures,解决办法参考vncserver too many security failures。
1、重置黑名单
1
| vncconfig -display :1 -set BlacklistTimeout=0 -set BlacklistThreshold=1000000
|
2、连接成功后还原黑名单
1
| vncconfig -display :1 -set BlacklistTimeout=600000000000 -set BlacklistThreshold=10
|