一、什么是VNC?
VNC (Virtual Network Computer)是虛擬網絡計算機的縮寫。VNC 是一款優秀的遠程控制工具軟件,由著名的 AT&T 的歐洲研究實驗室開發的。VNC 是在基於 UNIX 和 Linux 操作系統的免費的開源軟件,遠程控制能力強大,高效實用,其性能可以和 Windows 和 MAC 中的任何遠程控制軟件媲美。 在 Linux 中,VNC 包括以下四個命令:vncserver,vncviewer,vncpasswd,和 vncconnect。大多數情況下用戶只需要其中的兩個命令:vncserver 和 vncviewer。
二、VNC的特點
同樣可能遠程連入UNIX、Linux進行圖形化操作的還有流行的Xmanager,VNC與之相比——兩者工作原理不一樣,前者(VNC)是遠程連入操作系統,所有操作在UNIX、Linux主機服務端進行,即使操作過程中“本地電腦與操作主機網絡斷開”,也不影響操作的順利進行;而后者(Xmanager)是通過端口將主機服務器的UI界面引導到本地電腦進行展現,如操作過程出現“本地電腦與操作主機網絡斷開”,操作將中斷失敗!如果操作中進行的工作任務非常重要,不能中斷,如ORACLE RAC實施,結果是災難性的!更重要的是,VNC是免費的、開源的,Xmanager你可能用的是破解注冊版的。
三、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的桌面環境及輸入裝置。
四、安裝前准備:
操作系統:CentOS release 6.5 (Final)
內核版本:2.6.32-431.el6.x86_64
VNC服務端版本:
VNC客戶端版本:VNC-Viewer-5.2.3-Windows-64bit.msi
最小化安裝的linux要安裝桌面環境
yum groupinstall -y "Desktop" "Desktop Platform" "Desktop Platform Development" "Fonts" "General Purpose Desktop" "Graphical Administration Tools" "Graphics Creation Tools" "Input Methods" "X Window System" "Chinese Support [zh]" "Internet Browser"
五、安裝vncserver
1、查詢是否安裝VNC Server
# rpm -qa |grep vnc
2、安裝vncserver
# yum -y install tigervnc-server
3、配置分辨率和用戶登錄信息
# vim /etc/sysconfig/vncservers
參考最后兩行添加自己的配置
VNCSERVERS="2:root"
VNCSERVERARGS[2]="-geometry 1024x768"
4、配置 VNC 登錄密碼
執行下列命令
# vncserver
首次執行提示設置密碼,根據提示輸入兩次密碼即可
5、配置 VNC 登錄桌面模式
Centos Linux支持兩種圖形模式:KDE模式和gnome模式,如果是gnome桌面則需修改 /root/.vnc/xstartup 的配置相關項
# vim /root/.vnc/xstartup
個人理解上面的意思是用戶目錄下需要.vnc目錄因為我的不需要配置就可以直接通過vnc viewver直接連接linux
VNC的啟動/停止/重啟
# service vncserver start/stop/restart
關閉具體的vncserver命令:vncserver -kill :1 vncserver -kill :2
如果沒有安裝采用yum安裝
yum -y install vnc
2.配置VNC用戶如果以root登錄的話,輸入
vncpasswd
Password:
Verify:
設置root用戶的VNC登錄用戶名和密碼
3.配置vnc-server的配置文件
/etc/sysconfig/vncservers
內容如下:
# The VNCSERVERS variable is a list of display:user pairs.
#
# Uncomment the lines below to start a VNC server on display :2
# as my 'myusername' (adjust this to your own). You will also
# need to set a VNC password; run 'man vncpasswd' to see how
# to do that.
#
# DO NOT RUN THIS SERVICE if your local area network is
# untrusted! For a secure way of using VNC, see
#<URL:http://www.uk.research.att.com/archive/vnc/sshvnc.html>.
# Use "-nolisten tcp" to prevent X connections to your VNC server via TCP.
# Use "-nohttpd" to prevent web-based VNC clients connecting.
# Use "-localhost" to prevent remote VNC clients connecting except when
# doing so through a secure tunnel. See the "-via" option in the
# `man vncviewer' manual page.
VNCSERVERS="1:root"
# VNCSERVERS="2:myusername"
# VNCSERVERARGS[2]="-geometry 800x600 -nolisten tcp -nohttpd -localhost"
VNCSERVERARGS[1]="-geometry 800x600"
1.VNCSERVERS=后面可以支持多用戶,以空格隔開。如:
VNCSERVERS="1:myusername 15:otheruser"--->這里的1 和15是端口號,用於連接時的端口
2.VNCSERVERARGS后面的[]里面的數據要與VNCSERVERS后面對應用戶的值要一致。好像不一致也沒有關系
VNCSERVERARGS基本參數有:
-geometry 桌面大小,缺省是1024x768
-nohttpd 不監聽HTTP端口
-nolisten tcp 不監聽X端口
-localhost 只允許從本機訪問
-AlwaysShared 默認的, 同時只能有一個vncviewer連接(跟客戶端配置也有關), 一旦第2個連上去, 第1個就被斷開了. 此參數允許同時連多個vncviewer
-SecurityTypes None登錄不需要密碼認證 VncAuth默認值,要密碼認證
啟動vncserver
/sbin/nvcserver start
如果沒有出錯的話,就會啟動vnc服務了
4.修改默認桌面設置
在root的用戶目錄下面的.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" &
#twm & ---把這兩行注釋掉,加上
#exec startxfce4
gnome-session
重新啟動vncserver
netstat -antpl查看可以發現有三個端口在監聽。
5901 5801 6001
這三個端口:
默認的, vnc 服務監聽3個TCP端口
RFB(Remote FrameBuffer)協議 默認端口 : 5900 顯示器號
HTTP協議默認端口 : 5800 顯示器號
X協議 默認端口 : 6000 顯示器號
vncserver使用的顯示器編號默認從1開始, 依次使用, 也可以參數指定端口號
我們只需要RFB協議就可以了,所以我們把5800 6000這兩種端口關掉。
需要修改/etc/sysconfig/vncservers
在參數后面加上:
-nohttpd 不監聽HTTP端口
-nolisten tcp 不監聽X端口
5. Windows登陸到VNC Server
(1).從IE登錄
直接從IE瀏覽器中輸入如下地址:
http://xxx.xxx.xxx.xxx:5801
輸入密碼即可使用。
(2).從VNC view登錄
在windows上安裝vnc view,然后輸入xxx.xxx.xxx.xxx:1,連接登錄,輸入密碼即可。
備注:如果從vnc view登錄時,提示connection refused(10061),則是因為linux防火牆的問題,登錄centos系統,選擇 System-->Preferences-->Remote Desktop,勾選sharing中的兩項,Security兩項不勾,點擊關閉,然后再重新用vnc view登錄即可。