組成部分
VNC基本上是由兩部分組成:一部分是客戶端的應用程式(vncviewer);另外一部分是伺服器端的應用程式(vncserver)。VNC的基本運行原理和一些Windows下的遠程控制軟體很相像。VNC的伺服器端應用程式在UNIX和Linux作業系統中適應性很強,圖形用戶界面十分友好,看上去和Windows下的軟體界面也很類似。在任何安裝了客戶端的應用程式(vncviewer)的Linux平台的計算機都能十分方便地和安裝了伺服器端的應用程式(vncserver)的計算機相互連線。另外,伺服器端 (vncserver)還內建了Java Web接口,這樣用戶通過伺服器端對其他計算機的操作就能通過Netscape顯示出來了,這樣的操作過程和顯示方式比較直觀方便。
特點
同樣可能遠程連入UNIX、Linux進行圖形化操作的還有流行的Xmanager,VNC與之相比——兩者工作原理不一樣,前者(VNC)是遠程連入作業系統,所有操作在UNIX、Linux主機服務端進行,即使操作過程中“本地電腦與操作主機網路斷開”,也不影響操作的順利進行;而後者(Xmanager)是通過連線埠將主機伺服器的UI界面引導到本地電腦進行展現,如操作過程出現“本地電腦與操作主機網路斷開”,操作將中斷失敗!如果操作中進行的工作任務非常重要,不能中斷,如ORACLE RAC實施,結果是災難性的!更重要的是,VNC是免費的、開源的,Xmanager你可能用的是破解註冊版的。
命令描述
vncserver
此服務程式必須在在主(或遙控)計算機上運行。你只能作為使用者(不需要根用戶身份)使用此項服務。
vncviewer
本地應用程式,用於遠程接入運行vncserver的計算機並顯示其環境。你需要知道遠程計算機的IP位址和vncserver設定的密碼。
vncpasswd
vncserver的密碼設定工具。vncserver服務程式沒有設定密碼將不能運行(好習慣)。如果你沒有設定,運行vncserver時它會提示你輸入一個密碼。所以,一般我不會單獨運行這個命令來設定密碼。
vncconnect
告訴vncserver連線到遠程一個運行vncviewer的計算機的IP和連線埠號。這樣我就可以避免給其他人一個接入的密碼。
Xvnc
一個vnc“主控”程式,一般來說不需要直接運行。(vncserver和vncviewer實際上是Xvnc的腳本)
查找所有可用的選項,運行:
Xvnc --help
出於安全的考慮,一般不建議直接以超級用戶帳號運行vncserver程式。如果你需要超級用戶的環境,請以一般用戶登錄後再使用su命令登錄到超級用戶帳號。
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
安裝VNC
yum install vnc-server
添加用戶
useradd vnc
passwd vnc
設定用戶的vnc密碼
su vnc
vncpasswd
exit
編輯vnc配置檔案
vi /etc/sysconfig/vncservers
在最後加上:
VNCSERVERS="1:vnc"
VNCSERVERARGS[1]="-geometry 1024x768"
創建xstartup腳本
centos-6用戶忽視此步
/sbin/servicevncserverstart
/sbin/servicevncserverstop
su vnc
vi ~/.vnc/xstartup
加入如下代碼:
#!/bin/sh
# Add the following line to ensure you always have an xterm available.
( while true ; do xterm ; done ) &
# 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 &
退出到root:
exit
啟動vnc
/sbin/service vncserver start
測試vnc
7.1、使用java連線vncserver
在瀏覽器中輸入http://192.168.0.10:5801登錄桌面。
7.2、使用vnc viewer連線vncserver
打開vnc viewer,在server中輸入192.168.0.10:1進行連線。
注意:192.168.0.10替換成自己的伺服器IP。
工作流程
(1) 在伺服器端啟動 VNC Server。
(2) VNC客戶端通過瀏覽器或 VNC Viewer 連線至VNC Server。
(3) VNC Server傳送一對話視窗至客戶端,要求輸入連線密碼, 以及存取的VNC Server顯示裝置。
(4) 在客戶端輸入在線上密碼後,VNC Server驗證客戶端是否具有存取許可權。
(5) 若是客戶端通過 VNC Server 的驗證,客戶端即要求VNC Server顯示桌面環境。
(6) VNC Server通過X Protocol 要求X Server將畫面顯示控制權交由VNC Server負責。
(7) VNC Server將來由 X Server 的桌面環境利用VNC通信協定送至客戶端, 並且允許客戶端控制VNC Server的桌面環境及輸入裝置。