VNC安裝配置詳細說明
VNC概述
VNC (Virtual Network Computing)是的縮寫。VNC 是一款優秀的工具軟體,由著名的 的歐洲研究實驗室開發的。VNC 是在基於 和 的免費的,能力強大,高效實用,其效能可以和 或 中的任何遠端控制軟體媲美。在 Linux 中,VNC 包括以下四個命令:vncserver,vncviewer,vncpasswd,和 vncconnect。大多數情況下只需要其中的兩個命令:vncserver 和 vncviewer。目前,原來的AT&T版本已經不再使用,因為更多有重大改善的分支版本已經出現, 像是RealVNC, VNC tight 和UltraVNC。 Real VNC 是當前最活躍和強大的主流應用。
RealVNC官方網址 :
Tight VNC官方網址:
UltraVNC官方網址 :
VNC原理
VNC系統由客戶端,服務端和一個協議組成。VNC的服務端目的是分享其所執行機器的螢幕, 服務端被動的允許客戶端控制它。 VNC客戶端(或Viewer) 觀察控制服務端,與服務端互動。 VNC 協議 Protocol (RFB)是一個簡單的協議,傳送服務端的原始影像到客戶端(一個X,Y 位置上的正方形的點陣資料), 客戶端傳送事件訊息到服務端。
伺服器傳送小方塊的幀快取給客戶端,在最簡單的情況,VNC協議使用大量的頻寬,因此各種各樣的方法被發明出來減少通訊的開支,舉例來說,有各種各樣的編碼方法來決定最有效率的方法來傳送這些點陣方塊)
協議允許客戶端和服務端去協議哪種編碼會被使用,最簡單的編碼,被大多數客戶端和服務端所支援的是, 從左到右的畫素掃描資料的原始編碼, 當原始的滿屏被髮送後,只傳送變化的方塊區域。這種編碼在幁間只有小部分螢幕變化的情況下工作的非常好(像是滑鼠鍵在桌面移動的情況,或在游標處敲擊文字),不過如果大量的畫素同時變化頻寬將會增加的非常高,像是拖動一個視窗或觀看全屏錄影。
VNC預設使用埠5900至5906,而JAVA的VNC客戶端使用5800至5806。一個服務端可以在5500口用“監聽模式”連線一個客戶端,使用監聽模式的一個好處是服務端不需要設定防火牆。
上的VNC稱為xvnc,同時扮演兩種角色,對的應用程式來說它是X server,對於VNC客戶端來說它是VNC伺服器程式。
實驗環境
VNC服務端:
作業系統:Red Hat Enterprise Linux Server release 5.7 (Tikanga)
VNC客戶端:
作業系統:Windows 7專業版 64位作業系統
VNC安裝配置
1、安裝VNC包
[root@localhost /]# cd /depot/os/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
2、配置vncservers檔案
修改/etc/sysconfig/vncservers檔案,未經修改的vncservers檔案如下所示:
[root@localhost ~]# more /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:
# 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="2:myusername"
# VNCSERVERARGS[2]="-geometry 800x600 -nolisten tcp -nohttpd -localhost"
將最後兩行配置資訊取消註釋,新增系統賬號
VNCSERVERS="1:root 2:etl"
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 - etl
[etl@localhost ~]$ vncpasswd
Password:
Verify:
[etl@localhost ~]$
4、啟動vncserver服務
[root@localhost ~]# service vncserver start
Starting VNC server: 1:root
New 'localhost.localdomain:1 (root)' desktop is localhost.localdomain:1
Creating default startup script /root/.vnc/xstartup
Starting applications specified in /root/.vnc/xstartup
Log file is /root/.vnc/localhost.localdomain:1.log
2:etl
New 'localhost.localdomain:2 (etl)' desktop is localhost.localdomain:2
Creating default startup script /home/etl/.vnc/xstartup
Starting applications specified in /home/etl/.vnc/xstartup
Log file is /home/etl/.vnc/localhost.localdomain:2.log
[ OK ]
VNC會在使用者根目錄($HOME)下的".vnc"資料夾下生成一系列檔案。其中passwd為vnc使用者密碼檔案,由vncpasswd生成。其他的都由vnc初次啟動時生成,xstartup為VNC客戶端連線時啟動的指令碼
5、配置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 &
切換到etl賬號,依法炮製
[root@localhost ~]# su - etl
[etl@localhost ~]$ vi /home/etl/.vnc/xstartup
[root@localhost ~]# service vncserver restart
Shutting down VNC server: 1:root 2:etl [ OK ]
Starting VNC server: 1:root
New 'localhost.localdomain:1 (root)' desktop is localhost.localdomain:1
Starting applications specified in /root/.vnc/xstartup
Log file is /root/.vnc/localhost.localdomain:1.log
2:etl
New 'localhost.localdomain:2 (etl)' desktop is localhost.localdomain:2
Starting applications specified in /home/etl/.vnc/xstartup
Log file is /home/etl/.vnc/localhost.localdomain:2.log
[ OK ]
6、配置防火牆
如果你不配置防火牆,此時用VNC Viewer連線的話,一般會報:"connect:Connection timed out(10060)"錯誤,如下所示:
一般這種情況要麼關閉防火牆,要麼需要配置防火牆。
[root@localhost ~]# service iptables stop
Flushing firewall rules: [ OK ]
Setting chains to policy ACCEPT: filter [ OK ]
Unloading iptables modules: [ OK ]
關閉防火牆後,用VNCView連線伺服器沒有問題,但是一般不建議關閉防火牆,
[root@localhost ~]# service iptables restart
Flushing firewall rules: [ OK ]
Setting chains to policy ACCEPT: filter [ OK ]
Unloading iptables modules: [ OK ]
Applying iptables firewall rules: [ OK ]
Loading additional iptables modules: ip_conntrack_netbios_ns [ OK ]
[root@localhost ~]# iptables -I INPUT -p tcp --dport 5901 -j ACCEPT
[root@localhost ~]# iptables -I INPUT -p tcp --dport 5902 -j ACCEPT
OK,可以透過VNC連線到伺服器了
關於VNC服務使用的埠號與桌面號相關,VNC使用TCP埠從5900開始,對應關係如下
桌面號為“1” ---- 埠號為5901
桌面號為“2” ---- 埠號為5902
桌面號為“3” ---- 埠號為5903
……
基於Java的VNC客戶程式Web服務TCP埠從5800開始,也是與桌面號相關,對應關係如下
桌面號為“1” ---- 埠號為5801
桌面號為“2” ---- 埠號為5802
桌面號為“3” ---- 埠號為5803
基於上面的介紹,如果Linux開啟了防火牆功能,就需要手工開啟相應的埠,以開啟桌面號為“1”相應的埠為例,命令如下
開機自啟動vncserver服務
# chkconfig vncserver on
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29371470/viewspace-2156416/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- nginx 詳解 - 詳細配置說明Nginx
- nginx 詳解 – 詳細配置說明Nginx
- VNC安裝配置VNC
- linux安裝mysql的步驟和方法詳細說明LinuxMySql
- vnc安裝步驟,vnc安裝步驟詳解VNC
- Eclipse安裝教程 ——史上最詳細安裝java &python教程說明 【附視訊安裝演示】EclipseJavaPython
- Jmeter安裝配置詳細教程JMeter
- Linux sed命令詳細說明Linux
- CentOS 8.2下VNC安裝與配置CentOSVNC
- tesseract安裝說明
- MySQL的安裝與配置——詳細教程MySql
- Linux安裝和配置zokeeper 詳細教程Linux
- Linux安裝和配置tomcat詳細教程LinuxTomcat
- winscp操作說明,winscp操作說明的詳細解讀
- Flask-Limit使用詳細說明FlaskMIT
- AIX6.1下安裝及配置VNCAIVNC
- Webpack安裝配置及打包詳細過程Web
- 蘋果cms安裝及配置詳細教程蘋果
- 安裝vncVNC
- 本地windows搭建spark環境,安裝與詳細配置(jdk安裝與配置,scala安裝與配置,hadoop安裝與配置,spark安裝與配置)WindowsSparkJDKHadoop
- jpa 方法 命名規則 詳細說明
- 資料庫SQL Server 2016“功能選擇”詳細說明及精簡安裝選擇資料庫SQLServer
- SQL Server 2000詳細安裝過程及配置SQLServer
- SQL Server 2005詳細安裝過程及配置SQLServer
- 保姆級 | MySQL的安裝配置教程(非常詳細)MySql
- java安裝教程詳細 java環境配置教程Java
- 超詳細maven的解除安裝、重新安裝與配置Maven
- 4. Spring Cloud Ribbon 實現“負載均衡”的詳細配置說明SpringCloud負載
- Kibana安裝及使用說明
- Camtasia Studio 9 安裝說明
- Splunk實戰(一)——索引器配置以及轉發器安裝配置說明索引
- ldap安裝詳細LDA
- JQuery Datatables Columns API 引數詳細說明jQueryAPI
- 寬頻路由器的詳細說明路由器
- Windows Server 2016 Nginx 安裝配置詳細圖文教程WindowsServerNginx
- IN2003下JDK的詳細安裝配置步驟JDK
- idea maven怎麼安裝配置 idea maven配置教程詳細圖解IdeaMaven圖解
- Nginx安裝(詳細版本)Nginx