2021-05-12 14:32:11
遠端管理之VNC 詳解
遠端管理的基本概念
①RDP(remote desktop protocol)協定 遠端桌面協定,我們常用的windows作業系統就是的遠端桌面管理就是基於該協定的,更多有關RDP協定的可以檢視百度百科 RDP
②telnet CLI介面下的遠端管理工具,因為其歷史非常悠久,幾乎所有的作業系統都有該工具(telnet在傳送資料時是通過明文傳輸的,沒有加密,所以現在幾乎都不會使用telnet來進行遠端管理了) telnet
③SSH(Secure Shell)協定 CLI介面下的遠端管理工具,幾乎所有的作業系統都有(區別於telnet,SSH在進行資料傳送時會對資料進行加密,所以SSH是比較安全的協定),幾乎所有的類UNIX作業系統都是採用SSH來進行遠端管理(Linux、BSD、Mac OS等)。 SSH
④RFB(Remote FrameBuffer)協定 圖形化遠端管理協定,VNC(Virtual Network Computing)就是基於該協定的,上面講的SSH在類UNIX下是CLI介面常用的遠端管理方式,那麼在類UNIX作業系統中,同樣存在圖形化的遠端管理工具,VNC就是類UNIX系統下常用的圖形化遠端管理工具 VNC
VNC概述
VNC (Virtual Network Computing)是虛擬網路計算機的縮寫。VNC 是一款優秀的遠端控制工具軟體,由著名的 AT&T 的歐洲研究實驗室開發的。VNC 是在基於 UNIX 和 Linux作業系統的免費的開源軟體,遠端控制能力強大,高效實用,其效能可以和 Windows 或 MAC 中的任何遠端控制軟體媲美。在 Linux 中,VNC 包括以下四個命令:vncserver,vncviewer,vncpasswd,和 vncconnect。大多數情況下只需要其中的兩個命令:vncserver 和 vncviewer。目前,原來的AT&T版本已經不再使用,因為更多有重大改善的分支版本已經出現, 像是RealVNC, VNC tight 和UltraVNC。 Real VNC 是當前最活躍和強大的主流應用。
VNC原理
VNC系統由用戶端,伺服器端和一個協定組成。VNC的伺服器端目的是分享其所執行機器的螢幕, 伺服器端被動的允許用戶端控制它。 VNC用戶端(或Viewer) 觀察控制伺服器端,與伺服器端互動。 VNC 協定 Protocol (RFB)是一個簡單的協定,傳送伺服器端的原始影象到用戶端(一個X,Y 位置上的正方形的點陣資料), 用戶端傳送事件訊息到伺服器端。
伺服器傳送小方塊的幀快取給用戶端,在最簡單的情況,VNC協定使用大量的頻寬,因此各種各樣的方法被發明出來減少通訊的開支,舉例來說,有各種各樣的編碼方法來決定最有效率的方法來傳送這些點陣方塊)
協定允許用戶端和伺服器端去協定哪種編碼會被使用,最簡單的編碼,被大多數用戶端和伺服器端所支援的是, 從左到右的畫素掃描資料的原始編碼, 當原始的滿屏被傳送後,只傳送變化的方塊區域。這種編碼在幁間只有小部分螢幕變化的情況下工作的非常好(像是滑鼠鍵在桌面移動的情況,或在游標處敲擊文字),不過如果大量的畫素同時變化頻寬將會增加的非常高,像是拖動一個視窗或觀看全螢幕錄影。
VNC預設使用TCP埠5900至5906,而Java的VNC用戶端使用5800至5806。一個伺服器端可以在5500口用“監聽模式”連線一個用戶端,使用監聽模式的一個好處是伺服器端不需要設定防火牆。
UNIX上的VNC稱為xvnc,同時扮演兩種角色,對X視窗系統的應用程式來說它是X server,對於VNC用戶端來說它是VNC伺服器程式。
實驗環境
VNC伺服器端:
作業系統:Red Hat Enterprise Linux Server release 5.7 (Tikanga)
VNC 包括以下四個命令:vncserver,vncviewer,vncpasswd,和 vncconnect。
VNC用戶端:
作業系統:Windows 7專業版 64位元作業系統
VNC安裝設定
1、安裝VNC包
[root@localhost /]# cd /mnt/cdrom/Server
[root@localhost /]# rpm -ivh vnc-server-4.1.2-14.el5_6.6.x86_64.rpm
[root@localhost /]# rpm -ivh vnc-4.1.2-14.el5_6.6.x86_64.rpm
驗證vnc-server包是否安裝成功:
[root@localhost /]# rpm -qa vnc-server
vnc-server-4.1.2-14.el5_6.6
[root@localhost /]#yum install tigervnc-server 另外一種安裝。
2、設定vncservers檔案
修改/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 2:zzhz"#修改資訊
VNCSERVERARGS[1]="-geometry 1024x768 -nolisten tcp -nohttpd "#修改資訊
VNCSERVERARGS[2]="-geometry 1024x768 -nolisten tcp -nohttpd " #修改資訊
說明:VNCSERVERS 是用來設定可以使用VNC的伺服器賬號,可以設定多個,例如上面root、etl,但是中間要用空格隔開。使用VNCVIEWER登入時,192.168.48.128:1表示是以root賬號登入,以此類推。
關於引數設定說明:
1:-geometry 表示桌面解析度,預設為1024x768,所以上面的1024x768也可以不寫。
2:-nohttpd 表示不監聽HTTP埠(58xx)。
3:-nolisten tcp 表示不監聽TCP埠(60xx)
4:-localhost 只執行從本機存取。
5:AlwaysShared 預設只允許一個VNCVIEWER連線,此參數列示同一個顯示埠允許多使用者同時登入.
6:-depth 表示色深,引數有8,16,24,32.
7: SecurityTypes None 登入不需要密碼認證VncAuth預設值,要密碼認證。
3、設定VNC使用者密碼
如果此時不設定VNC使用者密碼,啟動vncserver服務,則會報如下錯誤:
[root@localhost ~]# service vncserver start
Starting VNC server: 1:root [FAILED]
[root@localhost /]# vncpasswd
Password:
Verify:
[root@localhost /]# su - zzhz # 不同賬號生成密碼時,同時也生成一個檔案xstartup檔案。
[zzhz@localhost ~]$ vncpasswd
Password:
Verify:
4、啟動vncserver服務
[root@localhost ~]# service vncserver start #重新啟動後服務將自動關閉
[root@localhost ~]#chkconfig vncserver on #開機自動啟動服務
5、設定xstartup檔案
VNC會在使用者根目錄($HOME)下的".vnc"資料夾下生成一系列檔案。其中passwd為vnc使用者密碼檔案,由vncpasswd生成。其他的都由vnc初次啟動時生成,xstartup為VNC用戶端連線時啟動的指令碼。
[root@localhost Server]# cat /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 &
切換到zzhzl賬號
[root@localhost ~]# su - zzhz
[zzhz@localhost ~]$ vi /home/etl/.vnc/xstartup# 修改同上。
5、用戶端連線伺服器
關於VNC服務使用的埠號與桌面號相關,VNC使用TCP埠從5900開始,對應關係如下
桌面號為“1” ---- 埠號為5901
桌面號為“2” ---- 埠號為5902
桌面號為“3” ---- 埠號為5903
6、設定防火牆
如果你不設定防火牆,此時用VNC Viewer連線的話,一般會報:"connect:Connection timed out(10060)"錯誤,如下所示:
[root@localhost ~]# iptables -I INPUT -p tcp --dport 5901 -j ACCEPT
[root@localhost ~]# iptables -I INPUT -p tcp --dport 5902 -j ACCEPT
CentOS 6.5 安裝VNC Server實現圖形化存取 http://www.linuxidc.com/Linux/2015-12/126262.htm
VNC的安裝設定 http://www.linuxidc.com/Linux/2013-05/84941.htm
CentOS 6.3安裝和設定VNC http://www.linuxidc.com/Linux/2013-05/84668.htm
Linux下強制不檢測依賴安裝VNC http://www.linuxidc.com/Linux/2013-05/84075.htm
CentOS6 VNC服務安裝設定 http://www.linuxidc.com/Linux/2013-04/82510.htm
CentOS下VNC設定和安裝 http://www.linuxidc.com/Linux/2013-05/83975.htm
VNC遠端控制安裝和設定 http://www.linuxidc.com/Linux/2013-01/77769.htm
Windows通過VNC存取Ubuntu http://www.linuxidc.com/Linux/2012-10/73043.htm
Windows遠端桌面存取Ubuntu 12.04 之安裝VNC http://www.linuxidc.com/Linux/2012-07/64801.htm
本文永久更新連結地址:http://www.linuxidc.com/Linux/2016-08/134501.htm
相關文章