天天看點

linux遠端桌面vnc服務配置詳細教程

轉自:http://aiezu.blog.51cto.com/190472/1232657

vnc是Virtual Network Computing(虛拟網絡計算機)的縮寫。VNC是由AT&T的歐洲研究實驗室開發的一款優秀的跨平台遠端桌面控制軟體,支援linux,unix,windows等作業系統跨平台遠端桌面控制。VNC有兩部分組成,分别是:服務端(vncserver)和用戶端(vncviewer)。下面以Linux(VNC服務端)、Windows(VNC用戶端)為平台介紹VNC的安裝、配置和使用。

Linux vnc服務端:

作業系統:Red Hat Enterprise Linux AS 5

核心版本:2.6.18-8.el5

CPU構架:i386 SMP

附件軟體:Red Hat Enterprise Linux AS 5 DVD安裝盤

windows vnc用戶端:

作業系統:Windows Server 2008 Enterprise

浏覽器:Windows Internet Explorer 7

将Red Hat Enterprise Linux AS 5 DVD安裝盤放入DVD光驅,執行下列指令進行安裝:

# mkdir -p /mnt/cdrom

# mount -t auto /dev/cdrom /mnt/cdrom

# cd /mnt/cdrom/Server

# rpm -ivh rpm -ivh vnc-server-4.1.2-9.el5.i386.rpm

# rpm -ivh vnc-4.1.2-9.el5.i386.rpm

(1)VNC的運作機制介紹

在配置VNC前,必須了解VNC的運作機制。Linux下的VNC可以同時啟動多個vncserver,各個vncserver之間用顯示編号(display number)來區分,每個vncserver服務監聽3個端口,它們分别是:

5800+顯示編号: VNC的httpd監聽端口,如果VNC用戶端為IE,Firefox等非vncviewer時必須開放。

5900+顯示編号: VNC服務端與用戶端通信的真正端口,必須無條件開放。

6000+顯示編号: X監聽端口,可選。

顯示編号、開放的端口分别由/etc/sysconfig/vncservers檔案中的VNCSERVERS和VNCSERVERARGS控制。

VNCSERVERS的設定方式為:

VNCSERVERS=”顯示編号1:使用者名1 …”

如:

VNCSERVERS=”1:root 2:aiezu”

VNCSERVERARGS的設定方式為:

VNCSERVERARGS[顯示編号1]=”參數一 參數值一 參數二 參數值二 ……”

VNCSERVERARGS[2]=”-geometry 800×600 -nohttpd”

VNCSERVERARGS的詳細參數有:

-geometry 桌面分辨率,預設1024×768;

-nohttpd 不監聽HTTP端口(58xx端口);

-nolisten tcp 不監聽X端口(60xx端口);

-localhost 隻允許從本機通路;

-AlwaysShared 預設隻同時允許一個vncviewer連接配接,此參數允許同時連多個vncviewer;

-SecurityTypes None 登入不需要密碼認證VncAuth預設值,要密碼認證。

(2)修改/etc/sysconfig/vncserver檔案:

熟悉Linux下VNC的運作機制後,開始正式配置VNC Server。vi /etc/sysconfig/vncserver,添加如下三行:

VNCSERVERS=”1:root 3:aiezu”

VNCSERVERARGS[1]=”-geometry 800×600 -nolisten tcp”

VNCSERVERARGS[3]=”-geometry 1024×768 -nolisten tcp”

本例我們開啟兩個vncserver,分别是root使用者,顯示編号為1和使用者aiezu,顯示編号為3,并且全不開啟X監聽端口60xx。

(3)設定VNC使用者密碼:

接下來設定VNC的密碼,此步驟不可跳過,否則VNC Server将無法啟動,在Linux Shell下執行下列指令:

# su – aiezu

# vncpasswd

Password:

Verify:

# su – root

service vncserver start //啟動vncserver

運作上面指令後,會在使用者根目錄($HOME)下的”.vnc”檔案夾下生成一系列檔案。其中passwd為vnc使用者密碼檔案,由vncpasswd生成。其他的都由vnc初次啟動時生成,xstartup為VNC用戶端連接配接時啟動的腳本。

(4)修改”.vnc/xstartup”檔案:

執行到上面步驟後,VNC Server已經能正常運作。但是預設設定下,客戶連接配接時啟動的是xterm,我們如果想看到桌面,必須将使用者根目錄下的”.vnc/xstartup”檔案中的最後兩行注釋掉,然後根據你安裝的桌面壞境,添加一行”startkde &”或者”gnome-session &”。如下:

#!/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 80×24+10+10 -ls -title “$VNCDESKTOP Desktop” &

#twm &

startkde &

# gnome-session &

