天天看點

ubuntu安裝vnc

轉載自:http://hi.baidu.com/jrwen0/item/d756d5311e64c0352f0f8136

想在windows下遠端登入一個linux系統,同學推薦用vnc,需要在ubuntu上先安裝vncserver,在windows上下載下傳vnc viewer,我用的是VNC-Viewer-5.0.1-Windows-32bit.exe

安裝步驟:

linux ubuntu上:

1、安裝vnc4server

sudo apt-get install vnc4server

2. 直接運作vnc4server(vncserver),裝上vnc4server後提供這兩個指令。vnc4server是一個腳本檔案,vncserver是一個連結檔案,連結到/etc/alternatives/vncserver,和vnc4server有相同的腳本内容。

vnc4server

或者

vncserver

第一次執行後需要輸入密碼,執行後要求你輸入密碼,這就是要建立的密碼

3.運作vnc4passwd(vnc4passwd),同上

vnc4passwd

與運作vnc4server建立密碼不同,vnc4passwd運作的時候建立的密碼就是最新的密碼,不管你前面建立的密碼是什麼,運作vnc4passwd後建立的密碼就是最新的密碼,而vnc4server隻在第一次運作的時候才能建立密碼,如果已經有了密碼,那它就直接啟動vnc服務。

    上面兩種方法,執行指令以後都會在家目錄下建立.vnc目錄。兩種方法在這個新目錄下建立不一樣的檔案。如果是vnc4server,則應該建立的都會建立,而vnc4passwd隻建立passwd用于存放密碼。

4. 啟動vnc4server

vnc4server執行這個指令,會在家目錄下建立.vnc目錄,并且建立一系列的檔案。運作成功會有如下内容顯示:

New 'xxxx:1 (xxxx)' desktop is xxxx:1 

Starting applications specified in /home/xxxxx/.vnc/xstartup

Log file is /home/xxxx/.vnc/xxxx:1.log

xxxx因系統而異。冒号後面的數字後面還會用到。

5.關閉vnc4server

vnc4server -kill :1 -kill與:1之間有一個空格。這個要注意,要是沒有的話,運作的結果很特别,會啟動一個vnc4server服務視窗.如果能成功執行,執行傳回的意思大抵是殺了Xvnc4.

6.重要的配置(~/.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 &

修改後長這樣:

#!/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 &

為什麼要這樣修改。原因:vnc4server預設啟動x-window-manager &,這是個很醜的視窗管理器。修改後遠端看到的桌面和你打開這個服務看到的桌面一模一樣。網上有些修改這個地方的參考,可能是由于軟體版本不一樣,我照着做了沒有作用。大抵是這麼改的,添加:gnome-session&.這是啟動gnome的指令,有興趣的朋友不妨試試這個指令。後果是。。。。。原因是:你已經啟動了gnome桌面了,要是你再啟動一次那就是後果。。。。

【注:此處自己并沒有這樣修改,而是隻注釋了後兩行,然後在後面加上gnome-session &,好像是有些問題,不過可以正常使用】

7.修改/etc/X11/xinit/xinitrc權限

sudo chmod 755 /etc/X11/xinit/xinitrc【注:這一步自己沒有做】

windows上操作:

在windows下運作上述的用戶端

server後面填入:ip:1

參考:http://www.cnblogs.com/wishmiss/archive/2010/09/26/1834956.html

注意:

1、上面的工作做完後,需要注意的是上面步驟在哪個使用者下完成的,也隻有在該使用者下登陸。即當我用root登陸時出現的是灰色的桌面和控制台,沒有圖形界面,也就是root使用者下的xstartup檔案缺少第6步的改動。

2、還有一個問題是在ubuntu本機也在圖形界面下運作時,利用VNC登陸後會出現界面沖突的情況,具體語句記不清了,可以google那個語句,可以發現是兩個電腦上都用一個使用者運作圖形界面的問題,需要在本地ubuntu上切換到指令行模式,在網上查了很多方法,比如

alt+ctrl+f1-f2

init 3

都不行

所采用的方法是

更改etc/default/grub檔案,在預設啟動項裡增加text,具體如下:

sudo vi /etc/default/grub

        找到這一行:GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"

        改為:GRUB_CMDLINE_LINUX_DEFAULT="text "或者"quiet splash text"

       儲存後sudo update-grub 重新開機即可。

參考:http://www.2cto.com/os/201110/109533.html

3、這時在VNC登陸情況下,輸入m和s時仍有問題,見解決Ubuntu下VNC用戶端無法輸入s和m的方法:

http://www.diybl.com/course/6_system/linux/ubuntu/20120802/571453.html

工作需要,在Ubuntu安裝了vncserver,使用vncviewer連接配接後發現輸入字母s或m後,分别彈出logout菜單和message菜單 

開始以為是vnc用戶端的問題,換了幾個發現都存在這個問題,也就排除是用戶端的bug 

baidu和google了半天,貌似很少有人碰到這個問題。 

幸運的是搜尋結果中列出了文章的部分資訊,一個關鍵的url:https://bugs.launchpad.net/ubuntu/+source/indicator-applet/+bug/568401

打開後,發現原來是indicator applet引起的bug 

具體修複步驟如下: 

1. sudo apt-get install apt-show-versions  (安裝用于檢視Ubuntu軟體包版本的應用) 

2. sudo apt-show-versions | grep indicator-applet (檢視安裝的indicator applet版本) 

發現安裝的版本正是0.3.6,存在bug的那個版本 

3. sudo apt-get install indicator-applet   (更新至最新版本) 

4.重新開機vncserver,一切正常 

   vncserver -kill :桌面号 

   例如:關閉上面的vnc連接配接 

    vncserver -kill :1  關閉桌面1 

    vncserver 重新開機