1. 程式人生 > >VNC 的應用及灰屏滑鼠變X問題

VNC 的應用及灰屏滑鼠變X問題

Ubuntu中vnc伺服器端的安裝很簡單,執行如下命令:

$sudo apt-get install vnc4server
第一次啟動vncserver後,在使用者家目錄中會生成.vnc/目錄,注意:剛安裝完使用者家目錄中是沒有.vnc目錄的。伺服器中可以在不同的賬戶中啟動不同的display號,客戶端登入時需要填寫對應的display號登入到對應的賬戶。如果多個客戶端登入同一個display,會看到別人操作的動作,即會爭搶滑鼠。
預設的配置檔案是~/.vnc/xstartup。剛安裝完如果不修改配置檔案的話,從客戶端連線時將看不到完整的桌面,而只有一個Terminal視窗,如下圖所示
這是因為預設啟用的桌面配置的問題,需要修改配置檔案。
1、新使用者在服務端申請桌面(display號)

終端 

$vncserver

首次輸入vncserver會提示輸入vnc登陸密碼,設定完成之後,產生如下資訊:

New'hp-Compaq-Presario-CQ45-Notebook-PC:1 (hp)' desktop ishp-Compaq-Presario-CQ45-Notebook-PC:1
Starting applications specifiedin /home/hp/.vnc/xstartup
Log file is/home/hp/.vnc/hp-Compaq-Presario-CQ45-Notebook-PC:1.log

主要的意思是vncserver產生了一個新的桌面,其中的:1

是埠號,用於vnc客戶端遠端連線埠的。

並且會根據/home/hp/.vnc/xstartup(即使用者主目錄下的 .vnc/xstartup)檔案的配置進行啟動,相關的log執行記錄在/hp/.vnc/hp-Compaq-Presario-CQ45-Notebook-PC:1.log
2、修改配置檔案  那麼我們需要做的是修改xstartup配置檔案,終端下輸入以下內容進行編輯:
$ gedit ~/.vnc/xstartup
預設配置檔案~/.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 &
 x-terminal-emulator -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
 x-window-manager &
將所有內容替換為一下內容(直接複製貼上):
<pre name="code" class="plain">#!/bin/sh

# Uncomment the following two lines for normal desktop:
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS  
# 上面這句話在XUbuntu桌面環境下開啟vnc的話最好取消註釋
#exec /etc/X11/xinit/xinitrc
#上面這行先不要開啟
[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic &
x-terminal-emulator -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
#gnome-session &
#x-window-manager &
#下面這塊主要是針對運用xfce4管理桌面
x-session-manager & xfdesktop & xfce4-panel &
xfce4-menu-plugin &
xfsettingsd &
xfconfd &
xfwm4 &
我當時遇到了灰屏並且滑鼠變為X狀況,後來將上面三行取消註釋貌似就ok了!

關於灰屏+滑鼠變X號:

sudochmod a+x /etc/X11/xinit/xinitrc
這也是種辦法,不知是否是這句話生效了
(你沒遇到最好!) 3、執行
$vncserver -kill :1  <span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">(1是剛才申請的桌面編號)</span>

PS:注意這裡-kill之後需要加空格,本人就是因為漏了空格不僅沒有能夠成功關閉埠1vncserver,反而又啟動了一個新的vncserver

操作成功之後會出現如下資訊:

Killing Xvnc4 process ID 3913

4、再次執行

$vncserver

在配置完成之後,我們需要重新啟動vncserver 得到新的視窗編號(一般和剛才的相同,除非你操作過程中別人也申請了一個)


客戶端:
VNC Viewer只需安裝Viewer就行,不用安裝server,否則需要License;

CNC Server處:IP:視窗號(在服務端得到的,比如1)

密碼:在服務端啟動nvcserver時候輸入的密碼




Ubuntu下:

Ubuntu下如果之前沒有安裝過vncserver的話可以只安裝vnc客戶端,在終端下輸入:

$ sudo apt-get install xvnc4viewer

安裝完成之後,如果在本機測試的話輸入:

$ vncviewer localhost:1

這裡localhost對應本機的ip地址,如果是遠端登陸的話將localhost改為要登陸主機的ip地址即可,連線上以後會提示輸入密碼,輸入會出現遠端桌面。
遠端桌面中Tab鍵補全功能不能使 方法:直接在遠端桌面中設定,開啟選單->設定->視窗管理器,或者在終端中輸入xfwm4-settings開啟(xfwm4就是xfce4 window manger的縮寫) 選擇鍵盤,可以看到視窗快捷鍵中動作一列有“切換同一應用程式的視窗”選項,將該選項的快捷鍵清除後關閉視窗即可。
關於vncserver的開機啟動 安裝vncserver主要是為了能遠端操作伺服器,但是會有一個問題:如果遠端操作時需要將伺服器重啟,但是伺服器重啟後如果vncserver不能開機自己啟動的話,客戶端就無法遠端連線到伺服器了,這樣用起來就非常麻煩了,所以必須想辦法讓vncserver開機啟動。
方法: 在伺服器上開啟ssh服務並讓ssh服務開機啟動,這樣伺服器重啟後,先通過ssh連線到伺服器,然後通過命令列啟動vncserver,然後就可以用vnc客戶端連線了。關於Ubuntussh的安裝配置與開機啟動可以檢視:http://www.linuxidc.com/Linux/2013-10/90819.htm