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