这两天搭安全试验的环境,在vmware上安装了ubuntu10.10(大学的时候用过,最早用的好像是6系列吧)。安装好后想用远程桌面控制,毕竟在vmware上看到的界面比较小,不太方便。
使用的是vnc, 相关信息请看http://www.realvnc.com/
在安装上vnc,做了一些配置(vnc使用gnome-seeion启动)后,使用时出了两个问题:
1. 从远端使用vncviewer连接上后,只有一个终端,没有图形界面,有”could not acquire name on session bus”字样;
2. 上面的问题解决,vnc上后,按键”d”不能使用。
从网上找到解决办法,记录下来,以供后用。
1. 在ubuntu上安装:
sudo apt-get install vnc4server
2. 启动vncserver:
vncserver
首次启动会要求设置密码,后面可以使用vncpasswd修改;
看到 New ‘****:1 (****)’ desktop is ****:1 (****代表主机名)即表示启动vnc成功,在用户主目录下产生一个.vnc目录;
此时可以远程连接,注意上面的数字”1″,代表终端号,使用网页登陆即http://ip:5901, 使用vncviewer即ip:1;
3. 关闭vnc:
vncserver -kill :1
注意看kill后有空格;
4. 本来想像centos中修改vnc启动的图形界面调用gnome-session就算完事了,但不幸发生了,问题如上描述。解决办法如下(来自网络),修改vnc启动文件:
备份原有xstartup文件:
mv ~/.vnc/xstartup ~/.vnc/xstartup.bak
复制一份新的xstartup文件:
cp /etc/X11/Xsession ~/.vnc/xstartup
(上面两步还有一种方法:
sudo gedit ~/.vnc/xstartup
原文件内容:
#!/bin/sh
# Uncomment the following two lines for normal desktop:
# unset SESSION_MANAGER
# exec /etc/X11/xinit/xinitrc
[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vnccon** -iconic &
x-terminal-emulator -geometry 80×24+10+10 -ls -title “$VNCDESKTOP Desktop” &
x-window-manager &
修改后:
#!/bin/sh
# Uncomment the following two lines for normal desktop:
unset SESSION_MANAGER
exec /etc/X11/xinit/xinitrc (也可以修改为/etc/X11/Xsession, xinitrc在没有修改权限时远程桌面可能是一片雪花)
[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
#xsetroot -solid grey
#vnccon** -iconic &
#x-terminal-emulator -geometry 80×24+10+10 -ls -title “$VNCDESKTOP Desktop” &
#x-window-manager &
修改/etc/X11/xinit/xinitrc文件权限,使起可执行:
sudo chmod 755 /etc/X11/xinit/xinitrc
)
5. 第一个问题在经过上面的配置后即可解决,下面是第二个问题:
ubuntu 10.10下有对Windows键的定义,在里面被定义为Super键,当用户在vnc下按下字母”d”时,会被错误的当做返回桌面的快捷方式导致”d”无法输入,此时可修改快捷键方式来避免此bug,新打开一个终端,在里面输入:
gconf-editor
弹出对话框,到“Apps->Metacity->Global keybingdings”中找“show desktop”,将其默认值<Super>D改为<Ctl>D即可。