VNC黑屏解決辦法
今天嘗試在CentOS上安裝一個VNC Server。CentOS5 已經自帶了VNC,預設也已經安裝了,只要配置一下就可以了(如果沒有安裝,可以:yum install vnc vncserver安裝)。Windows客戶端只需安裝一個vncviewer即可,例如realvnc。
安裝配置好以後,卻無法使用,主要遇到兩個問題:
1、無法連線至VNC Server。
2、連線上以後出現黑屏。
解決方案總結如下:
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。