|
|
|
|
|
Linux - VNC(Virtual Network Computing)
什麼是 VNC(Virtual Network Computing)
通常在管理 Linux 系統時我們不會真的跑到系統前面去做實際的登入操作,而是會透過網路使用遠端的方式去登入 Linux 的系統.而一般遠端的管理程式最安全也最方便的就屬於 ssh(Secure Shell) 了,它使用了加密安全連線的機制.但是他只提供了文字介面的操作雖然有 X11 forwarding 的方式但這都僅限至於遠端也是使用 Linux 的 X-window 系統才可以如果 Windows 系統也要透過 ssh 去連接 x-window 還需要額外的程式 x win32.
如果非要在 windows 下用到 X-window 時,那在 Linux 系統下有類似 Windows 的遠端桌面的方式去連接系統嗎?有的,方式還蠻多種類的,這邊先介紹一般常用的 VNC(Virtual Network Computing).他是一套可以遠端遙控 Linux 桌面的服務.

一般的 Linux 版本都將 VNC(Virtual Network Computing) 當作標準的套件通常可以在 Linux 光碟可以找到.如果沒有關係可以到 VNC 的官方網站下載 http://www.realvnc.com 它不僅僅可以透過 VNC viewer 還可以直接透過 Web Browser 瀏覽器(IE,FireFox,Chrome..)的方式去連接.
檢查你的系統是否有提供 VNC(Virtual Network Computing) 的套件
| [root@benjr ~] # rpm -aq | grep -i vnc vnc-server-version vnc-version |
如果沒有,沒有關係可以到 VNC 的官方網站 下載
VNC (Virtual Network Computing) 的設定檔
VNC 預設的設定檔存放在 /etc/sysconfig/vncservers ,預設就已經寫好了一個 VNC 連接,只需要將 "#" 移除即可!!
| [root@benjr ~] # vi /etc/sysconfig/vncservers VNCSERVERS="2:root" VNCSERVERARGS[2]="-genometry 800x600" |
- TCP 5900 - 專門給 vncviewer 使用者所連接的埠 (port)
- TCP 5800 - 透過 HTTP 連線(如:IE,FireFox,Chrome..)的就是使用這一個埠 (port)
設定檔中的 VNCSERVERS="2:root" 的意思是說,我們要啟動一個 VNC 在 port 5900+2 即 5902(vncviewer ) 的意思和 port 5800+2 即 5802(Web Browser 瀏覽器).使用者為 root.可為系統上的任一使用者.
雖然預設使用了 VNCSERVERARGS[2]="-genometry 800x600 -nolisten tcp -nohttpd -localhost" 但基本上我們只需要 VNCSERVERARGS[2]="-genometry 800x600" 即可,這邊說明一下各參數的用法與時機.
- -genometry 800x600
- -nolisten tcp
- -nohttpd
- -localhost
使用 VNC 時 x-windows 的解析度為 800x600,這都可以自訂,只要是在合理範圍皆可(640x480,800x600,1024x768...)
不使用 TCP 的方式與 VNC server 連線
加入這參數後無法使用 Web Browser 瀏覽器 (IE,FireFox,Chrome..) 連接到該 VNC.
如果你只允許 local (127.0.0.1) 來連結 VNC 請加入這設定.不過大部分的應用在 SSH port 的轉送
共多參數請參考 VNC 的官方網頁或是用 #man vncserver
VNC (Virtual Network Computing) 的 password
| [root@benjr ~] # vncpasswd Password: Verify: |
目前我登入的使用者為 root 所以現在他所建立的密碼為 root 使用者.如果要設定其他使用者請 #su - user 轉換後再設定.
啟動 VNC 的服務
| [root@benjr ~]# service vncserver start |
如果要讓每次開機時都能啟動 vnc server,請鍵入下面指令.
| [root@benjr ~]# chkconfig vncserver on |
| [root@benjr ~]# netstat -tulnp Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:5802 0.0.0.0:* LISTEN 15287/Xvnc tcp 0 0 0.0.0.0:5902 0.0.0.0:* LISTEN 15287/Xvnc |
-
VNC Viewer
-
Web based
Port 5902 是給 VNC Viewer 使用.在 Linux 下可以直接使用
| [root@unsvr root]# vncviewer |
假設我的 VNC Server IP 為:192.8.1.115

不過 Windows 預設並沒有安裝 vncviwer ,所以需要至 http://www.realvnc.com 下載.
Port 5802 是給 Web Browser 使用. 不想下載一堆有的沒有的,可以考慮使用 web browser的方式來連結.不過前提是需要加裝 Java Runtime Environment (JRE) http://www.java.com 在 Windows 底下開 browser,輸入網址,再加上 port number : 5802 就可以透過 Web 方式連結.

| [root@benjr ~]# cd ~/.mozilla/plugins/ [root@benjr ~]# ln -s /usr/java/jre1.5.0_04/plugin/i386/ns7/libjavaplugin_oji.so |
可以參考 Mozilla 的網站
http://wiki.moztw.org/index.php/Plugins_%E7%9A%84%E5%AE%89%E8%A3%9D
指定用哪種桌面
指定用哪種桌面是設定在 $HOME/.vnc/xstartup 裡,剛剛我範例的使用者皆為 root 所以這個檔案存放在 /root/.vnc/xstartup ,其他非 root 使用者家目錄皆在 /home
- TWM:
- GNOME :
- KDE :
| [root@benjr ~]# vi /root/.vnc/xstartup #!/bin/sh [ -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 & |
預設的 XWindow為 twm(Tab Window Manager) 如果有需要其他的請設定成下面幾種的桌面.
| [root@benjr ~]# vi /root/.vnc/xstartup #!/bin/sh [ -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" & gnome-session & |
| [root@benjr ~]# vi /root/.vnc/xstartup #!/bin/sh [ -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" & startkde & |
-
- sunchiahome's blog
- 增加新的回應
- 瀏覽次數 4069