VNC

虛擬網路控制台

VNC (Virtual Network Console)是虛擬網路控制台的縮寫。它 是一款優秀的遠程控制工具軟體,由著名的 AT&T 的歐洲研究實驗室開發的。VNC 是在基於 UNIX 和 Linux 操作系統的免費的開源軟體,遠程控制能力強大,高效實用,其性能可以和 Windows 和 MAC 中的任何遠程控制軟體媲美。在 Linux 中,VNC 包括以下四個命令:vncserver,vncviewer,vncpasswd,和 vncconnect。大多數情況下用戶只需要其中的兩個命令:vncserver 和 vncviewer。

組成部分


VNC基本上是由兩部分組成:一部分是客戶端的應用程序(vncviewer);另外一部分是伺服器端的應用程序(vncserver)。VNC的基本運行原理和一些Windows下的遠程控制軟體很相像。VNC的伺服器端應用程序在UNIX和Linux操作系統中適應性很強,圖形用戶界面十分友好,看上去和Windows下的軟體界面也很類似。在任何安裝了客戶端的應用程序(vncviewer)的Linux平台的計算機都能十分方便地和安裝了伺服器端的應用程序(vncserver)的計算機相互連接。另外,伺服器端 (vncserver)還內建了Java Web介面,這樣用戶通過伺服器端對其他計算機的操作就能通過Netscape顯示出來了,這樣的操作過程和顯示方式比較直觀方便。
VNC
VNC

特點


同樣可能遠程連入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
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的桌面環境及輸入裝置。