Linux下VNC遠端控制的使用方法

jolly10發表於2007-12-27
最近研究了一下Linux下VNC遠端控制的使用方法 ,在網上找到這篇文章,還是蠻用有的,轉貼上來以便後用。[@more@]

VNC簡介』網路遙控技術是指由一部計算機(主控端)去控制另一部計算機(被控端),而且當主控端在控制端時,就如同使用者親自坐在被控端前操作一樣,可以執行被控端的應用程式,及使用被控端的系統資源。
VNC
Virtual Network Computing)是一套由AT&T實驗室所開發的可操控遠端的計算機的軟體,其採用了GPL授權條款,任何人都可免費取得該軟體。VNC軟體主要由兩個部分組成:VNC serverVNC viewer。使用者需先將VNC server安裝在被控端的計算機上後,才能在主控端執行VNC viewer控制被控端。(在windows中也由一套著名的網路遙控軟體――Symantec公司推出的pcAnywhere
VNC server
VNC viewer支援多種作業系統,如Unix系列(UnixLinuxSolaris等),windowsMacOS,因此可將VNC server VNC viewer分別安裝在不同的作業系統中進行控制。如果目前操作的主控端計算機沒有安裝VNC viewer,也可以透過一般的網頁瀏覽器來控制被控端。整個VNC執行的工作流程如下:1 VNC客戶端透過瀏覽器或VNC Viewer連線至VNC Server2 VNC Server傳送一對話視窗至客戶端,要求輸入連線密碼,以及存取的VNC Server顯示裝置。3 在客戶端輸入聯機密碼後,VNC Server驗證客戶端是否具有存取許可權。4 若是客戶端透過VNC Server的驗證,客戶端即要求VNC Server顯示桌面環境。5 VNC Server透過X Protocol 要求X Server將畫面顯示控制權交由VNC Server負責。6 VNC Server將來由 X Server的桌面環境利用VNC通訊協議送至客戶端,並且允許客戶端控制VNC Server的桌面環境及輸入裝置。

VNC的安裝與使用』本人的操作環境:被控端 Redhat9.0,主控端Windows XP
1
VNC Server
VNC Server
下載地址:

2.安裝。
vnc-3.3.7-x86_linux.tar.gz (
如果是原始碼請看包裡的說明)當下載了VNCLinux版本後,可以解壓檔案到一個資料夾中,例如/home/vnc,然後複製檔案vncserver vncpasswdXvnc/usr/bin目錄中。假如想要能夠透過VNC伺服器的整合Java介面遠端控制Linux電腦,也得需去建立一個子目錄/usr/local/vnc/classes。在建立此子目錄之後,複製VNCJava.class檔案到此目錄中。(一般redhat 9.0自帶以上檔案,所以直接用終端執行就可以)。
3.
Linux上啟動VNC Server執行vncserver命令:
[root@linux root]# vncserver
You will require a password to access your desktops.
Password: —-
為了不想任何人都可以任意遙控此計算機。因此當第
Verify: —1
次啟動VNC server時,會要求設定網路遙控的密碼。
New ‘X’ desktop is linux:1 —-
一定要記住這一行稍後會用到。
Creating default startup script /root/.vnc/xstartup
Starting applications specified in /root/.vnc/xstartup
Log file is /root/.vnc/linux:1.log
(經上述步驟後,便已啟動了VNC Server。如果你想要更改VNC Server的密碼,只要執行vncpasswd命令即可。)

5. 從瀏覽器遠端遙控。啟動VNC Server 後直接開啟瀏覽器,在位址列中輸入被控端的網址或IP地址,並在網址後加上5800+顯示編號的埠號即可操控該計算機。例如:http://192.168.01.:5801 (如果顯示編號為1,一般第一次設定的顯示編號都是1,就用580015801)

Linux下VNC遠端控制的使用方法

如果看到視窗,就說明你成功,在密碼框輸入密碼,就能遠端控制了。

6FAQ

A. 如何以圖形介面登入被控端?

編輯~/.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 80×24+10+10 -ls -title “$VNCDESKTOP Desktop” &
gnome-session &
startkde &
twm &

gnome-session是啟動Gnome圖形介面;startkde是啟動KDE圖形介面;twm是啟動文字介面。三者選其一。

A. 如何開機時自動啟動vnc服務

開啟“系統設定”–>”伺服器設定”–>”服務”,勾選上vncserver,“儲存”。

修改 /etc/sysconfig/vncservers

VNCSERVERS=”1:root 2:phred 3:sysadmin” 1代表“桌面1”,root代表使用者名稱;可同時啟動多個使用者桌面
VNCSERVERARGS[1]=”-geometry 800×600 -alwaysshared -depth 24″

-alwaysshared代表允許多使用者同時登入 -depth代為色深,引數有8,16,24,32。


A
.為什麼連線後,不能顯示桌面,而只有一個Terminal視窗?試著修改/root/.vnc/xstartup,把最後一行 twm& 改成 gnome-session& or kde&(據說KDE在目前的VNC Viewer上的表現不太穩定)

B 為什麼重新啟動VNC Server後,連線不上了?因為重新啟動VNC Server時,系統會指定一個新的顯示編號,需使用此新的編號,否則就無法連線

——————————————————————————————————————————–

檢視vnc已啟用的桌面號及監聽程式

[root@linux /]# netstat -tlnp |grep vnc

vncserver 命令帶有一些很有用的引數,用vncserver –help 檢視。
簡單解釋一下:
vncserver [:] [-name ] [-geometry x] [-depth ]
[-pixelformat format]
vncserver -kill :display

:
vnc服務的display號,可以自行指定,儘量不要使用系統預設的以保證安全,必須為非0的正整數
vncserver :99
使用時必須輸入正確的display號才能連線;用瀏覽器要在埠號加上display號,預設埠5800,遠端連線輸入 XXX.XXX.XXX.XXX:5899

-name 指定vncserver桌面名字
比如要讓名字顯示為 “紅帽”
vncserver -name 紅帽

-geometry x指定顯示桌面的解析度,預設為1024×768
vncserver -geometry 800×600
這個命令實際中很有用,例如本地解析度為1024×768 如果不設定遠端vnc服務解析度就會造成桌面顯示不全的問題。

-depth 指定顯示顏色,設定範圍8~32
vncserver -depth 16
用16bits顏色顯示

-pixelformat 指定色素格式 與-depth大致相同,只是表示方法不一樣
vncserver -pixelformat RGB888
用24bits顏色顯示

vncserver -kill :display
結束vnc服務及遠端桌面
vncserver -kill :1
其它更詳細的使用請用man檢視。

vnc內定的視窗管理器是twm與大家使用的可能不同,透過修改vnc的配置檔案可以更換為自己喜歡的,方法如下:
修改使用者目錄下的 .vnc/xstartup 檔案
#!/bin/sh
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic &
xterm -geometry 80×24+10+10 -ls -title “$VNCDESKTOP Desktop” &
twm &
將#!/bin/sh後面的內容全部註釋掉,改成
~/.Xclients
儲存檔案
現在可以測試修改是否成功,先kill vncserver服務
vncserver -kill :

pa aux|grep Xvnc
kill PID
重新啟動vncserver ,用vncviewer連線遠端桌面是不是已經變成自己喜歡的型別了。

在前面有vnc server 設定的文章(http: //bbs.chinaunix.net/forum/viewtopic.php?t=368552&highlight=yunqing) 裡, 我們已經可以在一個linux的伺服器上執行vncserver來進行遠端訪問了,但需要注意的是,如果直接使用vncviewer來進行訪問,有 兩點不利因素:
1. 口令傳輸是明文,很容易被偵聽到.
2. 防火牆需要開啟59xx埠,這在通常的單位裡是不可能的.
幸運的是,我們有ssh這個強大的工具,象X11 Forwarding(另文論述),我們可以使用ssh隧道來保護通訊過程,下面就進行簡單介紹.

假設vncserver執行在伺服器 myserver (ip地址為:192.168.x.x)的螢幕1,也就是偵聽 192.168.x.x:5901, 使用者名稱為foo

情形一: vnc客戶端為linux
這種情形很簡單,一般的linux發行版本里面都預設安裝了ssh套件.
1. 用ssh登入到伺服器

ssh -L 5901:localhost:5901 -l foo myserver

或者直接用ip地址

ssh -L 5901:localhost:5901 -l foo 192.168.x.x

2. 在本機的另外開的終端上,執行vncviewer (或其它的類似工具)
vncviewer localhost:1

情形二: vnc客戶端為windows
1. 下載一個ssh客戶端,個人推薦putty,只有一個程式,不需要安裝,簡單而功能齊全. 到這裡下載~sgtatham/putty/download.html
下載putty.exe到桌面上直接執行即可。
2. 執行putty,輸入伺服器的ip地址,輸入一個名字,這裡myserver作為session的名字,按save儲存。見附圖一
3. 單擊對話方塊左邊的tunnels來選擇相關設定,在source port裡輸入5901,在Destination裡輸入localhost:5901,按Add新增,如附圖二
4. 單擊左邊session,回到session設定,按save重新儲存。按open即可登入到伺服器。
5. 執行vnc-viewer (如果沒有,到這裡下載,只要一個 exe的檔案就行),在Server裡輸入localhost:1,見附圖三, 輸入口令後一個linux的桌面就會出現在windows裡,並且是非常 安全的,Cool

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/271283/viewspace-995874/,如需轉載,請註明出處,否則將追究法律責任。

相關文章