作者:fairyhood 日期:2007-10-30
來自[1]
由于客戶需要充分利用花了N多money購買的服務(wù)器,而服務(wù)器上運(yùn)行的是Linux AS,客戶又不太會(huì)使用文本模式,因此只好采用配置X-server的方式來給每一個(gè)用戶一個(gè)圖形終端了,這多虧了X-windows設(shè)計(jì)的先進(jìn)性呀。
為了簡單,我就使用了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你可以使用特定的帳號(hào)來運(yùn)行你的vncserver命令。這樣可以做到同時(shí)有多個(gè)用戶登錄圖形終端。同時(shí)一個(gè)圖形終端編號(hào)只能有一個(gè)用戶登錄。
代碼::
#useradd demo
#passwd -d demo
#su demo
$vncserver
passwd: //如果這個(gè)帳號(hào)是第一次運(yùn)行vncserver,則會(huì)要求你輸入連接的密碼。
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
上面這段話表示起動(dòng)了一個(gè)圖形終端,編號(hào)為4,要記住這個(gè)編號(hào),等下登錄時(shí)需要提供這個(gè)編號(hào)。
如果你要停止這個(gè)進(jìn)程,使用
代碼::
$vncserver -kill :4
就可以了,后面的數(shù)字表示圖形終端編號(hào)。
ok,這樣,x-server已經(jīng)起動(dòng)了。
我們來測試一下。
找另外一臺(tái)機(jī)器,如果是Linux的系統(tǒng),那就比較方便,直接使用下面的命令
代碼::
#vncviewer xx.xx.xx.xx:4 ;連接方式是ip地址:編號(hào),這里的編號(hào)是4.
會(huì)彈出一個(gè)對(duì)話框,要求你輸入密碼,如果密碼正確,這是就會(huì)出現(xiàn)圖形終端了。
如果是windows的機(jī)器,那就下載一個(gè)vnc的軟件吧。我用的是winVNC。
連接方式是一樣的。
不過大家也看到了,雖然圖形界面是看到了,但是好丑呀!的確,因?yàn)槟J(rèn)的圖形終端采用xterm+twm,桌面上什么都沒有。如果能使用默認(rèn)的GNOME或者KDE或者FVWM等X-manager該有多好?
沒有問題,接下來的配置就是解決這個(gè)問題。
每當(dāng)一個(gè)帳號(hào)運(yùn)行一次vncserver后,就會(huì)在家目錄下創(chuàng)建.vnc目錄。
里面有一個(gè)可執(zhí)行腳本xstartup。看看里面的內(nèi)容就知道了,默認(rèn)起動(dòng)的是twm。
那么我們就修改這個(gè)文件吧,去掉里面的所有內(nèi)容,寫入下面一行
代碼::
gnome-session
這樣就指定起動(dòng)gnome。
也可以寫入
代碼::
unset SESSION_MANAGER
exec /etc/X11/xinit/xinitrc
表示起動(dòng)默認(rèn)的圖形管理器。
保存退出,然后重新起動(dòng)vncserver。
代碼::
$vncserver -kill :4
$vncserver
然后到客戶端去連接X-server,看是不是變得漂亮些啦。
(我按照上面的方法在ubuntu8.10中使用,并沒有能夠順利訪問到全桌面的內(nèi)容,經(jīng)過多次嘗試發(fā)現(xiàn),在winVNC的地址框輸入ip:0[ip地址:零],正確訪問ubuntu的桌面)
可能你又會(huì)問了,如果我有1000個(gè)用戶呢,是不是每一個(gè)用戶都需要去修改這個(gè)文件呀,那多麻煩呀。
那我們就找到根源吧,看到底xstartup是誰創(chuàng)建的。
找到/usr/bin/vncserver,他是一個(gè)perl腳本程序。
打開看看
轉(zhuǎn)到43行,你就會(huì)看到
$defaultXStartup變量的定義了,看到了吧。
這下你知道怎么改了吧。
把他變成這個(gè)樣子:
代碼::
$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");
實(shí)際上就是去掉最前面的兩行注釋,注釋掉下面的幾行。保存退出。
你再創(chuàng)建一個(gè)帳號(hào),運(yùn)行vncserver看看。
是不是默認(rèn)的圖形終端就修改了呢?
我的任務(wù)完成了。
需要去面試了。
大家試試吧。
VNCServer 配置 及Vncview的使用
1、vncserver服務(wù)的啟動(dòng)
redhat 及fedora 一般都自動(dòng)安裝了vncserver了 只要在服務(wù)列表中選中啟動(dòng)一下就可以了
2、vncserver的配置
通過編輯文件$HOME/.vnc/xstartup來啟動(dòng)你喜歡的窗口管理器。使用startkde &來啟動(dòng)KDE,使用gnome-session &來啟動(dòng)GNOME,fvwm2 &來啟動(dòng)FVWM2 。下面是一個(gè)例子
#####################################################
#!/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、開始使用
在啟動(dòng)前還是要運(yùn)行一個(gè)東西的,可以使用telnet用自己的用戶登錄遠(yuǎn)程系統(tǒng)
運(yùn)行vncserver ,若要定義界面大小,顏色看 vncserver --help,若是第一次運(yùn)行
會(huì)提示輸入口令,遠(yuǎn)程登錄的口令,跟用戶口令沒關(guān)系的。口令修改可以使用
vncpasswd程序。運(yùn)行成功后會(huì)有桌面號(hào)的提示類似:1 :2 的。記住桌面號(hào)。退
出telnet。每次服務(wù)器重器后都需要運(yùn)行一次。
4、登錄
在windows下載一個(gè)winvnc,安裝完成后,不用啟動(dòng)服務(wù),使用它的查看器就
可以了。輸入vnc服務(wù)器 地址:桌面號(hào) ,再輸入口令就可以使用了。注意,每次
使用完,請(qǐng)千萬不要注銷掉系統(tǒng),直接關(guān)閉winvnc查看器就可以了,只要服務(wù)器
沒問題,可以再次使使用winvnc繼續(xù)連接。
5、關(guān)閉服務(wù)器上自己的vnc連接
vncserver -kill :桌面號(hào)
6、如何使服務(wù)器開機(jī)自動(dòng)運(yùn)行vncserver 不需要自己telnet
使用linuxconf來設(shè)置vncserver啟動(dòng)腳本(/etc/init.d/vncserver)實(shí)現(xiàn)系統(tǒng)自啟動(dòng)時(shí)啟動(dòng)vncserver。但是默認(rèn)的啟動(dòng)腳本靈活性不夠,因此編輯/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"來適應(yīng)自己的X桌面實(shí)際參數(shù)配置。可以在這里添加任何其他VNC服務(wù)器參數(shù)配置。在VNCSERVERS中修改jdimpson為你希望運(yùn)行VNC桌面的用戶。VNCSERVERS中的1表示VNC以桌面1運(yùn)行,如果希望添加其他的桌面,可以修改配置如下:
VNCSERVERS="1:jdimpson 2:phred 3:sysadmin"
在RedHat系統(tǒng)上,使用以下命令啟動(dòng)VNC:
/etc/init.d/vncserver start
現(xiàn)在你就可以使用VNC任何客戶端來使用VNC桌面。
[1]http://www.kk511.cn/trackback.asp?tbID=326