歡迎您光臨本站 註冊首頁

Linux操作系統下搭建VNC遠程控制軟體詳盡教程

←手機掃碼閱讀     火星人 @ 2014-03-03 , reply:0

Linux操作系統下搭建VNC遠程控制軟體詳盡教程

整個VNC運行的工作流程如下:

(1) VNC客戶端通過瀏覽器或VNC Viewer連接至VNC Server。

(2) 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 viewer.

VNC Server下載地址:http://www.Linuxeden.com/download/softdetail.php?softid=744

VNC viewer下載地址:http://download.pchome.net/php/dl.php?sid=2603

2.安裝.

rpm –Uvh VNC-3.3.6-2.i386.rpm (如果是源代碼請看包里的說明)

當下載了VNC的Linux版本后,可以解壓文件到一個文件夾中,例如/home/VNC,然後複製文件VNCserver、VNCpasswd和XVNC到/usr/bin目錄中。假如想要能夠通過VNC伺服器的整合Java界面遠程控制Linux電腦,也得需去建立一個子目錄/usr/local/VNC/classes。在建立此子目錄之後,複製VNCJava.class文件到此目錄中。(一般redhat 9.0自帶以上文件,所以直接用終端執行就可以)。

在Fedora 8上直接YUM下,巨方便。我從來不看怎麼安裝,這步驟的。

3.在Linux上啟動VNC Server

執行VNCserver命令:

# VNCserver

You will require a password to access your desktops.

Password: ----為了不想任何人都可以任意遙控此計算機。因此當第1次啟動VNC server時,會要求設置網路遙控的密碼。這個就是你的登陸VNC的密碼一定要夠安全。好像哪裡的文章上講可以配置用戶的。不過80%的人群不會習慣區分用戶的。因為VNC可以虛擬N個桌面的。霍霍,配合Linux的用戶很好很強大。

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命令即可。)

4.在Microsoft Windows上運行VNC Viewer

直接運行「VNCviewer.exe」,系統會出現」Connection details」對話框。

在「Connection details」對話框中的「VNC server」文本框中輸入VNC Server的IP地址(或主機名及顯示裝置編號,(請看3。在Linux上啟動VNC server的這一行,New 『X』 desktop is Linux:1 得到此信息),例如:192.168.0.1:1(冒號後面的1是執行VNC Server生成的顯示裝置編號),單擊「OK」按鈕后,VNC Server即會開始檢查所輸入的信息,若是信息錯誤,系統會出現「Failed to connect to server」的錯誤信息:若是信息正確,則會接著出現「VNC Authentication」對話框。

若是在「VNC Authentication」對話框中輸入的密碼正確,就可以成功地打開Linux的桌面窗口。

5. 從瀏覽器遠程遙控。

啟動VNC Server 后直接打開瀏覽器,在地址欄中輸入被控端的網址或IP地址,並在網址后加上「:5800+顯示編號」的埠號即可操控該計算機。

例如:http://192.168.0.1:5801 (如果顯示編號為1,一般第一次設置的顯示編號都是1,就用5800+1=5801。)

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

沒事誰用瀏覽器啊。。。。。無聊的一步

6.設置VNCserver啟動變數:

為了使VNCserver在每次啟動時保持不變的埠號(5901)

在/etc/rc.d/rc.local文件中添加命令:

rm -f /tmp/.X11-unix/X*

rm -f /.VNC/*.pid

rm -f /.VNC/*.log

這樣,每次啟機,系統會先把上次非正常關機時留下的臨時文件刪除。

8、結束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 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &

twm &

將#!/bin/sh後面的內容全部註釋掉,改成

~/.Xclients

保存文件

現在可以測試修改是否成功,先kill VNCserver服務

VNCserver -kill :



pa aux|grep XVNC

kill PID

重新啟動VNCserver ,用VNCviewer連接遠程桌面是不是已經變成自己喜歡的類型了。

在前面有VNC server 設置的文章里, 我們已經可以在一個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,只有一個程序,不需要安裝,簡單而功能齊全. 到這裡下載http://www.chiark.greenend.org.uk/~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 (如果沒有,到這裡下載http://www.realVNC.com/download.html,只要一個 exe的文件就行),在Server里輸入localhost:1,見附圖三, 輸入口令后一個Linux的桌面就會出現在windows里,並且是非常安全的,Cool 能玩到這步驟的都是我崇拜的對象。
《解決方案》

Q. 如何以圖形界面登錄被控端?

編輯~/.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" &

gnome-session & 建議選這個。。。其他的都給它前面加上#

startkde &

twm &

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

Q. 如何開機時自動啟動VNC服務

打開「系統設置」-->"伺服器設置"-->"服務",勾選上VNCserver,「保存」。

修改 /etc/sysconfig/VNCservers

VNCSERVERS="1:root 2:phred 3:sysadmin" 1代表「桌面1」,root代表用戶名;可同時啟動多個用戶桌面

VNCSERVERARGS="-geometry 800x600 -alwaysshared -depth 24"

-alwaysshared代表允許多用戶同時登錄 -depth代為色深,參數有8,16,24,32。

這步有點高深了。。。也複雜點,其實客戶端可以完成80%的配置。而我有更好的方法,因為SSH啟動是默認的。SSH上去打開VNC就行了。也不過一條命令。更多的是安全。

Q.為什麼連接后,不能顯示桌面,而只有一個Terminal窗口?

試著修改/root/.VNC/xstartup,把最後一行 twm& 改成 gnome-session& or kde&(據說KDE在目前的VNC Viewer上的表現不太穩定)

Q.為什麼重新啟動VNC Server后,連接不上了?

因為重新啟動VNC Server時,系統會指定一個新的顯示編號,需使用此新的編號,否則就無法連接.

查看VNC已啟用的桌面號及監聽進程

# 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指定顯示桌面的解析度,默認為1024x768

VNCserver -geometry 800x600

這個命令實際中很有用,例如本地解析度為1024x768 如果不設定遠程VNC服務解析度就會造成桌面顯示不全的問題。

-depth 指定顯示顏色,設定範圍8~32

VNCserver -depth 16

用16bits顏色顯示

-pixelformat 指定色素格式與-depth大致相同,只是表示方法不一樣

VNCserver -pixelformat RGB888

用24bits顏色顯示

VNCserver -kill :display
《解決方案》

精華,多謝
《解決方案》

很有用,收藏了,有時間慢慢看。

[火星人 ] Linux操作系統下搭建VNC遠程控制軟體詳盡教程已經有608次圍觀

http://coctec.com/docs/service/show-post-247.html