Linux实例安装VNC Server实现图形化访问

Linux实例安装VNC Server实现图形化访问

贡献者:

KB小秘书

 · 

更新时间:2019-08-02 16:17:59

提示: 这是一篇由阿里云ACE开发者(Alibaba Cloud Engineer)贡献,针对特定用户问题发布的文章。文档的内容以原稿呈现,阿里云对于文档内容不做任何形式的承诺。阿里云有权在未经通知的情形下对文档内容做出任何形式的修改。

概述

基于性能和通用性等因素考虑,阿里云官方公共Linux系统镜像默认没有安装VNC(Virtual Network Computing)服务组件。如果您希望图形化访问Linux实例,需要先在实例上安装VNC Server并安装图形界面。本文主要介绍如何在CentOS 6.8、CentOS 7.2和Ubuntu 14.04系统中安装配置VNC Server,实现图形化访问Linux实例。

 

详细信息

如果您的实例使用CentOS镜像,可以使用脚本自动安装VNC Server和GNOME桌面环境。具体操作,请参考在Linux实例上自动安装并运行VNC Server

 

前提条件

确认已经在本地安装了VNC连接工具,比如TightVNC Viewer

 

在CentOS 6.8系统中安装VNC Server

参考以下步骤,在CentOS 6.8系统中安装并配置TigerVNC Server和GNOME。

  1. 远程连接Linux实例
  2. 执行如下命令,安装GNOME桌面。
    yum groupinstall GNOME Desktop Environment -y
    注:安装需要较长时间,请耐心等待。
  3. 执行如下命令,安装VNC Server。
    yum install -y tigervnc-server
  4. 执行如下命令,将VNC Server设置为开机自动启动。
    chkconfig --level 345 vncserver on
  5. 执行如下命令,启动VNC Server并按照界面提示设置VNC连接密码。
    vncserver
    注:首次启动VNC Server会要求设置密码,或者您可以运行vncpasswd命令修改连接密码。
  6. 参考以下步骤修改/root/.vnc/xstartup文件,配置GNOME桌面。
    1. 执行vim /root/.vnc/xstartup命令 。
    1. 按 i 键进入编辑模式。
    1. 在文件最后一行,注释掉twm &,并添加一行gnome-session &
    1. 按 Esc 键退出编辑模式,再输入:wq保存并退出。
  7. 参考以下步骤在/etc/sysconfig/vncservers文件中,配置监听端口和环境参数。
    1. 执行vim /etc/sysconfig/vncservers命令。
    2. 按 i 键进入编辑模式。
    3. 添加如下内容。
      VNCSERVERS="1:root"
      VNCSERVERARGS[1]="-geometry 1200x800"
    4. 按 Esc 键退出编辑模式,再输入:wq保存并退出。
  8. 参考以下步骤,完成配置。此步骤为可选。
    1. 执行如下命令,允许root账号访问图形界面。
      sed -i 's/.!= root./#&/' /etc/pam.d/gdm
    2. 如果提示以下错误,执行dbus-uuidgen >/var/lib/dbus/machine-id命令,生成新的machine-id。
      D-Bus library appears to be incorrectly set up; failed to read
      machine uuid: Failed to open "/var/lib/dbus/machine-id": No such file or directory
    3. ECS不允许开启SELinux和NetworkManager服务。如果您开启了这些服务,则执行如下步骤修改配置。
      1. 执行如下命令,检查SELinux服务的配置。如果SELINUX对应的值不是disabled,必须改为disabled。
        vi /etc/selinux/config
      2. 执行如下命令,关闭NetworkManager服务。
        chkconfig --del NetworkManager
  9. 执行如下命令,重启VNC Server使配置生效。
    service vncserver restart
  10. 执行如下命令,确认服务已经启动。
    ps -ef | grep vnc
    系统显示类似如下,由返回结果可知,服务使用了TCP 5901端口。
    CentOS6.8_vncserver_started_ps.png
  11. 如果您的实例上开启了防火墙,需要设置防火墙允许VNC访问。此步骤为可选。以iptables为例,您需要做如下配置。
    1. 执行如下命令,开放TCP 5901端口。
      iptables -A INPUT -p tcp --dport 5901 -j ACCEPT
    2. 执行如下命令,保存规则。
      service iptables save
  12. 登录ECS管理控制台,在实例所在安全组中添加安全组规则,开放TCP 5901端口。
  13. 在本地机器的VNC Viewer上连接实例。具体操作步骤,请参考在 Linux 实例上自动安装并运行 VNC Server。如果出现如下图所示的界面,说明您已经成功安装VNC Server实现了图形化访问。   

 

在CentOS 7.2系统中安装VNC Server

