由于项目的需要,购置了一条超级计算机,也就是CPU八核,内存8G,前段时间由于项目非常的紧张,只能多人共享Ubuntu服务器的同一个窗口,也就是一个人使用VNC操作服务器,另外几个人可以看到他的操作,并且一个人操作时,另外一个人不能操作界面,现在抽出时间来,解决了这个问题,实现了不同的人员可以操作服务器的不同界面,就像操作自己的PC一样。
1 安装vnc4server服务器软件。
在Ubuntu10.10中执行 apt-get install vnc4server即可安装。Windows系统上的客户端使用的是
vncviewer.exe软件,网上很容易下载,这里不讲述了.
vnc4server安装完成以后需要修改一下配置文件,否则VNC客户端登陆以后,无法看到图形界面。
我使用root超级用户登录的Ubuntu系统,修改/root/.vnc/xstartup 文件.
注意:
默认情况下 /root目录下面是没有隐藏目录 .vnc, 这时需要在终端窗口执行一下 vnc4server :1 命令,这样.vnc/startup文件会形成.修改 /root/,vnc/xstartup文件有两种方 案,根据您安装的Ubuntu系统灵活选择,建议先适用方案一,如果不能成功再次采用方案二的修改。 笔者在某台X86 PC 64位 Ubuntu12.04 使用过方案一,而在另外一 台X86 PC 64位 Ubuntu12.04.2系统上面使用的是方案2。采用方案二是因为方案一时登录VNC服务器后,客户端窗口会出现“ could not acquire name on session bus”的提示,且无法显示图形界面,采用方案二会解决这个问题。
修改方案1:
#!/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 &
x-terminal-emulator -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
x-window-manager &
在这个文件后追加一行:
gnome-session &
修改方案2:
修改文件之前需要执行: chmod 755 /etc/X11/xinit/xinitrc 命令
#!/bin/sh
# Uncomment the following two lines for normal desktop:
unset SESSION_MANAGER
# [ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
# [ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
# vncconfig -iconic &
x-terminal-emulator -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
exec /etc/X11/xinit/xinitrc
# x-window-manager &
# gnome-session &
方案一与方案二修改差距较大,修改时需要注意。
2
修改完成后,重新启动计算机,再次执行命令 vnc4server :1 启动vnc服务,vnc客户端就可以连接到服务了,终端会出现提示信息:
New 'monkey-MS-7678:4 (root)' desktop is monkey-MS-7678:1
Starting applications specified in /root/.vnc/xstartup
Log file is /root/.vnc/monkey-MS-7678:1.log
注意:这里出现的数字1,在客户端VNC软件中需要这样填写,如果您的服务器IP是192.168.0.2, 在客户端的输入窗口中填写: 192.168.0.2:1 确定,输入密码即可登陆.
如果另外的一个用户也要使用这台服务器,需要再次执行vnc4server,这时会产生一个数字2,该用户需要 192.168.0.2:2 登陆服务器,这时两个用户的操作各不相关,互不影响,也就实现了多用户操作同一台服务器的功能。
说明:如果采用方案一和方案二,VNC客户端仍然无法正常显示图像,可以采用服务器端开机进入命令行模式,/root/.vnc/xstartup文件采用方案二的配置,这样VNC客户端可以看到正常的图形系统(笔者在Ubuntu12.04.2测试,root用户登录命令行模式,此方法可行)。
3
登陆成功后,如果在终端窗口中输入 d 则界面会最小化到状态栏,这样导致很多带有d字符的命令无法执行,给我们的操作来了不少的麻烦,解决办法就是去掉这个d快捷键. 方法如下:
我使用的是Ubuntu10.10,进入 System->Preferences->KeyboardShortcuts,找到d会计键,按下Backspace键,禁用即可,如下图:
设置完成后,重新启动,即可输入字符 'd '
4
作为服务器,我们希望系统开机自运行vnc4server,这样我们就直接在Windows客户端登录了,在 /etc/profile 文件中加入
vnc4server 命令,如果你想三个人登录,互不影响,就需要启动3个vnc4server,保存profile文件,退出,重新启动即可使用了,当然我们需要给每个人分配一个数字,这里我们启动了3个vnc4server就会有1,2,3这三个数字,三个人每人用一个.
如:甲:192.168.0.2:1
乙:192.168.0.2:2
丙:192.168.0.2.3
每个人记住给自己分配的数字号,否认如果跟他人冲突后,会把先前登陆的人的界面给关掉,也就是抢夺了.
附录:
我使用vnc4server启动VNC服务,用vncviewer.exe登陆后,启动Android模拟器,发现模拟器的背景色失真显示,在Ubuntu上运行
X11VNCServer VNC服务,Android的模拟器背景色显示正常了。所以您可以根据自己的需求,灵活选择vnc4server,或者图形界面的X11VNCServer 服务(该服务的一个特点就是服务器开机后需要手动操作服务器,运行该软件,手动设置参数),选择X11VNCServer只能一个人操作,其他人观看,当然也可以即启动vnc4server也同时启动X11VNCServer,这样多个人工作,你选择登陆X11VNCServer,其他的用户选择登陆vnc4server,这样就满足每个用户的需求了.
这是自己搭建VNC服务器实现远程桌面操作的工作总结,希望对具有相同需求的码农朋友们有所帮助。