配置完各個使用者根目錄下的”.vnc/xstartup”後,執行service vncserver restart 重新啟動vncserver使配置生效。

(5)配置防火牆:

如果Linux啟用了防火牆,必須允許VNC的相關端口(58xx,59xx,60xx)。具體的端口,請參照第2大步驟的①小步驟的VNC運作機制介紹,本例開啟5801,5803,5901,5903端口就可以。在Linux指令提示符下輸入”system-config-securitylevel-tui”啟動防火牆配置工具,點”Customize”,在”Other Port”中輸入”5801:tcp 5803:tcp 5901:tcp 5903:tcp”,然後點”OK”既可。

(1)在windows下使用IE進行遠端控制連接配接:

使用浏覽器連接配接時,服務端的VNCSERVERARGS設定必須沒有”-nohttpd參數”,并且防火牆允許VNC的58xx和59xx端口通過。浏覽器必須安裝了Java支援插件,Java插件下載下傳位址:http://www.java.com/zh_CN/download/manual.jsp

(2)使用在windows下vncviewer遠端控制連接配接:

使用vncviewer進行遠端控制是最簡單方式,伺服器隻需開啟”59xx”端口就可以了。用戶端也無需配置,輕按兩下vncviewer後,在server文本框中輸入vncserver的ip位址和端口即可(本例為:192.168.1.22:5901)。vncviewer綠色版的本地下載下傳位址為:http://www.aiezu.com/uploads/soft/vnc-4_1_2-x86_win32_viewer.exe

(3)在Linux下使用vncviewer進行遠端控制連接配接:

使用vncviewer前必須安裝vnc-4.1.2-9.el5.i386.rpm包,vncviewer的用法為:vncviewer host:顯示編号。

(4)在windows下使用vncviewer+putty.exe通過ssh安全通道連接配接:

打開putty,在左邊的”Category”中依次點”Connection”->”SSH”->”Tunnels”。在”Source Port”文本框中輸入”5901″,”Destination”文本框中輸入”localhost:5901″,點選”Add,添加端口轉發。然後在putty左邊的”Category”下點”Session”,輸入伺服器的IP位址後,點”Open”按鈕,輸入密碼登陸後,既成功啟用了端口轉發。接着在本機打開vncviewer輸入”127.0.0.1:5901″即可成功連接配接到遠端的5901端口。

(5)在Linux下使用vncviewer+ssh安全通道連接配接:

與④類似,在linux vnc用戶端shell下運作”ssh -L 5901:localhost:5901 vncserverhost”指令,輸入使用者名密碼。即完成通過shh安全通道,将遠端的5901端口轉發到本機的5901端口。然後在shell下運作”vncviewer 127.0.0.1:1″指令即可以連接配接到遠端的VNC Server。

上面的五種連接配接方式中,前面三種方式資料都是未加密的形式在網絡中傳輸的,是極為不安全的方式,建議不要采用。

(1)問:為什麼成功連接配接後,沒有顯示桌面,而隻是現實一個Terminal視窗?

答:在未修改使用者根目錄下的”.vnc/xstartup”檔案,xstartup的預設設定即是此情況。請按第2大步的第②小步修改xstartup,然後運作”service vncserver restart”重新啟動vncserver服務即可。

(2)問:如何檢視VNC正在運作的顯示編号端口号?

答:在Linux指令提示符下執行”netstat -tlup|grep vnc”,即可以檢視到端口号,端口号的後兩位即顯示編号。

(3)問:如何關閉指定的顯示編号?

答:vncserver -kill :number 即可以關閉指定的顯示編号和對應的端口号。

(4)問:為何我通過浏覽器連接配接VNC 端口時,浏覽器顯示了一個紅叉。

答:那是因為你的浏覽器沒裝Java插件的緣故,下載下傳Java插件安裝即可。

(5)問:用戶端連接配接時”Connetcion timed out(10060)”是怎麼回事?

答:對于用戶端連接配接時出現”Connetcion timed out(10060)”或者”No route to host:connect”,請檢查防火牆是否開啟了58xx,59xx,vncserver是否正常運作,以及/etc/sysconfig/vncserver檔案配置是否正确。

(6)問:在通過VNC連接配接的圖形界面桌面啟動X應用時出現:”Error: Can’t open display: :0.0″錯誤?

答:請使用”echo $DISPLAY”指令檢視”DISPLAY”壞境變量是否設定為”:顯示編号:0″,如:”:1:0″。如果不是此形式,啟動X應用時會出現此錯誤。此時可以通過”export DISPLAY=:1:0″設定正确的DISPLAY。還有一種可能就是切換了使用者啟動X應用,目前使用者沒有權限使用X視窗,這時傳回到啟用VNC的使用者,運作”xhost +”允許其他使用者通路此X視窗即可。

繼續閱讀