Chinaunix首页 | 论坛 | 博客
  • 博客访问: 615820
  • 博文数量: 90
  • 博客积分: 5111
  • 博客等级: 大校
  • 技术积分: 928
  • 用 户 组: 普通用户
  • 注册时间: 2007-11-29 16:56
文章存档

2011年(15)

2010年(34)

2009年(19)

2008年(22)

我的朋友

分类: LINUX

2011-04-22 16:04:06

由于客户需要充分利用花了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。看看里面的内容就知道了,默认起动的是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,若是第一次运行
会提示输入口令,远程登录的口令,跟用户口令没关系的。口令修改可以使用
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:>.

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桌面

阅读(2013) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~