LINUX下VNC服務的安裝配置

還不算暈發表於2014-03-10
必要前提是已經安裝圖形介面相關軟體!!

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 ~]$ vncserver :2

You will require a password to access your desktops.
Password:
Verify:
xauth:  creating new authority file /home/oracle/.Xauthority
New 'ocm1.bys.com:2 (oracle)' desktop is ocm1.bys.com:2
Creating default startup script /home/oracle/.vnc/xstartup
Starting applications specified in /home/oracle/.vnc/xstartup
Log file is /home/oracle/.vnc/ocm1.bys.com:2.log

[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
……
但是這種手工啟動的方法在伺服器重新啟動之後將失效,因此,下面介紹如何讓系統自動管理多個桌面的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


最後,備註一下,使用VNC安裝ORACLE資料庫時,比如vncserver :3   --對應的是oracle使用者;此時在vncviewer終端軟體中以192.168.1.1:3登陸後,此時是oracle使用者,預設的環境變數DISPLAY=:3.0  ,此時不需要再設定DISPLAY,直接可以啟動圖形介面。參考如下圖片:


相關文章