VNC(Virtual Network Console)是一款由AT&T的歐洲研究實驗室開發的遠程控制工具軟件,它是一款優秀的虛擬網絡控制臺,是基于UNIX和Linux操作系統的免費開源軟件。VNC具有強大的遠程控制能力和高效實用性,其性能可以與Windows和麥金塔中的任何遠程控制軟件媲美。用戶可以使用vncserver和vncviewer這兩個命令來進行遠程控制。VNC還可以通過網絡傳輸鍵盤和鼠標的動作以及實時屏幕畫面。VNC(Virtual Network 計算機)是虛擬網絡計算機的縮寫,由Olivetti&Oracle數據庫研究室開發,后來并入AT&T。
組成部分
VNC基本上是由兩部分組成:一部分是客戶端的應用程序(vncviewer);另外一部分是服務器端的應用程序(vncserver)。VNC的基本運行原理和一些Windows下的遠程控制軟件很相像。VNC的服務器端應用程序在unix和Linux操作系統中適應性很強,圖形用戶界面十分友好,看上去和Windows下的軟件界面也很類似。在任何安裝了客戶端的應用程序(vncviewer)的Linux平臺的計算機都能十分方便地和安裝了服務器端的應用程序(vncserver)的計算機相互連接。另外,服務器端 (vncserver)還內建了Java Web接口,這樣用戶通過服務器端對其他計算機的操作就能通過網景顯示出來了,這樣的操作過程和顯示方式比較直觀方便。
特點
同樣可能遠程連入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="-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 -固體 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的桌面環境及輸入裝置。
參考資料 >