Redhat 6.0中VNC Server的配置方法
1、 查詢系統是否安裝vnc-server
[[email protected] ~]# rpm –qa | grep vnc
如果有返回值,類似於vnc-server-的值,說明已經安裝了vnc-server
2、 安裝vnc-server
網上大都搜到的方法是輸入
[[email protected] ~]# yum install tigervnc-server
但是在我們的環境中執行時卻提示:No package tigervnc-server available.
所以只能採用另一種辦法,就是先執行
[[email protected] ~]# yum search vnc
在返回結果中找到可用的包,再相應執行對應的包即可。
[[email protected] ~]# yum install vnc-server
3、 配置vnc-server的配置檔案
輸入
[[email protected] ~]# 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:root"
這樣即完成了root使用者的配置,VNCSERVERARGS引數這一行可以不進行設定。
這裡有兩點要注意:
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預設值,要密碼認證
4、 設定VNC連線密碼
上一步配置好配置檔案之後,我們要用vncpasswd來設定vnc連線時候的認證密碼。
[[email protected] ~]# vncpasswd
Password:
Verify:
注意,這裡的vncpass只能在vnc本使用者下面來執行。比如要是想配置使用者名稱為oracle的vnc認證密碼,需要先切換到oracle使用者,之後再執行vncpasswd命令。
[[email protected] ~]# su - oracle
[[email protected] ~]$ vncpasswd
Password:
Verify:
5、 啟動vncserver
以上介紹了VNC Server的安裝以及配置過程,下面介紹對該服務的常規管理方法。
[[email protected] ~]# service vncserver start
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
[ OK ]
關閉該服務的命令為
[[email protected] ~]# service vncserver stop
也可以通過以下命令檢視vncserver的執行狀態
[[email protected] ~]# service vncserver status
這裡,將vncserver設定為開機預設啟動。
[[email protected] ~]# chkconfig vncserver on
6、 防火牆配置
儘管以上過程已經完成,並且vncserver服務也啟動,但卻還是連不上,這時,可能的原因就是該請求被防火牆遮蔽了。所以這裡介紹下防火牆的配置方法。
vnc服務執行時,使用netstat -antpl檢視可以發現有三個埠在監聽。
5901 5801 6001
預設的,vnc 服務監聽3個TCP埠
RFB(Remote FrameBuffer)協議 預設埠:5900+顯示器號
HTTP協議預設埠:5800+顯示器號
X協議 預設埠:6000+顯示器號
vncserver使用的顯示器編號預設從1開始,依次使用,也可以引數指定埠號。
因為我們需要建立遠端連線,所以只需要RFB協議就可以了。
下面介紹配置防火牆的過程。
[[email protected] ~]# vi /etc/sysconfig/iptables
檔案內容為
# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
按照/etc/sysconfig/vncservers檔案中的配置,我們需要開啟5901的埠號,只需在
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
下面加入一行
-A INPUT -m state --state NEW -m tcp -p tcp --dport 5901 -j ACCEPT
即開啟了5901的埠。
當使用VNC-Viewer進行連線時,
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
vnc裡面預設是以5900這個埠為基礎的,這個應該是可以更改的,不過得改原始碼。
7、 配置VNC圖形桌面環境為KDE或GNOME桌面環境
有人可能遇到這種情況,vnc都配置完畢並且正常執行,但是用VNC-Viewer登入後顯示的螢幕卻為灰色(也有黑色的),並且無法進行任何操作,這是什麼原因呢。(遇上了是你的不幸,需要好好閱讀下面的內容並進行配置。沒遇上你也別幸災樂禍,搞清楚原理,有備無患。)
原來VNC xstartup程式中預設的設定值是啟動twm,而不是GNOME或KDE。
所以需要對xstart檔案做小小的修改,
[[email protected] ~]# vi .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 &
我在設定時是將最後兩行註釋掉並且加上
gnome-session &
之後再重啟vncserver
[[email protected] ~]# service vncserver restart
再次登入VNC-Viewer,出現了可愛的Redhat桌面,成功解決灰屏問題。
以上是個人在Redhat 6.0中配置VNC Server的過程,希望能減少大家在做此類配置時的麻煩。有問題之處還請指出,謝謝。