在機房折磨很久弄好的自己 mark 一下。(測試環境rhel5.5)
vnc 之獨立服務配置
步驟一:
(1)查看系統是否安裝vnc服務(也可以在 系統-管理員-服務 里查看并勾選開機自啟)
# rpm -qa | grep vnc
(如果有返回值,類似于vnc-server的值,說明已經安裝了vnc-server此步驟就可跳過。)
(2)安裝vnc:


(進入掛載目錄) # cd /rhdvd/Server (安裝 vnc-server) # rpm -ivh vnc-server-4.1.2-14.el5_6.6.x86_64.rpm (安裝 vnc-viewer) # rpm -ivh vnc-4.1.2-14.el5_6.6.x86_64.rpm
View Code
(3)驗證vnc-server包是否安裝成功:


# rpm -qa vnc-server-4(顯示 vnc-server-4.1.2-14.el5_6.6)
View Code
?
步驟二:
(1)運行vnc服務
# vncservers
(首次運行需要輸入vnc密碼,此密碼為當前用戶root的vnc密碼)?
(2)添加用戶和設置密碼并設置vnc密碼:
# useradd user001 (添加用戶) # passwd user001 (設置用戶密碼) # su - user001 (切換用戶) # vncpasswd (設置vnc密碼,密碼文件在 /用戶/.vnc/passwd)
(注意,這里的vncpass只能在vnc本用戶下面來運行。比如要是想配置用戶名為user001的vnc認證密碼,需要先切換到user001用戶,之后再運行vncpasswd命令)
(3)重復建立user002、user003…….
?
步驟三:
在配置VNC前,必須了解VNC的運行機制
linux下的VNC可以同時啟動多個vncserver,各個vncserver之間用顯示編號(display number)來區分,每個vncserver服務監聽3個端口,它們分別是:
HTTP協議默認端口 5800+顯示編號 : VNC的http監聽端口,如果VNC客戶端為IE,Firefox等非vncviewer時必須開放。?
RFB協議默認端口 5900+顯示編號 ? : VNC服務端與客戶端通信的真正端口,必須無條件開放。
X協議默認端口 6000+顯示編號 ? ? ? : X監聽端口,可選。
顯示編號、開放的端口分別由/etc/sysconfig/vncservers文件中的VNCSERVERS和VNCSERVERARGS控制。
(1)配置vnc服務的配置文件
# vi /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="2:myusername"# VNCSERVERARGS[2]="-geometry 800x600 -nolisten tcp -nohttpd -localhost"VNCSERVERS="1:user001 2:user002 3:user003 4:user004" (添加) VNCSERVERARGS[1]="-geometry 1366x768 -AlwaysShared" (添加) VNCSERVERARGS[2]="-geometry 1366x768 -AlwaysShared" (添加) VNCSERVERARGS[3]="-geometry 1366x768 -AlwaysShared" (添加) VNCSERVERARGS[4]="-geometry 1366x768 -AlwaysShared" (添加)
View Code
說明:【1】VNCSERVERS=后面可以支持多用戶,以空格隔開,數字為端口號即桌面號。
【2】VNCSERVERARGS后面的[]里面的數據要與VNCSERVERS后面對應用戶的值要一致。VNCSERVERARGS基本參數有:


-geometry 桌面大小,缺省是1024x768分辨率-nohttpd 不監聽HTTP端口,58xx端口(建議不寫) -nolisten tcp 不監聽X端口,60xx端口(建議不寫) -localhost 只允許從本機訪問(不寫)-SecurityTypes None 登錄不需要密碼認證VncAuth,默認要密碼認證-depth 表示色深,參數有8,16,24,32-AlwaysShared 默認只能有一個vncviewer連接(跟客戶端配置也有關),一旦第2個連上去,第1個就被斷開了,此參數允許同時連多個vncviewer
View Code
?
步驟四:
(1)啟動vncserver
# service vncserver start (即時開啟服務并生效) # /etc/init.d/vncserver start # service vncserver stop (即時關閉服務并生效) # /etc/init.d/vncserver stop # chkconfig vncserver on (將vncserver設置為開機啟動,重啟生效) # chkconfig vncserver off (將vncserver設置為開機不啟動,重啟生效)
?
步驟五:
(1)配置VNC圖形桌面環境
vnc都配置完畢并且正常運行,但是用VNC-Viewer登錄后顯示的屏幕卻為灰色(也有黑色的),并且無法進行任何操作。
原來VNC xstartup程序中默認的設定值是啟動twm,而不是GNOME或KDE。
【1】修改xstart文件:
# vi /home/用戶/.vnc/xstartup (root用戶為 /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" & (注解此行) gnome-session & (添加) # twm & (注解此行)
View Code
說明: 也可只注解最后一行 twm & ,并添加一行 gnome-session &。
也可只去掉3、4句注解。
最好方式是都改一下。
【2】修改完需重啟vncserver:
# service vncserver restart (重啟全部vnc桌面,不建議用此條命令) # vncserver -kill :1 (停止第一個桌面) # vncserver :1 (啟動第一個桌面)
?
步驟六:
(1)配置防火墻
# vi /etc/sysconfig/iptables
內容如下:


# Firewall configuration written by system-config-securitylevel # Manual customization of this file is not recommended.*filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] :RH-Firewall-1-INPUT - [0:0]-A INPUT -j RH-Firewall-1-INPUT-A FORWARD -j RH-Firewall-1-INPUT-A RH-Firewall-1-INPUT -i lo -j ACCEPT-A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT-A RH-Firewall-1-INPUT -p 50 -j ACCEPT-A RH-Firewall-1-INPUT -p 51 -j ACCEPT-A RH-Firewall-1-INPUT -p udp --dport 5353 -d 224.0.0.251 -j ACCEPT-A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT-A RH-Firewall-1-INPUT -p tcp -m tcp --dport 631 -j ACCEPT-A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 5901 -j ACCEPT (添加)-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 5902 -j ACCEPT (添加)-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 5903 -j ACCEPT (添加)-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 5904 -j ACCEPT (添加)-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited COMMIT
View Code
也可關閉防火墻(不建議):


# service iptables stop (即時關閉防火墻,重啟失效) # chkconfig iptables off (永久關閉防火墻,重啟有效)
View Code
?
步驟七:
192.168.10.131:1——這里的:1就是端口號,指的是5900+1,這個1是在/etc/sysconfig/vncservers里面指定的。
? ? ?這個數字在100以下,不含100的時候可以直接用192.168.10.131:1來表示。
? ? ?如果在vncservers里面指定的數值大于100 包含100的時候,在連接的時候就需要用到完整的端口數值。
? ? ?如:在vncservers里面指定的是100,那么在連接的時候就應該是這樣的:192.168.10.131:6000。