你的位置:首页 > 操作系统

[操作系统]如何使用Xmanager及VNC登录远程桌面


如何调用远程桌面,比较常见的有两种方式: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 startStarting 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 startStarting VNC server: 1:root New 'node1.being.com:1 (root)' desktop is node1.being.com:1Starting applications specified in /root/.vnc/xstartupLog file is /root/.vnc/node1.being.com:1.log                              [ OK ]

通过上述输出可以看出,新生成的桌面地址为node1.being.com:1,其中node1.being.com是本地主机名

下面,我们再看看新生成的桌面对应的窗口

[root@node1 ~]# netstat -ntlup |grep vnctcp    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 ~]# vncserverNew 'node1.being.com:2 (root)' desktop is node1.being.com:2Starting applications specified in /root/.vnc/xstartupLog 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 stopShutting down VNC server: 1:root 2:root 3:oracle      [ OK ]

第二种是可以手动关闭指定端口,语法如下:

$ vncserver -kill :1

六、设置开机自启动

# chkconfig vncserver on

总结:

1> 本次配置是基于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 &

2> 注意:除通过# /etc/init.d/vncserver start开启vncserver服务外,还可以直接使用# vncserver命令开启vncserver服务,如下所示:

[root@node1 ~]# vncserverNew 'node1.being.com:2 (root)' desktop is node1.being.com:2Starting applications specified in /root/.vnc/xstartupLog file is /root/.vnc/node1.being.com:2.log

,当然,如果要关闭它,只能使用手工关闭方式