1. 程式人生 > >(總結)CentOS Linux下VNC Server遠端桌面配置詳解

(總結)CentOS Linux下VNC Server遠端桌面配置詳解

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
如圖所示:

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

(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)