1. 程式人生 > >vncserver 圖形介面顯示

vncserver 圖形介面顯示

1、安裝XVNC。

安裝Linux時,可以從安裝包中選中。若沒有安裝,可以從安裝盤中找到。

伺服器的元件名叫vnc-server。請執行rpm -q vnc-server 這個指令。

它的輸出應該是package vnc-server is not installed 或類似vnc-server-4.0-11.el4。

假如伺服器未被安裝,請用這個指令來安裝它:yuminstall vnc-server。

2、啟動vncserver。

在終端中輸入:

vncserver :1 -geometry 1280x1024 –depth 24  注::1指1號視窗,-geometry指視窗解析度,-depth指色彩數

也可以簡單的指定:

vncserver :1  注:使用RealVNC的客戶端,視窗解析度與色彩數可以在客戶端指定

當你第一次啟動vncserver時,會要求指定密碼,該密碼是VNC客戶端連線時要輸入。

視窗可以從0開始指定,如果Linux本地端已經啟用圖形環境,則必須從1開始指定,因為視窗0被X11佔用。

3、配置xstartup

XVNC預設採用twm做為圖形環境,如果你安裝了KDE或Gnome也可以啟動。

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"&

gnome-session &

#twm &

最後一行twm &表示啟動twm,修改成gnome-session&啟動Gnome,修改成startkde&啟動KDE。

如果Linux本地端已經啟用Gnome或KDE圖形環境,當VNC客戶端連線伺服器後,可能會只顯示灰屏,沒有正常啟用圖形環境。檢視~/.vnc下的日誌時會提示錯誤:You arealready running a session manager。

這時需要去掉xstartup檔案中的

# unset SESSION_MANAGER

# exec /etc/X11/xinit/xinitrc

這兩行前的#,再重啟vncserver。如果Linux本地端是init 3模式,則不需要修改這兩行。

當vnc客戶端連線伺服器時顯示的介面是英文的,主要是中文環境還沒有裝入,而且沒有中文輸入法。在# exec/etc/X11/xinit/xinitrc行後新增下面內容:

export .UTF-8  注:啟用中文環境

scim –d  注:載入scim輸入法

4、關閉vncserver

vncserver –kill :1  注:關閉視窗1,以此類推關閉視窗2就為:2

當所有視窗都關閉vncserver服務就關閉了。

5、客戶端使用

XVNC不僅支援vncview等客戶端程式,還支援瀏覽器控制。

瀏覽器直接輸入地址http://IP:5800,就會啟動Java客戶端連線。

視窗0佔用TCP 5900埠(VNC客戶端),TCP 5800埠(瀏覽器)。

視窗1佔用TCP 5901埠(VNC客戶端),TCP 5801埠(瀏覽器)。

視窗2、3以此類推。

6、開機自啟動vncserver

上面的操作都是要先登入Linux端,然後手動啟動vncserver服務後,才能使用VNC連線。如果你想開機自啟動vncserver服務,必須這樣做。

先按上面的步驟啟動一次vncserver,確保密碼和xstartup檔案都建立了。

然後,vi/etc/sysconfig/vncservers,新增如下內容:

VNCSERVERS="1:root 2:zhang 3:li"  注:1、2、3代表視窗,比如root使用者用視窗1,zhang使用者用視窗2,這裡的使用者是指Linux中的正規的使用者帳戶

VNCSERVERARGS[1]="-geometry 640x480 –depth 24"  注:為root使用者指定解析度和色彩數,這裡的[1]指上面的“1:root”

VNCSERVERARGS[2]="-geometry 640x480 –depth 16"  注:為zhang使用者指定解析度和色彩數

VNCSERVERARGS[3]="-geometry 800x600"

注:上面的這三行可以不新增,由vnc客戶端自行控制解析度和色彩。上面的root、zhang、li使用者必須確保密碼和xstartup檔案都建立了,你可以分別登入先執行一次vncserver:1。

最後,執行/sbin/chkconfigvncserver on指令。

7、安全

XVNC的資料傳輸都是明文的,因涉及伺服器的管理,使用明文是不可接受的。

我們可以使用SSH加密VNC資料。

首先,開啟Linux端的SSH服務。

第二,在Windows端下載一個SSH telnet工具。推薦的有PuTTy,SecureCRT。

第三,啟用SSH隧道。下面以SecureCRT為例,PuTTy操作類似。

先建立一個連線到Linux端的普通SSH會話。

在該會話選項中“埠轉發”中,新增“本地埠轉發屬性”。

見右圖中,在“本地”中輸入一個埠,這裡選擇了5901,也可以選擇5801或其他埠,只要不與本地的服務相沖突,這個本地埠與Linux中vncserver監聽的視窗埠無關,在“遠端”中輸入5901,這個埠是Linux端的vncserver監聽的埠,這裡是啟動視窗1,如果啟動視窗2則這裡要輸入5902。確定。

設定完後,在SecureCRT中啟動與Linux的SSH會話,正確登入Linux後。開啟vncviewer。

在VNC伺服器中輸入:localhost:5901(這裡的埠就是上面指定的本地埠,而非Linux端的埠),因為這裡要連線的是本地的SecureCRT啟動的SSH隧道。在VNC執行過程中SecureCRT不能關閉。

這樣,在Linux端的防火牆就可以只開放SSH埠,關閉掉有關VNC的所有埠。