公司开发原来都是用的Xmanager软件,但近期爆出该软件存在后门漏洞问题,安防部门要求停止使用老版本的Xmanager进行升级或改用开源VNC软件,因此在网上查看了一些配置说明,特整理如下:
VNC服务端操作系统为redhat 5.4,客户端机器为win 7 x64机器。
1.检查linux机器是否已经安装vnc服务端 # rpm -qa|grep vnc
以redhat为例,安装命令:root用户下执行 rpm -ivh 安装包名.rpm
3.配置对应用户的vncserver连接,如果在root用户下首次执行 vncserver :1(冒号前有个空格) 会让设置密码,同时相关配置文件会存在本用户根目录的对应xstartup文件中(见第4步配置)
4.配置本用户对应vnc连接的配置文件,如root用户的配置信息在 /root/.vnc/xstartup文件里
特别注意如果linux服务器的桌面服务是gnome,则上面的配置文件改成如下
查看当前系统桌面应用是kde还是gnome,使用命令 ps -A | egrep -i "gnome|kde|mate|cinnamon|lxde|xfce|jwm"
5.多个用户桌面配置,如果有些自己开发的程序在ems或其它用户下,这时通过上述root用户的vnc连接是打不开其它用户的画面程序的,因此需要针对每个用户重新配置一个vnc连接,具体来说
参照步骤3,先切换到对应用户下,执行 vncserver :2(编号随着用户以此类推),同样设置密码,然后会在本用户(如ems/.vnc/)目录下生成对应xstartup文件,参考步骤4进行修改即可(后面研究发现这个问题可以通过xhost解决,见最后面的问题分析部分)。
a)如果是新增一个不存在的用户,则按照如下几步执行:
useradd user1 //添加用户user1
passwd user1 //设置用户的linux系统登录密码
su user1 //切换到用户user1
vncpasswd //设置用户的user1登录密码
vncserver :3 //编号随着用户桌面顺序递增,执行完以后会在本用户目录下生成xstartup文件,继续按照步骤4修改即可。
b)如果是同一个ems用户有多人要同时登陆,则在ems用户下多次执行vncserver :端口号(递增),然后按照下面的步骤6把对应端口号和用户以及分辨率的信息加到全局配置文件中即可。
6.vncserver全局配置文件修改:主要修改红色框中内容,示例中有两个用户,对应下面数组的1和2,后面是显示到客户端时采用的分辨率大小。
7.配置防火墙,默认防火墙对应的vnc端口是关闭的,需要开通相应端口,以redhat 5.4为例,修改/etc/sysconfig/iptables文件,追加两行
修改完毕后,service iptables restart重启,iptbales -nL查看当前防火墙规则;service iptables save可以将临时配置的防火墙规则保存在该文件中
8.重启vncserver
service vcnserver restart
(注意如果是通过vnc客户端连接到机器上进行上述配置的,那么这个命令禁用,这时候用会导致重启服务不成功,后面无法正常连接;改为在对应用户下执行vncserver -kill :端口号,然后再vncserver :端口号的方式重启)
9.客户端远程连接vnc,打开客户端软件,输入服务端IP:编号(如6步的1或2)
vnc常用命令:
a.查看当前vncserver状态:service vncserver status
b.手动停止某个vnc桌面,vncserver -kill :连接号(冒号前有空格)
c.查看vnc服务是否开机启动,chkconfig --list vncserver
d.设置vnc服务开机启动,chkconfig vncserver on
e.停止所有vnc桌面,service vncserver stop
问题分析:
1.Xlib: connection to ":1.0" refused by server
需要设置xhost,首先使用root通过vnc登录到服务器,根据vnc起来的端口,设置环境export DISPLAY=:1;然后输入xhost +(加号前面有空格),弹出如下界面后,就可以用其它用户操作对应的图形界面了。
以上是本次VNC配置的一些过程记录整理,欢迎批评指正,共同学习进步。