如何调用远程桌面,比较常见的有两种方式:Xmanager及VNC
正好今天鼓捣了一下,特整理如下:
Xmanager
Xmanager的调用也有两种方式:
一、直接在Xshell中调用
这时需设置会话属性,如下图所示,需在“隧道”选项上勾选“转发X11连接到(X):”
二、用Xstart登录远程桌面
如图,主机,用户名和身份验证是必须的,协议必须为SSH,关键在于命令的填写(下面详表),填写完毕后,即可点击“运行”
登录远程桌面的主要有以下三个命令:
1> gnome-session 调用gnome桌面
2> startkde 调用kde桌面
3> /usr/bin/xterm -ls -display $DISPLAY 调用终端窗口
第一种和第二种比较容易理解,第三种出来的图形其实如下,其实就是一个终端窗口
注意:这三个命令在Xshell中同样适用,其实第三个命令实现的效果就是类似于Xshell这样的终端窗口。
如果报“/usr/bin/xterm: DISPLAY is not set”错误,可在终端上设置xhost +或者export DISPLAY=192.168.2.1:0.0,这里,192.168.2.1指的是客户端地址。
在实际生产环境中,往往没有必要登陆到远程桌面,直接调用应用程序即可,譬如,安装Oracle,直接执行./runInstaller即可。
VNC
VNC主要有两部分组成:vncserver和vncviewer,其中vncserver是服务器端软件,提供VNC服务,vncviewer是客户端软件,远程调用VNC服务的。说白了,就是vncviewer能远程登录到vncserver所在的主机。
在这里,我们以Redhat自带的tigervnc-server作为服务器端软件。
一、安装服务器端软件
# yum install tigervnc-server -y
二、设置vncserver密码
# vncserver
第一次执行会让你输入密码,至少6位,后续在vncviewer连接服务器端主机中需要用到。
注意:后续可用vncpasswd命令修改密码
三、启动vncserver服务
启动vncserver服务有两种方式。
第一种:/etc/init.d/vncserver start,此种方式需要编辑配置文件。
[root@node1 ~]# /etc/init.d/vncserver start
Starting VNC server: no displays configured [FAILED]
报以上错误,需修改配置文件
$ vim /etc/sysconfig/vncservers
添加以下内容:
VNCSERVERS="1:root"
指该服务启动时,会在root用户下配置一个VNC服务,对应的端口为1。如果要开启多个服务,可设置如下:VNCSERVERS="1:root 2:root 3:oracle",指的是会开启三个VNC服务,其中有2个是在root账户下,端口分别是1和2,另一个是在oracle用户下,端口是3.
PS:网上很多博客会在上述配置文件中同时添加以下内容:VNCSERVERARGS[1]="-geometry 1024x768",配置窗口分辨率的,个人实验了一下,没什么效果,远程桌面的分辨率还是得在服务器端设置。如图所示:
修改完配置文件后,再次启动
[root@node1 ~]# /etc/init.d/vncserver start Starting VNC server: 1:root New 'node1.being.com:1 (root)' desktop is node1.being.com:1 Starting applications specified in /root/.vnc/xstartup Log file is /root/.vnc/node1.being.com:1.log [ OK ]
通过上述输出可以看出,新生成的桌面地址为node1.being.com:1,其中node1.being.com是本地主机名
下面,我们再看看新生成的桌面对应的窗口
[root@node1 ~]# netstat -ntlup |grep vnc tcp 0 0 0.0.0.0:5901 0.0.0.0:* LISTEN 9164/Xvnc tcp 0 0 0.0.0.0:6001 0.0.0.0:* LISTEN 9164/Xvnc tcp 0 0 :::6001 :::* LISTEN 9164/Xvnc
其实,5901是vncserver服务默认的第一个端口,对应的是上述node1.being.com:1中的1.
第二种,直接手动执行# vncserver命令开启vncserver服务,如下所示:
[root@node1 ~]# vncserver New 'node1.being.com:2 (root)' desktop is node1.being.com:2 Starting applications specified in /root/.vnc/xstartup Log file is /root/.vnc/node1.being.com:2.log
通常这种方式也更为简便,也不需要配置/etc/sysconfig/vncservers文件。
可根据实际使用场景进行相应的选择,第一种适用于对VNC有经常性的需求,可设置开启自启动,但操作略微麻烦,需修改配置文件,可同时开启多个服务;第二种适用于对VNC偶然性的需求,操作方便简单,每次只能开启一个服务。
这时,我们就可以利用vncviewer登录
四、用vncviewer远程登录
点击“Connect”
输入第二步中设置的密码,点击“OK”即可登录。注意:Username为灰,无法填写,在该例中,因为vncserver服务是在root账户下开启的,所以默认登录的是root账户。
五、关闭vncserver服务
关闭vncserver服务有两种方式,
# /etc/init.d/vncserver stop
这种方式是依据/etc/sysconfig/vncservers的内容进行关闭,如果VNCSERVERS="1:root 2:root 3:oracle",则关闭时会同时关闭这三个服务,输出内容如下。而通过手动执行# vncserver命令开启的vncserver服务则不会被关闭。
[root@node1 ~]# /etc/init.d/vncserver stop Shutting down VNC server: 1:root 2:root 3:oracle [ OK ]
第二种是可以手动关闭指定端口,语法如下:
$ vncserver -kill :1
六、设置开机自启动
# chkconfig vncserver on
总结:
本次配置是基于RHEL 6.3,6x版本的都不需要配置$user_home/.vnc/xstartup,其中$user_home是执行vncserver命令用户的家目录,如果是root用户执行的,则$user_home指的是/root,如果是oracle用户执行的,则是/home/oracle,以此类推。6x版本的会默认启动服务器登录的窗口,一般是gnome,如果是5x版本的系统,出来的窗口可能较简陋,则出来的是twm窗口,这时,需配置$user_home/.vnc/xstartup文件。
以root用户为例
vim /root/.vnc/xstartup
注释 twm &
添加 gnome-session &