VNC服務器實現

本文轉自 http://www.ha97.com/4634.html


LINUX下VNC SERVR 的遠程桌面配置


PS:偶以前基本不用Linux的遠程圖形桌面,前幾天有開發的同事配置CentOS的vnc有問題,找我解決,就順便記錄總結一下,這個總結是比較完整的。下面的配置在CentOS5.x和6.x、SUSE企業版親測驗證,其他發行版按理也通用:

一、安裝相應桌面環境與vnc服務端和客戶端:

# yum groupinstall "GNOME Desktop Environment"(CentOS 5.x安裝GNOME桌面環境)
# yum groupinstall "X Window System" "Desktop"(CentOS 6.x安裝GNOME桌面環境)
# yum groupinstall Xfce(CentOS安裝Xfce桌面環境,可選)
# yum install vnc-server vnc* (CentOS 5.x裏)
# yum install tigervnc-server tigervnc (CentOS 6.x裏)

說明:Xfce與KDE,Gnome都是圖形桌面環境,其特點是佔用資源更小資源佔用情況大致爲:Gnome>KDE>Xfce。具體情況與版本有關。一般版本越新,資源佔用越大。

二、VNC的啓動和重啓:
# /etc/init.d/vncserver restart
注:有時候上面的命令啓動會報錯,直接運行就可以:
# vncserver
注:關閉具體的vncserver命令:vncserver -kill :1 vncserver -kill :2

三、設置遠程登陸到gnome桌面的配置:
# vim /etc/sysconfig/vncservers(SUSE企業版不用配置此文件)
再最後面加入如下兩行:

VNCSERVERS="1:root"
VNCSERVERARGS[1]="-geometry 1024x768 -alwaysshared -depth 24"

說明:

1、-alwaysshared表示同一個顯示端口允許多用戶同時登錄 -depth代爲色深,參數有8、16、24、32;
2、這裏的“用戶名”是指linux系統用戶的名稱;
3、上面三行中第一行是設定可以使用VNC服務器的帳號,可以設定多個,但中間要用空格隔開。注意前面的數字“1”或是“2”,當你要從其它電腦來VNC服務器時,就需要用IP:1這種方法,而不能直接用IP。如假定你的VNC服務器IP是192.168.1.100,那想進入VNC服務器,並以peter用戶登錄時,需要在vncviewer裏輸入IP的地方輸入:192.168.1.100:1,如果是root,那就是192.168.1.100:2;
4、下面兩行[1][2]最好與上面那個相對應,後面的800X600可以換成你電腦支持的分辨率。注意中間的”x”不是“*”,而是小寫字母”x”。

四、設置vnc訪問密碼:
# vncpasswd
說明:這裏是爲上面的root遠程用戶配密碼,所以在root賬戶下配;依次類推,爲別的賬戶配密碼,就要在別的賬戶下設密碼

五:修改遠程桌面顯示配置文件:
# vim /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 & #set starting GNOME desktop
#startkde & #kde desktop
#twm & #Text interface
#/usr/bin/startxfce4
#exec /usr/bin/fluxbox

說明:
1、不修改此文件你看到的遠程桌面很簡單,相當於命令行操作,爲了遠程操作如同本地操作一樣,務必參考以上方式進行修改;
2、只要你啓用一次VNCserver,就能自動創建,方法如下:
# vncserver
通過上面的方法,就可以在用戶家目錄下的.vnc目錄裏創建xstartup文件。

六、vnc客戶端登陸:
在vnc客戶端中輸入:服務器端IP:1 或 服務器端IP:2

如圖所示:
vnc-centos5.jpg

vnc-sl6.jpg

iptables防火牆默認會阻止vnc遠程桌面,所以需要在iptables允許通過。當你啓動vnc服務後,你可以用netstat –tunlp命令來查看vnc服務所使用的端口,可以發現有5801,5901,6001等。使用下面命令開啓這些端口:
# vim /etc/sysconfig/iptables
添加:
-A RH-Firewall-l-INPUT -p tcp -m tcp –dport 5801 -j ACCEPT
-A RH-Firewall-l-INPUT -p tcp -m tcp –dport 5901 -j ACCEPT
-A RH-Firewall-l-INPUT -p tcp -m tcp –dport 6001 -j ACCEPT
重啓防火牆:
# /etc/init.d/iptables restart
或者直接關閉防火牆:
# /etc/init.d/iptables stop

七、開機自啓動vncserver服務:
# chkconfig vncserver on

八、vnc的反向連接設置:

在大多數情況下,vncserver總處於監聽狀態,vnc client主動向服務器發出請求從而建立連接。然而在
一些特殊的場合,需要讓vnc客戶機處於監聽狀態,vncsrever主動向客戶機發出連接請求,此謂vnc的
反向連接。
主要步驟:
a、啓動vnc client,使vncviewer處於監聽狀態;
# vncviewer -listen
b、啓動vncserver
# vncserver
c、在vncserver端執行vncconnect命令,發起server到client的請求;
# vncconnect -display :1 192.168.80.135

九、可能遇到的問題:

a、黑屏
在Linux裏安裝配置完VNC服務端,發現多用戶登陸會出現黑屏的情況,具體的現象爲:
客戶端可以通過IP與會話號登陸進入系統,但登陸進去是漆黑一片,除了一個叉形的鼠標以外,伸手不見五指。

原因:用戶的VNC的啓動文件權限未設置正確。
解決方法:將黑屏用戶的xstartup(一般爲:/用戶目錄/.vnc/xstartup)文件的屬性修改爲755(rwxr-xr-x)。
完後殺掉所有已經啓動的VNC客戶端:
vncserver -kill :1
vncserver -kill :2 (注意:-kill與:1或:2中間有一空格)
最後重啓vncserver服務即可! # /etc/init.d/vncserver restart

注意:vncserver只能由啓動它的用戶來關閉,即時是root也不能關閉其它用戶開啓的vncserver,
除非用kill命令暴力殺死進程。

b、Windown下如何登陸VNC Server
(1)從瀏覽器登錄(瀏覽器需要安裝JAVA支持庫,作爲java applet來實現,才能登錄控制VNC服務器,可以yum install java*安裝)
直接從瀏覽器中輸入如下地址:

http://xxx.xxx.xxx.xxx:5801

vnc5801.jpg

vnc-5801-2.jpg

(2)從VNC客戶端登錄
windows上安裝vnc客戶端,然後輸入xxx.xxx.xxx.xxx:x,連接登錄。

備註:
a、輸入的格式爲IP:號碼,號碼要看你自己的配置而定。如192.168.80.128:1
b、登陸提示connection refused(10061),則是因爲linux防火牆的問題,請檢查防火牆設置。
c、後面的尾綴”:x”也是不能少的,要不然老提示failed to connect : connection refused (10061)

vps-vnc1.jpg



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章