故事背景
最近公司主管让我在Linux服务器上面配置JIRA,我按照官方的文档一步步做下来,发现必须要连接到Linux桌面系统,因为需要打开浏览器在网页里面做一些配置,比如使用MySQL数据库,建立账号等等,以前都是命令行操作,使用SSH连接到shell就满足了。之前听人说过用RealVNC可以连接到远程桌面。于是又停下来转而去折腾VNC了。
下载
前往这里下载:VNC官方下载地址,我的是Windows系统,所以直接下载EXE文件然后点击安装,基本上就是一路Next下来即可,这没什么好讲的。
Ubuntu服务器配置
首先安装vncserver服务:
sudo apt-get install vnc4server
接着开启服务,如果你想访问root用户的桌面环境就用sudo vncserver,如果访问当前普通用户的环境就直接vncserver即可,首次启动会要求设置密码,用来在客户端访问时使用,后面可以使用vncpasswd修改。启动vnc成功后,会在主目录下产生一个.vnc目录。值得注意的是,VNC可以开启多个桌面供不同的客户端同时访问,所以它由一个桌面号的概念,每次启动VNC Server时,它会自动为这次启动的服务分配一个桌面号,是从1开始的。
连接到桌面
做到这步后,用你的VNC Viewer连接远程Ubuntu,你放心,还是只能看到一个shell。嗯,还没有达到目的,我们是要连接桌面而非shell。你可以打开在启动VNC时输出的log日志消息,Ubuntu系统多半都是下面这个错误:
……
gnome-session-is-accelerated: No composite extension.
gnome-session-check-accelerated: Helper exited with code 256
gnome-session-is-accelerated: No composite extension.
gnome-session-check-accelerated: Helper exited with code 256
** (process:6694): WARNING **: software acceleration check failed: Child process exited with code 1
** (gnome-session:6694): CRITICAL **: We failed, but the fail whale is dead. Sorry....
……
你看到fail这个单词就说明连接失败了,我在网上找了很久,发现有的博客写的东西根本无法解决这个问题,也许他自己当时是那么解决的,但是你和他的情况不是完全一样的。我这里也提供一个方法,你可以试一下,兴许就能解决这个问题:
ubuntu下载命令:
$ sudo apt-get install gnome-panel gnome-settings-daemon metacity nautilus gnome-terminal
然后修改xstartup文件:
#!/bin/sh
export XKL_XMODMAP_DISABLE=1
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic &
gnome-session &
gnome-panel &
gnome-settings-daemon &
metacity &
nautilus &
gnome-terminal &
vncconfig -nowin &
然后重启VNC服务即可。
也可以通过安装KDE/XFCE来解决:
$ sudo apt-get install gnome-core xfce4 firefox
$ vim ~/.vnc/xstartup #修改此文件,写入以下内容
#!/bin/sh
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
startxfce4 &
#gnome-session --session=gnome-flashback &
[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic &
真是错误不断,log日志还说字体还找不到:
error opening security policy file /etc/X11/xserver/SecurityPolicy
Could not init font path element /usr/share/fonts/X11/cyrillic, removing from list!
Could not init font path element /usr/share/fonts/X11/100dpi/:unscaled, removing from list!
Could not init font path element /usr/share/fonts/X11/75dpi/:unscaled, removing from list!
Could not init font path element /usr/share/fonts/X11/100dpi, removing from list!
Could not init font path element /usr/share/fonts/X11/75dpi, removing from list!
Could not init font path element built-ins, removing from list!
其实这个错误是不影响你远程连接Linux桌面的,如果你不是特别完美主义的话,到这儿可以不管它了。但是你还是想要解决的话,方法还是有的,解决办法:
sudo aptitude install xfonts-100dpi xfonts-75dpi xfonts-scalable xfonts-cyrillic