参考以下步骤,在CentOS 7.2系统中安装TigerVNC Server和GNOME。

  1. 远程连接Linux实例
  2. 执行如下命令,安装GNOME桌面。
    yum groupinstall GNOME Desktop Environment -y
    注:安装需要较长时间,请耐心等待。
  3. 执行如下命令,安装VNC Server。
    yum install tigervnc-server -y
  4. 参考以下步骤,修改VNC Server的配置文件,设置用户名,本文以root用户为例。
    1. 执行vim /lib/systemd/system/vncserver@.service命令。
    2. i 键进入编辑模式。
    3. User=<User>ExecStartPIDFile的内容替换为以下内容。
      User=root
      # Clean any existing files in /tmp/.X11-unix environment
      ExecStartPre=-/usr/bin/vncserver -kill %i
      ExecStart=/sbin/runuser -l root -c "/usr/bin/vncserver %i"
      PIDFile=/root/.vnc/%H%i.pid
      如下图所示。
      CentOS7.2_vncserver_ExecStart_PIDFile.png
    4. 按 Esc 键退出编辑模式,再输入:wq保存并退出。
  5. 执行如下命令,将/lib/systemd/system/vncserver@.service文件重命名。
    mv /lib/systemd/system/vncserver@.service /lib/systemd/system/vncserver@:1.service
  6. 执行如下命令,重启systemd。
    systemctl daemon-reload
  7. 执行如下命令,按照界面提示设置VNC Server连接密码。
    vncpasswd
  8. ECS不允许开启SELinux和NetworkManager服务。如果您开启了这些服务,则执行如下步骤修改配置。
    1. 执行如下命令,查看SELinux服务的配置。如果SELINUX对应的值不是disabled,必须修改为disabled。
      vi /etc/selinux/config
    2. 执行如下命令,关闭NetworkManager服务。
      chkconfig --del NetworkManager
  9. 执行如下命令,将VNC Server设置为开机自启动。
    systemctl enable vncserver@:1.service
  10. 执行如下命令,确认服务已经启动。
    ps -ef | grep vnc
    系统显示类似如下,由返回结果可知,服务使用了TCP 5901端口。
    CentOS7.2_vncserver_Start_service.png
  11. 如果您的实例上开启了防火墙,需要设置防火墙允许VNC访问。此步骤为可选。以firewalld为例,您需要做如下设置。
    1. 执行如下命令,允许VNC访问。
      firewall-cmd --permanent --add-service vnc-server
    2. 执行如下命令,重启firewalld。
      service iptables save
  12. 登录ECS管理控制台,在实例所在安全组中添加安全组规则,开放TCP 5901端口。
  13. 在本地机的VNC Viewer上连接实例。具体操作步骤,请参考在 Linux 实例上自动安装并运行 VNC Server的描述。如果出现如下图所示的界面,说明您已经成功安装VNC Server实现了图形化访问。

 

在Ubuntu 14.04系统中安装VNC Server

参考以下步骤,在Ubuntu 14.04系统中安装并配置TigerVNC Server和GNOME。

  1. 远程连接Linux实例
  2. 执行如下命令,更新源。
    apt-get update
  3. 执行如下命令,安装vnc4server。
    apt-get install vnc4server -y
  4. 执行如下命令,启动VNC服务并按照界面提示设置连接密码。
    vnc4server
    注:首次启动VNC Server会要求设置密码,或者您可以运行vncpasswd命令修改连接密码。
    系统显示类似如下,如果返回结果中出现类似下图所示的内容,表示vnc4server启动成功。程序会自动在当前用户的主目录下产生一个.vnc目录。本文以root用户为例。
    CEA49A9A-3353-43bb-B1D5-6065E6816F2D.png
  5. 执行如下命令,确认服务是否已经启动。
    ps -ef | grep vnc
    系统显示类似如下,由返回结果可知,服务使用了TCP 5901端口。
    Ubuntu_vncserver_started_ps.png
  6. 执行如下命令,安装GNOME桌面。
    apt-get install gnome-panel gnome-settings-daemon metacity nautilus gnome-terminal
    注:安装需要较长时间,请耐心等待。
  7. 执行如下命令,备份xstartup文件。此步骤为可选。
    cp ~/.vnc/xstartup  ~/.vnc/xstartup.bak
  8. 参考以下内容,编辑vnc4server的配置文件。
    1. 执行vim ~/.vnc/xstartup命令。
    2. 按 i 键进入编辑模式。
    3. 将文件内容替换为以下内容。
      #!/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-panel &
      gnome-settings-daemon &
      metacity &
      nautilus &
      gnome-terminal &
    4. 按 Esc 键退出编辑模式,再输入:wq保存并退出。
  1.  
  1. 依次执行如下命令,结束原有的桌面进程并生成新的会话。
    vncserver -kill :1
    vncserver :1
    注:本文以原有的桌面进程为:1为例。
  2.  登录ECS管理控制台,在实例所在安全组中添加安全组规则,开放TCP的5901端口。
  3. 在本地机的VNC Viewer上连接实例。具体操作步骤,请参考在 Linux 实例上自动安装并运行 VNC Server。如果出现如下图所示的界面,说明您已经成功安装VNC Server实现了图形化访问。

 

适用于

  • 云服务器 ECS
  • 89

    发布KB

  • 555

    回答问题

  • 1

    粉丝数