vnc是Virtual Network Computing(虛擬網絡計算機)的縮寫。VNC是由AT&T的歐洲研究實驗室開發的一款優秀的跨平臺遠程桌面控制軟件,支持linux,unix,windows等操做系統跨平臺遠程桌面控制。VNC有兩部分組成,分別是:服務端(vncserver)和客戶端(vncviewer)。下面以Linux(VNC服務端)、Windows(VNC客戶端)爲平臺介紹VNC的安裝、配置和使用。java
Linux vnc服務端:linux
操做系統:Red Hat Enterprise Linux AS 5
內核版本:2.6.18-8.el5
CPU構架:i386 SMP
附件軟件:Red Hat Enterprise Linux AS 5 DVD安裝盤 shell
windows vnc客戶端:windows
操做系統: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 session
# rpm -ivh rpm -ivh vnc-server-4.1.2-9.el5.i386.rpm ssh
# rpm -ivh vnc-4.1.2-9.el5.i386.rpm
在配置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默認值,要密碼認證。
熟悉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。
接下來設置VNC的密碼,此步驟不可跳過,不然VNC Server將沒法啓動,在Linux Shell下執行下列命令:
# su – aiezu
# vncpasswd
Password:
Verify:
# su – root
# vncpasswd
Password:
Verify:
service vncserver start //啓動vncserver
運行上面命令後,會在用戶根目錄($HOME)下的」.vnc」文件夾下生成一系列文件。其中passwd爲vnc用戶密碼文件,由vncpasswd生成。其餘的都由vnc初次啓動時生成,xstartup爲VNC客戶端鏈接時啓動的腳本。
執行到上面步驟後,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使配置生效。
若是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」既可。
使用瀏覽器鏈接時,服務端的VNCSERVERARGS設置必須沒有」-nohttpd參數」,而且防火牆容許VNC的58xx和59xx端口經過。瀏覽器必須安裝了Java支持插件,Java插件下載地址:http://www.java.com/zh_CN/download/manual.jsp
使用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
使用vncviewer前必須安裝vnc-4.1.2-9.el5.i386.rpm包,vncviewer的用法爲:vncviewer host:顯示編號。
打開putty,在左邊的」Category」中依次點」Connection」->」SSH」->」Tunnels」。在」Source Port」文本框中輸入」5901″,」Destination」文本框中輸入」localhost:5901″,點擊」Add,添加端口轉發。而後在putty左邊的」Category」下點」Session」,輸入服務器的IP地址後,點」Open」按鈕,輸入密碼登錄後,既成功啓用了端口轉發。接着在本機打開vncviewer輸入」127.0.0.1:5901″便可成功鏈接到遠程的5901端口。
與④相似,在linux vnc客戶端shell下運行」ssh -L 5901:localhost:5901 vncserverhost」命令,輸入用戶名密碼。即完成經過shh安全通道,將遠程的5901端口轉發到本機的5901端口。而後在shell下運行」vncviewer 127.0.0.1:1″命令便可以鏈接到遠程的VNC Server。
上面的五種鏈接方式中,前面三種方式數據都是未加密的形式在網絡中傳輸的,是極爲不安全的方式,建議不要採用。
答:在未修改用戶根目錄下的」.vnc/xstartup」文件,xstartup的默認設置便是此狀況。請按第2大步的第②小步修改xstartup,而後運行」service vncserver restart」從新啓動vncserver服務便可。
答:在Linux命令提示符下執行」netstat -tlup|grep vnc」,便可以查看到端口號,端口號的後兩位即顯示編號。
答:vncserver -kill :number 便可以關閉指定的顯示編號和對應的端口號。
答:那是由於你的瀏覽器沒裝Java插件的緣故,下載Java插件安裝便可。
答:對於客戶端鏈接時出現」Connetcion timed out(10060)」或者」No route to host:connect」,請檢查防火牆是否開啓了58xx,59xx,vncserver是否正常運行,以及/etc/sysconfig/vncserver文件配置是否正確。
答:請使用」echo $DISPLAY」命令查看」DISPLAY」壞境變量是否設置爲」:顯示編號:0″,如:」:1:0″。若是不是此形式,啓動X應用時會出現此錯誤。此時能夠經過」export DISPLAY=:1:0″設置正確的DISPLAY。還有一種可能就是切換了用戶啓動X應用,當前用戶沒有權限使用X窗口,這時返回到啓用VNC的用戶,運行」xhost +」容許其餘用戶訪問此X窗口便可。