1. 程式人生 > >VNC黑屏解決辦法

VNC黑屏解決辦法

今天嘗試在CentOS上安裝一個VNC Server。CentOS5 已經自帶了VNC,預設也已經安裝了,只要配置一下就可以了(如果沒有安裝,可以:yum install vnc vncserver安裝)。Windows客戶端只需安裝一個vncviewer即可,例如realvnc。

安裝配置好以後,卻無法使用,主要遇到兩個問題:

1、無法連線至VNC Server。
2、連線上以後出現黑屏。

zz <wbr>解決CentOS下VNC連線黑屏的問題


解決方案總結如下:

VNCServer 配置

1.修改配置檔案/root/.vnc/xstartup

注:有的系統配置裡有 –nolisten tcp 和 –nohttpd ,這兩個是阻止Xwindows登陸和HTTP方式VNC登陸的,

如果需要圖形介面,那就刪除這部分


如果使用的是gnome影象介面,則需要註釋掉以下兩行,
#xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
#twm &
並新增以下這行:
gnome-session &

例如:我的配置檔案如下
#!/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 &

2. 修改使用者配置檔案:/etc/sysconfig/vncservers


開啟配置檔案:vi /etc/sysconfig/vncservers,去掉下面這兩行前的“#”,也就是說把這兩行的註釋給去掉。
VNCSERVERS=”1:root”
VNCSERVERARGS[1]="-geometry 800×600"

1表示VNC以桌面1執行,這樣可以啟動root的桌面。你可以新增其他的使用者,例如VNCSERVERS=”

1:root,2:user1,3:user2”,當然這些使用者是實現系統存在的。

例如:我的/etc/sysconfig/vncservers配置檔案如下:

VNCSERVERS=”1:root”
VNCSERVERARGS[1]="-geometry 800×600"

另外:如果有影象介面的話,在系統設定>伺服器設定>服務中把 vncserver 打勾,可以隨系統啟動。

3、改變xstartup的許可權

這個問題是很多人容易忽視的問題,也是造成連線成功後黑屏的原因之一。

在CentOS中,xstartup的檔案路徑為:/root/.vnc/ (可以通過locate xstartup來檢視xstartup的檔案路徑)

所以需要執行:chmod 777 root/.vnc/xstartup

4. 關閉防火牆對VNC埠的限制
如果需要從外網控制內網的某臺Linux,則需要開啟防火牆相應的埠,並在路由器上進行埠對映。
VNC給瀏覽器的埠是5800+N,給vncviewer的埠是5900+N,N是設定的display號。

如果不想開啟防火牆,但是仍需要VNC這項服務,則需要:

編輯vi /etc/sysconfig/iptables
在裡邊加入如下兩行:
-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

這裡需要的是,display N 對應的埠就是 5900+N,所以不建議設的太多。

5. 啟動 VNC Server:
開啟終端執行:
vncserver
第一次執行 vncserver,將會要求輸入兩次密碼,會看到如下提示資訊:
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
上邊資訊中的“:1”表示啟動的第一個vnc桌面。

6. 停止vncserver:(選讀)
停止 vncserver 的方法是執行:vncserver -kill :1
注意:“:1”,表示停止第一個vnc桌面,1代表當前啟用的VNCserver序號,“:1”之前是有一個空格的。如果目前啟動的序號是2,若要關閉其,則應該使用“vncserver -kill :2”.

7. 修改vnc密碼:(選讀)
修改vnc密碼的方法是執行:vncpasswd

輸入兩次密碼即可。

8:檢查伺服器端VNC Server是否正常執行中

執行:ps -ef|grep vnc

如果vnc在執行,可以看到類似的訊息:

[[email protected] ~]# ps -ef|grep vnc
root      3605     1 0 Jul13 ?        00:13:51 Xvnc :1 -desktop MyIMS.local:1(root) -httpd /usr/share/vnc/classes -auth /root/.Xauthority -geometry 800x600 -depth 16 -rfbwait 30000 -rfbauth /root/.vnc/passwd -rfbport 5901 -pn

說明是序號為":1"vnc程序在埠為5901上進行監聽。

9.VNC 客戶端

伺服器端執行正常後,我們方可以考慮使用VNC客戶端與其相連。
Windows 客戶端 VNC Viewer 的配置:
1. 從
 http://www.realvnc.com/download.html 下載 VNC Free Edition for Windows Version 4.1.2
2. 開啟 VNCViewer :
填入VNCServer 的IP:編號(1或2或…)
3. VNCViewer 切換全屏模式:F8

10 一些配置檔案
/etc/X11/xorg.conf 設定螢幕解析度

到這裡,您的VNC應該已經能夠連上,但有可能出現黑屏的問題:

1、檢視/root/.vnc/下的log日誌,有沒有報錯;有可能是xstartup許可權不夠。“chmod xstartup 777”更改下

許可權,重啟後再進。

2、重新啟動下電腦,試一試。我就是各種配置之後,始終黑屏,重啟電腦後OK。