作者:fairyhood 日期:2007-10-30
來自[1]
由于客戶需要充分利用花了N多money購買的服務器,而服務器上運行的是Linux AS,客戶又不太會使用文本模式,因此只好采用配置X-server的方式來給每一個用戶一個圖形終端了,這多虧了X-windows設計的先進性呀。
為了簡單,我就使用了Linux自帶的vnc-server。
代碼::
#uname -a
Linux server1.linux 2.4.21-4.ELsmp #1 SMP
#rpm -q vnc-server
vnc-server-4.0-0.beta4.1.1你可以使用特定的帳號來運行你的vncserver命令。這樣可以做到同時有多個用戶登錄圖形終端。同時一個圖形終端編號只能有一個用戶登錄。
代碼::
#useradd demo
#passwd -d demo
#su demo
$vncserver
passwd: //如果這個帳號是第一次運行vncserver,則會要求你輸入連接的密碼。
verify:
New 'server1.linux:4 (demo)' desktop is server1.linux:4
Starting applications specified in /home/demo/.vnc/xstartup
Log file is /home/demo/.vnc/server1.linux:4.log
上面這段話表示起動了一個圖形終端,編號為4,要記住這個編號,等下登錄時需要提供這個編號。
如果你要停止這個進程,使用
代碼::
$vncserver -kill :4
就可以了,后面的數字表示圖形終端編號。
ok,這樣,x-server已經起動了。
我們來測試一下。
找另外一臺機器,如果是Linux的系統,那就比較方便,直接使用下面的命令
代碼::
#vncviewer xx.xx.xx.xx:4 ;連接方式是ip地址:編號,這里的編號是4.
會彈出一個對話框,要求你輸入密碼,如果密碼正確,這是就會出現圖形終端了。
如果是windows的機器,那就下載一個vnc的軟件吧。我用的是winVNC。
連接方式是一樣的。
不過大家也看到了,雖然圖形界面是看到了,但是好丑呀!的確,因為默認的圖形終端采用xterm+twm,桌面上什么都沒有。如果能使用默認的GNOME或者KDE或者FVWM等X-manager該有多好?
沒有問題,接下來的配置就是解決這個問題。
每當一個帳號運行一次vncserver后,就會在家目錄下創建.vnc目錄。
里面有一個可執行腳本xstartup??纯蠢锩娴膬热菥椭懒耍J起動的是twm。
那么我們就修改這個文件吧,去掉里面的所有內容,寫入下面一行
代碼::
gnome-session
這樣就指定起動gnome。
也可以寫入
代碼::
unset SESSION_MANAGER
exec /etc/X11/xinit/xinitrc
表示起動默認的圖形管理器。
保存退出,然后重新起動vncserver。
代碼::
$vncserver -kill :4
$vncserver
然后到客戶端去連接X-server,看是不是變得漂亮些啦。
(我按照上面的方法在ubuntu8.10中使用,并沒有能夠順利訪問到全桌面的內容,經過多次嘗試發現,在winVNC的地址框輸入ip:0[ip地址:零],正確訪問ubuntu的桌面)
可能你又會問了,如果我有1000個用戶呢,是不是每一個用戶都需要去修改這個文件呀,那多麻煩呀。
那我們就找到根源吧,看到底xstartup是誰創建的。
找到/usr/bin/vncserver,他是一個perl腳本程序。
打開看看
轉到43行,你就會看到
$defaultXStartup變量的定義了,看到了吧。
這下你知道怎么改了吧。
把他變成這個樣子:
代碼::
$defaultXStartup
= ("#!/bin/shnn".
"# Uncomment the following two lines for normal desktop:n".
"unset SESSION_MANAGERn".
"exec /etc/X11/xinit/xinitrcnn".
"#[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresourcesn".
"#xsetroot -solid greyn".
"#vncconfig -iconic &n".
"#xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &n".
"#twm &n");
實際上就是去掉最前面的兩行注釋,注釋掉下面的幾行。保存退出。
你再創建一個帳號,運行vncserver看看。
是不是默認的圖形終端就修改了呢?
我的任務完成了。
需要去面試了。
大家試試吧。
VNCServer 配置 及Vncview的使用
1、vncserver服務的啟動
redhat 及fedora 一般都自動安裝了vncserver了 只要在服務列表中選中啟動一下就可以了
2、vncserver的配置
通過編輯文件$HOME/.vnc/xstartup來啟動你喜歡的窗口管理器。使用startkde &來啟動KDE,使用gnome-session &來啟動GNOME,fvwm2 &來啟動FVWM2 。下面是一個例子
#####################################################
#!/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 &
#xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
gnome-session
#startkde
#twm &
##########################################################
3、開始使用
在啟動前還是要運行一個東西的,可以使用telnet用自己的用戶登錄遠程系統
運行vncserver ,若要定義界面大小,顏色看 vncserver --help,若是第一次運行
會提示輸入口令,遠程登錄的口令,跟用戶口令沒關系的??诹钚薷目梢允褂?br>vncpasswd程序。運行成功后會有桌面號的提示類似:1 :2 的。記住桌面號。退
出telnet。每次服務器重器后都需要運行一次。
4、登錄
在windows下載一個winvnc,安裝完成后,不用啟動服務,使用它的查看器就
可以了。輸入vnc服務器 地址:桌面號 ,再輸入口令就可以使用了。注意,每次
使用完,請千萬不要注銷掉系統,直接關閉winvnc查看器就可以了,只要服務器
沒問題,可以再次使使用winvnc繼續連接。
5、關閉服務器上自己的vnc連接
vncserver -kill :桌面號
6、如何使服務器開機自動運行vncserver 不需要自己telnet
使用linuxconf來設置vncserver啟動腳本(/etc/init.d/vncserver)實現系統自啟動時啟動vncserver。但是默認的啟動腳本靈活性不夠,因此編輯/etc/init.d/vncserver,修改:
"su - ${display##*:} -c "cd && [ -f .vnc/passwd ]
&& vncserver :${display%%:*}""
為:
"su - ${display##*:} -c "cd && [ -f .vnc/passwd ]
&& vncserver ${ARGS} :${display%%:*}""
然后編輯/etc/sysconfig/vncservers:
# The VNCSERVERS variable is a list of
# display:user pairs.
#
# Uncomment the line below to start a VNC server on
# display :1 as my 'myusername' (adjust this to your
# own). You will also need to set a VNC password;
# run 'man vncpasswd' to see how to do that.
#
# DO NOT RUN THIS SERVICE if your local area network
# is untrusted! For a secure way of using VNC, see
# <URL:http://www.uk.research.att.com/vnc/sshvnc.html>.
VNCSERVERS="1:jdimpson"
ARGS="-geometry 1024x768 -alwaysshared "
在ARGS中修改"1024x768"來適應自己的X桌面實際參數配置??梢栽谶@里添加任何其他VNC服務器參數配置。在VNCSERVERS中修改jdimpson為你希望運行VNC桌面的用戶。VNCSERVERS中的1表示VNC以桌面1運行,如果希望添加其他的桌面,可以修改配置如下:
VNCSERVERS="1:jdimpson 2:phred 3:sysadmin"
在RedHat系統上,使用以下命令啟動VNC:
/etc/init.d/vncserver start
現在你就可以使用VNC任何客戶端來使用VNC桌面。
[1]http://www.kk511.cn/trackback.asp?tbID=326