在 Linux 中,VNC 包括以下四個命令:vncserver,vncviewer,vncpasswd,和 vncconnect。大多數情況下使用者只需要其中的兩個命令:vncserver 和 vncviewer。
我的CentOS伺服器是通過SSH串連,而且沒有安裝圖形視窗的,即Headless System。因此我決定使用x11vnc和Xvfb兩個輕量級的應用來實現我的需求。其中,x11vnc是一個VNC服務程式,本身就比較輕量級,因此對於只需要運行一兩個圖形介面視窗程序的輕量級需求就更加貼切了。我們知道,在Linux中顯示視窗,首先要建立一個display服務。而Xvfb就是一個輕量級的,不產生實際螢幕輸出的虛擬display服務程式。因此整個方案的原理是,Xvfb建立display,x11vnc連上去並轉換成vnc協議。
首先,安裝必要組件:
代碼如下 |
複製代碼 |
yum install xorg-x11-xauth xterm libXi libXp libXtst libXtst-devel libXext libXext-devel
|
接著安裝x11vnc,指令碼如下:
代碼如下 |
複製代碼 |
wget http://softlayer-ams.dl.sourceforge.net/project/libvncserver/x11vnc/0.9.13/x11vnc-0.9.13.tar.gz tar zxf x11vnc-0.9.13.tar.gz cd tar zxf x11vnc-0.9.13 ./configure –prefix=/usr/local/blog.creke.net/x11vnc make make install |
然後我們通過yum來安裝Xvfb,指令碼如下:
代碼如下 |
複製代碼 |
yum install Xvfb |
然後通過x11vnc的一條簡單的命令就可以很簡單地把Xvfb也使用進來了,如下:
/usr/local/x11vnc/bin/x11vnc -rfbport 12345 -passwd 串連密碼 -create -forever
運行起來後,用vnc用戶端連結的伺服器12345連接埠,輸入正確的密碼就可以看到終端視窗了。而在終端中啟動視窗程序,也能夠在VNC中直接顯示出來了。如果希望在登出SSH後視窗還能用,則可以在screen中運行上面的指令碼。如果希望多個人能夠同時連進VNC,可以加上“-shared”參數