1.首先檢查VNC軟件是否已經安裝
[root@ocm1 ~]# rpm -qa|grep vnc
vnc-server-4.1.2-14.el5_3.1
2.啟動VNC服務
使用vncserver命令啟動,格式: server :1 ,這是城:1是桌面號,每個連接需要一個桌面號。
[root@ocm1 ~]# vncserver :1
You will require a password to access your desktops.
Password:
Password must be at least 6 characters - try again
Password: ---需要輸入密碼
Verify:
xauth: creating new authority file /root/.Xauthority
New 'ocm1.bys.com:1 (root)' desktop is ocm1.bys.com:1
Creating default startup script /root/.vnc/xstartup
Starting applications specified in /root/.vnc/xstartup
Log file is /root/.vnc/ocm1.bys.com:1.log
以上命令執行的過程中,因為是第一次執行,需要輸入密碼,這個密碼被加密保存在用戶主目錄下的.vnc子目錄(/root/.vnc/passwd)中;同時在用戶主目錄下的.vnc子目錄中為用戶自動建立xstartup配置文件(/root/.vnc/xstartup),在每次啟動VND服務時,都會讀取該文件中的配置信息。
/root/.vnc/目錄下還有一個“testdb:1.pid”文件,這個文件記錄著啟動VNC後對應後天操作系統的進程號,用於停止VNC服務時准確定位進程號。
3.VNC服務使用的端口號與桌面號的關系
VNC服務使用的端口號與桌面號相關,VNC使用TCP端口從5900開始,對應關系如下
桌面號為“1” ---- 端口號為5901
桌面號為“2” ---- 端口號為5902
桌面號為“3” ---- 端口號為5903
……
基於Java的VNC客戶程序Web服務TCP端口從5800開始,也是與桌面號相關,對應關系如下
桌面號為“1” ---- 端口號為5801
桌面號為“2” ---- 端口號為5802
桌面號為“3” ---- 端口號為5803
……
基於上面的介紹,如果Linux開啟了防火牆功能,就需要手工開啟相應的端口,以開啟桌面號為“1”相應的端口為例,命令如下
[root@testdb ~]# iptables -I INPUT -p tcp --dport 5901 -j ACCEPT
[root@testdb ~]# iptables -I INPUT -p tcp --dport 5801 -j ACCEPT
4.測試VNC服務是否正常
第一種方法是使用VNC Viewer軟件登陸測試,操作流程如下
啟動VNC Viewer軟件 --> Server輸入“192.168.57.215:1” --> 點擊“OK” --> Password輸入登陸密碼 --> 點擊“OK”登陸到X-Window圖形桌面環境 --> 測試成功
VNC服務默認使用的是twm圖形桌面環境--和SHELL差不多,可以在打開的窗口輸入oclock看能否出來時鐘的圖標。
第二種方法是使用Web浏覽器(如Firefox,IE,Safari)登陸測試,操作流程如下
地址欄輸入http://192.168.57.215:5801/ --> 出現VNC viewer for Java(此工具是使用Java編寫的VNC客戶端程序)界面,同時跳出VNC viewer對話框,在Server處輸入“144.194.192.183:1”點擊“OK” --> Password輸入登陸密碼 --> 點擊“OK”登陸到X-Window圖形桌面環境 --> 測試成功
(注:VNC viewer for Java需要JRE支持,如果頁面無法顯示,表示沒有安裝JRE,可以到http://java.sun.com/javase/downloads/index_jdk5.jsp這裡下載最新的JRE進行安裝)
############此時使用VNC Viewer登陸後能看到SHELL界面,但是無法KDE或GNOME桌面環境
5.配置VNC圖形桌面環境為KDE或GNOME桌面環境--我這裡是配置為GNOME
如何判斷LINUX上安裝的是GNOME/KDE? --我這裡是GNOME。
[root@ocm1 ~]# ps -ef|grep gnome ---或ps -ef|grep kde
oracle 2541 2513 0 10:53 ? 00:00:00 /usr/bin/gnome-session
因為VNC服務默認使用的是twm圖形桌面環境的,可以在VNC的配置文件xstartup中對其進行修改。--即在/root/.vnc/xstartup最後一行的:twm & 替換為:startkde & 或者 gnome-session &
我的文件修改如下:
[root@ocm1 ~]# vi /root/.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 &
重啟啟動vncserver即可登陸到GNOME桌面環境:
[root@ocm1 ~]# vncserver -kill :1
Killing Xvnc process ID 2898
[root@ocm1 ~]# vncserver :1
New 'ocm1.bys.com:1 (root)' desktop is ocm1.bys.com:1
Starting applications specified in /root/.vnc/xstartup
Log file is /root/.vnc/ocm1.bys.com:1.log
----此時使用VNC Viewer登陸後能看到GNOME桌面環境了。
比如在我的環境中,還配置了ORACLE用戶的VNC,也要在ORACLE家目錄下的/.vnc/xstartup文件進行本步的操作--完成同樣要重啟vncserver -kill :2。
[oracle@ocm1 ~]$ vi ./.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 &
[oracle@ocm1 ~]$ vncserver -kill :2
Killing Xvnc process ID 2680
[oracle@ocm1 ~]$ vncserver :2
New 'ocm1.bys.com:2 (oracle)' desktop is ocm1.bys.com:2
Starting applications specified in /home/oracle/.vnc/xstartup
Log file is /home/oracle/.vnc/ocm1.bys.com:2.log
注意:VNC Viewer中服務器地址欄需要輸入IP+桌面號:192.168.57.215:2 這個地址就決定了用哪個用戶登陸,不用再輸入用戶名,只輸入密碼即可。
6.配置多個桌面並設置VNC密碼
可以使用如下的方法啟動多個桌面的VNC
vncserver :1
vncserver :2
vncserver :3
……
更多精彩內容:http://www.bianceng.cn/OS/Linux/
但是這種手工啟動的方法在服務器重新啟動之後將失效,因此,下面介紹如何讓系統自動管理多個桌面的VNC,方法是將需要自動管理的信息添加到/etc/sysconfig/vncservers配置文件中,先以桌面1為root用戶桌面2為oracle用戶為例進行配置如下:
格式為:VNCSERVERS="桌面號:使用的用戶名 桌面號:使用的用戶名"
[root@ocm1 ~]# vi /etc/sysconfig/vncservers --在文件末尾增加以下兩項
VNCSERVERS="1:root 2:oracle"
VNCSERVERARGS[1]="-geometry 1024x768"
VNCSERVERARGS[2]="-geometry 1024x768"
設置VNC客戶端連接的密碼
[root@ocm1 ~]# vncpasswd
Password:
Verify:
[root@ocm1 ~]# su - oracle
[oracle@ocm1 ~]$ vncpasswd
Password:
Verify:
7.啟動和停止VNC命令以及設置開機自啟服務--要用root用戶
/etc/init.d/vncserver start|stop|restart
為加絕對路徑直接用也可以:
service vncserver start|stop|restart
命令示例:
[root@ocm1 ~]# service vncserver status
Xvnc is stopped
[root@ocm1 ~]# service vncserver start
Starting VNC server: 1:root
New 'ocm1.bys.com:1 (root)' desktop is ocm1.bys.com:1
Starting applications specified in /root/.vnc/xstartup
Log file is /root/.vnc/ocm1.bys.com:1.log
2:oracle
New 'ocm1.bys.com:2 (oracle)' desktop is ocm1.bys.com:2
Starting applications specified in /home/oracle/.vnc/xstartup
Log file is /home/oracle/.vnc/ocm1.bys.com:2.log
[ OK ]
[root@ocm1 ~]# service vncserver stop
Shutting down VNC server: 1:root 2:oracle [ OK ]
配置VNC服務自啟動:
[root@ocm1 ~]# chkconfig --list vncserver
vncserver 0:off 1:off 2:off 3:off 4:off 5:off 6:off
[root@ocm1 ~]# chkconfig vncserver on
[root@ocm1 ~]# chkconfig --list vncserver
vncserver 0:off 1:off 2:on 3:on 4:on 5:on 6:off
----------結束,參考了secooler文章,感謝 !原文 http://blog.itpub.net/519536/viewspace-607549