天天看點

linux vnc共享時權限設定,用VNC實作遠端桌面共享(支援Windows, Linux, ...) - 易水部落格...

VNC,全稱為Virtual Network Computing,它是一個桌面共享系統。它的功能,類似于windows中的遠端桌面功能。VNC使用了RFB(Remote FrameBuffer,遠端幀緩沖)協定來實作遠端控制另外一台計算機。它把鍵盤、滑鼠動作發送到遠端計算機,并把遠端計算機的螢幕發回到本地。

VNC技術與平台無關,VNC Viewer可以和VNC Server在不同的作業系統上。VNC幾乎支援所有的作業系統,也支援Java,甚至可以通過支援Java的浏覽器來通路VNC Server。多個VNC用戶端可以同時連接配接到一個VNC Server上。

VNC最初由AT&T開發的,它的源代碼是開源的。

在CentOs 4.3上配置VNC服務很簡單(這裡假定你的計算機上已經安裝了VNC軟體)

首先需要配置VNC密碼,密碼在使用用戶端連接配接伺服器時使用。

注意:VNC密碼儲存在使用者的主目錄中,每個使用者都可以設定自己的密碼。是以,請使用你的使用者名(盡量不要使用root)運作下列指令:

vncpasswd

然後輸入密碼。

接下來就可以啟動VNC server了。在啟動VNC server時,需要為你的server指定一個display參數。你可以把display了解為一個桌面,每個使用者都可以有自己的桌面。VNC用戶端在連接配接時,可以指定連接配接到哪個桌面上。在系統中,display号不能重複,也就是說,如果有使用者已經建立了名為“:1”的display,另外一個使用者就不能再使用“:1”了,他可以使用“:2”。

啟動VNC server的指令是:

vncserver

例如,

vncserver :1

最後,需要配置一下防火牆,允許VNC用戶端連接配接VNC server。VNC server監聽的端口從5900開始,display :1的監聽5901,display :2監聽5902,以此類推。CentOs的防火牆預設是不允許連接配接這些端口的,是以需要使用下面的步驟打開防火牆(需要root權限):

vi /etc/sysconfig/iptables

找到下面的語句:

-A RH-Firewall-1-INPUT -j REJECT –reject-with icmp-host-prohibited

在此行之前,加上下面的内容:

-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 5900:5903 -j ACCEPT

這句話的含義是,允許其它機器通路本機的5900到5903端口,這樣,display:1, display:2, display:3的使用者就可以連接配接到本機。

然後使用root身份重新啟動防火牆:

/sbin/service iptables restart

好了,現在就可以運作用戶端軟體,連接配接到VNC server上了。

VNC用戶端軟體很多,在linux下有vncviewer,KDE還提供了一個krdc(它的菜單項就是”Remote Desktop Connection”,遠端桌面連接配接)。

在window也有不少vnc用戶端,你可以到http://www.realvnc.com/去下載下傳一個,安裝就可以用了。

假設VNC server的IP位址是192.168.1.1,display是:1。在VNC viewer的server欄中輸入:“192.168.1.1:1”,然後連接配接。OK,你可以看到自己的桌面了。以後不管你什麼時候關閉自己的本地PC機都不怕了,隻要server不關機,你隻要連接配接到VNC server,你就可以看到你前一天關閉本地PC機時的桌面還保持着原樣。

不過…這個桌面怎麼這麼醜?!

原來vncserver預設使用的視窗管理器是twm,這是一個很簡陋的視窗管理器,你可以把你的桌面改成GNOME或KDE。

方法是,進入你自己的home目錄,然後編輯這個檔案:.vnc/xstartup,下面是這個檔案的内容:

#!/bin/sh

# Uncomment the following two linesfornormal 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&gnome–session&

你可以把像上面這樣把”twm &”這一行注釋掉,然後在下面加入一行”gnome-session &”,或者是”startkde &”,分别啟動GNOME桌面和KDE桌面。

如果server重新開機了,那你就需要重新運作一次vncserver指令來啟動VNC server,這很麻煩。有沒有更好的方法呢?

有!我們可以把VNC server啟動成背景服務。執行如下步驟:

首先要允許VNC server在系統啟動過程中被啟動。這可以通過“系統設定–>伺服器設定–>服務”菜單來配置,把vncserver一項選上就可以了。

如果使用指令行的話,以root身份運作以下兩條指令:

cd/etc/rc5.d

mv K35vncserver S35vncserver

然後編輯/etc/sysconfig/vncservers,以下是檔案内容:

# The VNCSERVERS variable is a list of display:user pairs.

#

# Uncomment the line below to start a VNC server on display :1# as my ‘myusername’ (adjust this to your own).  You will also

# need to set a VNC password;run ‘man vncpasswd’ to see how# to do that.

#

# DO NOT RUN THIS SERVICE if your local area network is

# untrusted!  For a secure way of using VNC,see

# .

VNCSERVERS=“1:user1 2:user2 3:user3“VNCSERVERARGS[1]=“-geometry 1024×768“VNCSERVERARGS[2]=“-geometry 1024×768“VNCSERVERARGS[3]=“-geometry 800×600“

解釋一下這個檔案:

VNCSERVERS這一行是配置在系統啟動時啟動幾個VNC server,上面的例子裡運作了三個VNC server,其中user1在display :1,user2在display :2,user3在display :3。

VNCSERVERARGS這三行,分别為VNC server 1, 2, 3配置啟動參數,上面的例子裡對user1和user2使用螢幕分辨率1024×768,對user3使用800×600。

其它支援的參數請使用“man vncserver”指令查詢。

編輯好這個檔案後,儲存,然後以root身份運作:

/sbin/service vncserverstart

這樣user1, user2, user3的vncserver就啟動了。

以後每次系統重新開機時,都會自動啟動這三個使用者的vncserver。

注意:上面三個使用者必須已經使用vncpasswd指令設定過vnc密碼,不然他的vncserver啟動會失敗!

本文以創作共用版權協定釋出,轉載本文要求遵循“署名-非商業性使用-相同方式共享3.0”的創作共用協定,并以連結形式指明本文位址。

文章的腳注資訊由WordPress的wp-posturl插件自動生成