尽管我们在大部分情况下用ssh登录Ubuntu服务器就好了,但是有时候我们的程序需要在图形界面下运行,这时我们就要用到vnc server这个软件了。在Ubuntu下安装vnc server很简单的,只要下面几步就可以了:
第一步,获取安装文件
sudo apt-get install vnc4server
sudo apt-get install kde-window-manager
sudo apt-get install tinywm
sudo apt-get install gnome-session-bin
第二步,修改VNC Password,不能太短
# vncpasswd
Password: ******
Verify:*****
第三步,检查防火墙,这个就不详细说明了
第四步,启动VNC server
# vncserver
第五步,通过客户端连接
地址后面加:1
第六步,发现界面是不是很丑啊!?引用别人的解决办法
不过...这个桌面怎么这么丑?!
原来vncserver默认使用的窗口管理器是twm,这是一个很简陋的窗口管理器,你可以把你的桌面改成GNOME或KDE。
方法是,进入你自己的home目录,然后编辑这个文件:.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
vncconfig -iconic &
xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
#twm &
gnome-session &
你可以把像上面这样把"twm &"这一行注释掉,然后在下面加入一行"gnome-session &",或者是"startkde &",分别启动GNOME桌面和KDE桌面。
如果server重启了,那你就需要重新运行一次vncserver命令来启动VNC server,这很麻烦。有没有更好的方法呢
如果server重启了,那你就需要重新运行一次vncserver命令来启动VNC server,这很麻烦。有没有更好的方法呢?
有!我们可以把VNC server启动成后台服务。执行如下步骤:
首先要允许VNC server在系统启动过程中被启动。这可以通过“系统设置-->服务器设置-->服务”菜单来配置,把vncserver一项选上就可以了。
如果使用命令行的话,以root身份运行以下两条命令:
cd /etc/rc5.d
mv K35vncserver S35vncserver
然后编辑/etc/sysconfig/vncservers,以下是文件内容:
# The VNCSERVERS variable is a list of display:user pairs.
#
# Uncomment the line below to start a VNC server on display :1
# as my 'myusername' (adjust this to your own). You will also
# need to set a VNC password; run 'man vncpasswd' to see how
# to do that.
#
# DO NOT RUN THIS SERVICE if your local area network is
# untrusted! For a secure way of using VNC, see
# .
VNCSERVERS="1:user1 2:user2 3:user3"
VNCSERVERARGS[1]="-geometry 1024x768"
VNCSERVERARGS[2]="-geometry 1024x768"
VNCSERVERARGS[3]="-geometry 800x600"
解释一下这个文件:
VNCSERVERS这一行是配置在系统启动时启动几个VNC server,上面的例子里运行了三个VNC server,其中user1在display :1,user2在display :2,user3在display :3。
VNCSERVERARGS这三行,分别为VNC server 1, 2, 3配置启动参数,上面的例子里对user1和user2使用屏幕分辨率1024x768,对user3使用800x600。
其它支持的参数请使用“man vncserver”命令查询。
编辑好这个文件后,保存,然后以root身份运行:
/sbin/service vncserver start
这样user1, user2, user3的vncserver就启动了。
以后每次系统重启时,都会自动启动这三个用户的vncserver。
注意:上面三个用户必须已经使用vncpasswd命令设置过vnc密码,不然他的vncserver启动会失败
【VNC】修改VNC分辨率大小
VNC的分辨率过小有可能导致图形化界面操作过程中遇到“确认键或取消键”无法点击,分辨率过高又可能导致低分辨率客户端显示器无法显示。
本文给出两种调整VNC分辨率的方法,供参考。
1.第一种方法:使用geometry参数进行调整
使用man命令获得关于geometry参数的描述
[root@secdb ~]# man vncserver
……
-geometry widthxheight
Specify the size of the desktop to be created. Default is 1024x768.
……
可见,默认的分辨率是1024x768,我们可以使用这个参数对分辨率进行调整。
例如,我们需要将分辨率调整到800x600
[root@secdb ~]# vncserver -geometry 800x600
New 'secdb:5 (root)' desktop is secdb:5
Starting applications specified in /root/.vnc/xstartup
Log file is /root/.vnc/secdb:5.log
此时使用“192.168.23.102:5”登录VNC便会得到一个800x600的操作窗口。
其他分辨率调整请自行尝试。
2.第二种方法:修改配置文件vncservers
[root@secdb ~]# vi /etc/sysconfig/vncservers
# The VNCSERVERS variable is a list of display:user pairs.
#
# Uncomment the line below to start a VNC server on display :1
# as my 'myusername' (adjust this to your own). You will also
# need to set a VNC password; run 'man vncpasswd' to see how
# to do that.
#
# DO NOT RUN THIS SERVICE if your local area network is
# untrusted! For a secure way of using VNC, see
#
# VNCSERVERS="1:myusername"
# VNCSERVERARGS[1]="-geometry 800x600"
VNCSERVERS="1:root 2:oracle"
VNCSERVERARGS[1]="-geometry 1024x768"
VNCSERVERARGS[2]="-geometry 1024x768"
例如我们可以将最后一行内容调整为如下
VNCSERVERARGS[2]="-geometry 800x600"
重启vncserver后,使用“192.168.23.102:2”登录VNC便会得到一个800x600的操作窗口,用户是oracle。
[root@secdb ~]# /etc/init.d/vncserver restart
Shutting down VNC server: 1:root 2:oracle [ OK ]
Starting VNC server: 1:root 2:oracle [ OK ]
3.小结
两 种修改方法各有利弊,请根据具体环境进行调整。使用第一种方法操作简单,影响范围小,因为该方法是通过单独启动vnc进程来提供服务的,但是容易在系统中 遗留过多的vnc进程;第二种方法是通过调整VNC默认分辨率的手段实现的,实现集中管理,但存在因分辨率调整过高导致客户端无法使用的问题。
Good luck.
-- The End --