Linux下Vnc遠端桌面Server配置教程

來源:互聯網
上載者:User

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

實驗環境
VNC服務端:
作業系統:Red Hat Enterprise Linux AS 5
核心版本:2.6.18-8.el5
 CPU構架:i386 SMP
附件軟體:Red Hat Enterprise Linux AS 5 DVD安裝盤
VNC用戶端:
作業系統:Windows Server 2008 Enterprise
 瀏覽器:Windows Internet Explorer 7

1. 在Linux下安裝VNC
將Red Hat Enterprise Linux AS 5 DVD安裝盤放入DVD光碟機,執行下列命令進行安裝:


# mkdir -p /mnt/cdrom  文章來至[愛E族]:http://www.aiezu.com# 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 文章來至[愛E族]:http://www.aiezu.com
2. 配置Linux下的VNC Server
①. 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 800x600 -nohttpd",VNCSERVERARGS的詳細參數有:

-geometry 案頭解析度,預設1024x768;
-nohttpd 不監聽HTTP連接埠(58xx連接埠);
-nolisten tcp 不監聽X連接埠(60xx連接埠);
-localhost 只允許從本機訪問;
-AlwaysShared 預設只同時允許一個vncviewer串連,此參數允許同時連多個vncviewer;
-SecurityTypes None 登入不要求輸入密碼認證VncAuth預設值,要密碼認證。

②. 修改/etc/sysconfig/vncserver檔案:
  熟悉Linux下VNC的運行機制後,開始正式配置VNC Server。vi /etc/sysconfig/vncserver,添加如下三行:文章來至[愛E族]:http://www.aiezu.com

VNCSERVERS="1:root 3:aiezu" VNCSERVERARGS[1]="-geometry 800x600 -nolisten tcp" VNCSERVERARGS[3]="-geometry 1024x768 -nolisten tcp" 本例我們開啟兩個vncserver,分別是root使用者,顯示編號為1和使用者aiezu,顯示編號為3,並且全不開啟X監聽連接埠60xx。

③. 設定VNC使用者密碼:
  接下來設定VNC的密碼,此步驟不可跳過,否則VNC Server將無法啟動,在Linux Shell下執行下列命令:

# su - aiezu  # vncpasswd  Password:  文章來至[愛E族]:http://www.aiezu.comVerify:  # su - root  # vncpasswd  Password:  Verify: service vncserver start  //啟動vncserver運行上面命令後,會在使用者根目錄($HOME)下的".vnc"檔案夾下產生一系列檔案。其中passwd為vnc使用者密碼檔案,由vncpasswd產生。其他的都由vnc初次啟動時產生,xstartup為VNC用戶端串連時啟動的指令碼。文章來至[愛E族]:http://www.aiezu.com

④. 修改".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   文章來至[愛E族]:http://www.aiezu.com[ -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 &  文章來至[愛E族]:http://www.aiezu.comstartkde &  # 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"既可。
文章來至[愛E族]:http://www.aiezu.com
3. VNC用戶端配置與串連
①. 在windows下使用IE進行遠端控制串連:
  使用瀏覽器串連時,服務端的VNCSERVERARGS設定必須沒有"-nohttpd參數",並且防火牆允許VNC的58xx和59xx連接埠通過。瀏覽器必須安裝了Java支援外掛程式,Java外掛程式:http://www.java.com/zh_CN/download/manual.jsp
②. 使用在windows下vncviewer遠端控制串連:
  使用vncviewer進行遠端控制是最簡單方式,伺服器只需開啟"59xx"連接埠就可以了。用戶端也無需配置,雙擊vncviewer後,在server文字框中輸入vncserver的ip地址和連接埠即可(本例為:192.168.1.22:5901)。vncviewer綠色版的本地為:http://www.aiezu.com/soft/vnc-4_1_2-x86_win32_viewer.exe
③. 在Linux下使用vncviewer進行遠端控制串連:
  使用vncviewer前必須安裝vnc-4.1.2-9.el5.i386.rpm包,vncviewer的用法為:vncviewer host:顯示編號。
④. 在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連接埠。
⑤. 在Linux下使用vncviewer+ssh安全通道串連:
  與④類似,在linux vnc用戶端shell下運行"ssh -L 5901:localhost:5901 vncserverhost"命令,輸入使用者名稱密碼。即完成通過shh安全通道,將遠端5901連接埠轉寄到原生5901連接埠。然後在shell下運行"vncviewer 127.0.0.1:1"命令即可以串連到遠端VNC Server。
  上面的五種串連方式中,前面三種方式資料都是未加密的形式在網路中傳輸的,是極為不安全的方式,建議不要採用。文章來至[愛E族]:http://www.aiezu.com

4. 常見問題
①. 問:為什麼成功串連後,沒有顯示案頭,而只是現實一個Terminal視窗?
①. 答:在未修改使用者根目錄下的".vnc/xstartup"檔案,xstartup的預設設定即是此情況。請按第2大步的第②小步修改xstartup,然後運行"service vncserver restart"重新啟動vncserver服務即可。
②. 問:如何查看VNC正在啟動並執行顯示編號連接埠號碼?
①. 答:在Linux命令提示字元下執行"netstat -tlup|grep vnc",即可以查看到連接埠號碼,連接埠號碼的後兩位即顯示編號。
③. 問:如何關閉指定的顯示編號?文章來至[愛E族]:http://www.aiezu.com
①. 答:vncserver -kill :number 即可以關閉指定的顯示編號和對應的連接埠號碼。
④. 問:為何我通過瀏覽器串連VNC 連接埠時,瀏覽器顯示了一個紅叉。
①. 答:那是因為你的瀏覽器沒裝Java外掛程式的緣故,下載Java外掛程式安裝即可。
⑤. 問:用戶端串連時"Connetcion timed out(10060)"是怎麼回事?
①. 答:對於用戶端串連時出現"Connetcion timed out(10060)"或者"No route to host:connect",請檢查防火牆是否開啟了58xx,59xx,vncserver是否正常運行,以及/etc/sysconfig/vncserver檔案配置是否正確。
⑥. 問:在通過VNC串連的圖形介面案頭啟動X應用時出現:"Error: Cant open display: :0.0"錯誤?
①. 答:請使用"echo $DISPLAY"命令查看"DISPLAY"壞境變數是否設定為":顯示編號:0",如:":1:0"。如果不是此形式,啟動X應用時會出現此錯誤。此時可以通過"export DISPLAY=:1:0"設定正確的DISPLAY。還有一種可能就是切換了使用者啟動X應用,目前使用者沒有許可權使用X視窗,這時返回到啟用VNC的使用者,運行"xhost +"允許其他使用者訪問此X視窗即可

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.