在 Windows 下遠端桌面連線 Linux – VNC 篇

來源:互聯網
上載者:User

作者:高張遠矚(HiLoveS)

部落格:http://www.cnblogs.com/hiloves/

轉載請保留該資訊

 

VNC是由AT&T實驗室開發,是一款優秀的遠端控制工具軟體,後來以GPL授權的形式開源。經過幾年的發展,現在的VNC已經不單指某個軟體,而是一類軟體的通稱。下面介紹Linux下常用的兩個VNC軟體。

VNC的原理就是不停的對視窗介面截屏,再將映像傳輸給用戶端,同時VNC伺服器端接管伺服器端的鍵盤、滑鼠控制權,用戶端可以通過伺服器端操縱鍵盤滑鼠。比較類似Windows下的pcAnywhere。

 

一、Windows 端設定

先講Windows端是因為,下述的兩個VNC可以用同一個用戶端串連。

在Windows平台上,用戶端我選擇了RealVNC。RealVNC包括了一整套的伺服器端與用戶端,如果只安裝用戶端是不需要註冊碼的,其用戶端程式名為vncviewer.exe,這是個綠色軟體,你可以從安裝目錄下拷貝到其他電腦中運行。

 

二、VINO

VINO是Gnome中整合的一個VNC軟體,安裝Gnome環境時預設安裝,點擊“系統”-“喜好設定”-“遠端桌面”就開啟了其配置視窗。

選中“允許其他人查看您的案頭”後VINO就會啟動伺服器端進程vino-server,同時它監聽TCP 5900連接埠。如果不選中“允許其他使用者控制您的案頭”,用戶端則只能觀看不能操縱。

VINO的模式與下面介紹的XVNC有很大不同,我覺得VINO其實是“Windows下的遠程協助”,因為用戶端顯示的案頭與Linux端本地顯示器中顯示的案頭一樣,如果你操縱用戶端中的滑鼠,Linux的顯示器也能看到滑鼠在跑。如果你在Windows下安裝過VNC伺服器端,效果就是這個樣。

另外,VINO的頻寬佔用真是變態,就算是一進案頭什麼都不開啟無操作的情況下,頻寬也要佔到4-5Mbps(案頭1280×1024,色彩24),如果有操作會佔到8-12Mbps。

所以,VINO不適合做為伺服器的日常遠端管理,比較適合做為Linux下的遠程協助和遠程教學,也就是說你遇到一個問題,求助高手,而高手可以手把手的教你,你可以直接觀看螢幕學習,或者做故障重現,你在本地做故障或Bug重現,而工程師可以遠程觀看。

 

三、XVNC

XVNC就是大家所熟悉的vnc或vncserver,是由RealVNC公司開發的開源版的VNC軟體。

 

1、安裝XVNC。

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

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

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

假如伺服器未被安裝,請用這個指令來安裝它:yum install 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" &

twm &

 

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

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

這時需要去掉xstartup檔案中的

# unset SESSION_MANAGER

# exec /etc/X11/xinit/xinitrc

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

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

export LANG=zh_CN.UTF-8  註:啟用中文環境

scim –d  註:載入scimIME

 

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/chkconfig vncserver 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的所有連接埠。

 

8、結論

XVNC是一個非常好的日常用伺服器管理工具,你可以根據你的網路頻寬調整畫質,如果你的頻寬偏小,可以調小解析度與色彩數,XVNC無操作時基本沒有資料,如果是800×600解析度,最差畫質,它只會佔幾百Kb甚至十幾Kb的頻寬,這一點上非常適合做伺服器管理。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.