轉載自: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 重新開機