007 Linux下VNC的安裝與配置(redhat 6.9)
# rpm -qa | grep -i vnc
否則安裝VNC
# yum install tigervnc-server -y
2.啟動VNC服務
使用vncserver命令啟動VNC服務,命令格式為“vncserver :桌面號”,其中“桌面號”用“數字”的方式表示,每個使用者連個需要佔用1個桌面
啟動編號為1的桌面示例如下
# vncserver :1
You will require a password to access your desktops.
Password:
Verify:
xauth: creating new authority file /root/.Xauthority
New 'testdb:1 (root)' desktop is testdb:1
Creating default startup script. /root/.vnc/xstartup
Starting applications specified in /root/.vnc/xstartup
Log file is /root/.vnc/testdb:1.log
以上命令執行的過程中,因為是第一次執行,需要輸入密碼,這個密碼被加密儲存在使用者主目錄下的.vnc子目錄(/root/.vnc/passwd)中;
同時在使用者主目錄下的.vnc子目錄中為使用者自動建立xstartup配置檔案(/root/.vnc/xstartup),在每次啟動VND服務時,都會讀取該檔案中的配置資訊。
BTW:/root/.vnc/目錄下還有一個“主機名: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”相應的埠為例,命令如下
# iptables -I INPUT -p tcp --dport 5901 -j ACCEPT
# iptables -I INPUT -p tcp --dport 5801 -j ACCEPT
4.測試VNC服務
第一種方法是使用VNC Viewer軟體登陸測試,操作流程如下
啟動VNC Viewer軟體 --> Server輸入“192.168.10.240:1或者192.168.10.240:5901” --> 點選“OK” -->
Password輸入登陸密碼 --> 點選“OK”登陸到X-Window圖形桌面環境 --> 測試成功
第二種方法是使用Web瀏覽器(如Firefox,IE,Safari)登陸測試,操作流程如下
位址列輸入http://192.168.10.240:5801/ --> 出現VNC viewer for Java(此工具是使用Java編寫的VNC客戶端程式)介面,同時跳出VNC viewer對話方塊,
在Server處輸入“192.168.10.240:1”點選“OK” --> Password輸入登陸密碼 --> 點選“OK”登陸到X-Window圖形桌面環境 --> 測試成功
(注:VNC viewer for Java需要JRE支援,如果頁面無法顯示,表示沒有安裝JRE,可以到http://java.sun.com/javase/downloads/index_jdk5.jsp這裡下載最新的JRE進行安裝)
5.配置VNC圖形桌面環境為KDE或GNOME桌面環境
如果您是按照我的上面方法進行的配置的,登陸到桌面後效果是非常簡單的,只有一個Shell可供使用,這是為什麼呢?怎麼才能看到可愛並且美麗的KDE或GNOME桌面環境呢?
回答如下,之所以那麼的難看,是因為VNC服務預設使用的是twm圖形桌面環境的,可以在VNC的配置檔案xstartup中對其進行修改,先看一下這個配置檔案
# 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 &
將這個xstartup檔案的最後一行修改為“startkde &”,再重新啟動vncserver服務後就可以登陸到KDE桌面環境
將這個xstartup檔案的最後一行修改為“gnome-session &”,再重新啟動vncserver服務後就可以登陸到GNOME桌面環境
重新啟動vncserver服務的方法:
# vncserver -kill :1
# vncserver :1
6.配置多個桌面
可以使用如下的方法啟動多個桌面的VNC
# vncserver :1
# vncserver :2
# vncserver :3
……
但是這種手工啟動的方法在伺服器重新啟動之後將失效,因此,下面介紹如何讓系統自動管理多個桌面的VNC,
方法是將需要自動管理的資訊新增到/etc/sysconfig/vncservers配置檔案中,先以桌面1為root使用者桌面2為oracle使用者為例進行配置如下:
格式為:VNCSERVERS="桌面號:使用的使用者名稱 桌面號:使用的使用者名稱"
# vi /etc/sysconfig/vncservers
VNCSERVERS="1:root 2:oracle"
VNCSERVERARGS[1]="-geometry 1024x768"
VNCSERVERARGS[2]="-geometry 1024x768"
7.修改VNC訪問的密碼
使用命令vncpasswd對不同使用者的VNC的密碼進行修改,一定要注意,如果配置了不同使用者的VNC需要分別到各自使用者中進行修改,
例如在我的這個實驗中,root使用者和oracle使用者需要分別修改,修改過程如下:
# vncpasswd
Password:
Verify:
#
8.啟動和停止VNC服務
1)啟動VNC服務命令
# service vncserver start
2)停止VNC服務命令
# service vncserver stop
3)重新啟動VNC服務命令
service vncserver restart
4)設定VNC服務隨系統啟動自動載入
第一種方法:使用“ntsysv”命令啟動圖形化服務配置程式,在vncserver服務前加上星號,點選確定,配置完成。
第二種方法:使用“chkconfig”在命令列模式下進行操作,命令使用如下(預知chkconfig詳細使用方法請自助式man一下)
# chkconfig vncserver on
# chkconfig --list vncserver
vncserver 0:off 1:off 2:on 3:on 4:on 5:on 6:off
常見問題:
問題1:
WARNING: The first attempt to start Xvnc failed, possibly because the font
catalog is not properly configured. Attempting to determine an appropriate
font path for this system and restart Xvnc using that font path ...
Could not start Xvnc.
/usr/bin/Xvnc: symbol lookup error: /usr/bin/Xvnc: undefined symbol:
pixman_composite_trapezoids
/usr/bin/Xvnc: symbol lookup error: /usr/bin/Xvnc: undefined symbol:
pixman_composite_trapezoids
如果出現FAILED那一般是配置檔案寫錯了,如果檢查後問題依舊,並且錯誤提示與上圖類似那麼則是版本原因。
安裝或更新x11,命令:
yum install pixman pixman-devel libXfont -y
問題2:
開啟vncserver連線時,會發現是灰屏,上面顯示三個複選框:
Accept clipboard from viewers;
Send clipboard to viewers;
Sendprimary selection to viewers.
並未顯示Gnome的桌面。
檢查圖形介面,desktop
# rpm -qa | grep -i desktop
如果沒有顯示,表示你沒有安裝,這時,需要安裝desktop
安裝desktop
# yum groupinstall -y "Desktop" "X Window System" "Chinese-support"
# vncserver -kill :1
# vncserver :1
我這裡採用的是gnome,所以安裝上面的包就可以了。安裝內容的過程就省略了。使用yum安裝,系統可以自動確認需要安裝的依賴包,相當方便。
說明:
--如果你裝的是kde,那麼你就安裝kde的包,如下:
# yum groupinstall -y "KDE Desktop" "X window System" "Chinese-support"
# vncserver -kill :1
# vncserver :1
--當然,你也可以直接寫成如下方式進行安裝
gnome:
# yum install -y xdm gdm
kde:
# yum install -y kdm xdm