文档中心 > 云服务器 ECS

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

更新时间: 访问次数:8690

概述

基于性能和通用性等因素考虑,阿里云官方公共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桌面。
    1
    yum groupinstall GNOME Desktop Environment -y
    注:安装需要较长时间,请耐心等待。
  3. 执行如下命令,安装VNC Server。
    1
    yum install -y tigervnc-server
  4. 执行如下命令,将VNC Server设置为开机自动启动。
    1
    chkconfig --level 345 vncserver on
  5. 执行如下命令,启动VNC Server并按照界面提示设置VNC连接密码。
    1
    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. 添加如下内容。
      1
      VNCSERVERS="1:root"<br>VNCSERVERARGS[1]="-geometry 1200x800"
    4. 按 Esc 键退出编辑模式,再输入:wq保存并退出。
  8. 参考以下步骤,完成配置。此步骤为可选。
    1. 执行如下命令,允许root账号访问图形界面。
      1
      sed -i 's/.!= root./#&/' /etc/pam.d/gdm
    2. 如果提示以下错误,执行dbus-uuidgen >/var/lib/dbus/machine-id命令,生成新的machine-id。
      1
      D-Bus library appears to be incorrectly set up; failed to read<br>machine uuid: Failed to open "/var/lib/dbus/machine-id": No such file or directory
    3. ECS不允许开启SELinux和NetworkManager服务。如果您开启了这些服务,则执行如下步骤修改配置。
      1. 执行如下命令,检查SELinux服务的配置。如果SELINUX对应的值不是disabled,必须改为disabled。
        1
        vi /etc/selinux/config
      2. 执行如下命令,关闭NetworkManager服务。
        1
        chkconfig --del NetworkManager
  9. 执行如下命令,重启VNC Server使配置生效。
    1
    service vncserver restart
  10. 执行如下命令,确认服务已经启动。
    1
    ps -ef | grep vnc
    系统显示类似如下,由返回结果可知,服务使用了TCP 5901端口。
    CentOS6.8_vncserver_started_ps.png
  11. 如果您的实例上开启了防火墙,需要设置防火墙允许VNC访问。此步骤为可选。以iptables为例,您需要做如下配置。
    1. 执行如下命令,开放TCP 5901端口。
      1
      iptables -A INPUT -p tcp --dport 5901 -j ACCEPT
    2. 执行如下命令,保存规则。
      1
      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桌面。
    1
    yum groupinstall GNOME Desktop Environment -y
    注:安装需要较长时间,请耐心等待。
  3. 执行如下命令,安装VNC Server。
    1
    yum install tigervnc-server -y
  4. 参考以下步骤,修改VNC Server的配置文件,设置用户名,本文以root用户为例。
    1. 执行vim /lib/systemd/system/vncserver@.service命令。
    2. i 键进入编辑模式。
    3. User=<User>ExecStartPIDFile的内容替换为以下内容。
      1
      User=root<br># Clean any existing files in /tmp/.X11-unix environment<br>ExecStartPre=-/usr/bin/vncserver -kill %i<br>ExecStart=/sbin/runuser -l root -c "/usr/bin/vncserver %i"<br>PIDFile=/root/.vnc/%H%i.pid
      如下图所示。
      CentOS7.2_vncserver_ExecStart_PIDFile.png
    4. 按 Esc 键退出编辑模式,再输入:wq保存并退出。
  5. 执行如下命令,将/lib/systemd/system/vncserver@.service文件重命名。
    1
    mv /lib/systemd/system/vncserver@.service /lib/systemd/system/vncserver@:1.service
  6. 执行如下命令,重启systemd。
    1
    systemctl daemon-reload
  7. 执行如下命令,按照界面提示设置VNC Server连接密码。
    1
    vncpasswd
  8. ECS不允许开启SELinux和NetworkManager服务。如果您开启了这些服务,则执行如下步骤修改配置。
    1. 执行如下命令,查看SELinux服务的配置。如果SELINUX对应的值不是disabled,必须修改为disabled。
      1
      vi /etc/selinux/config
    2. 执行如下命令,关闭NetworkManager服务。
      1
      chkconfig --del NetworkManager
  9. 执行如下命令,将VNC Server设置为开机自启动。
    1
    systemctl enable vncserver@:1.service
  10. 执行如下命令,确认服务已经启动。
    1
    ps -ef | grep vnc
    系统显示类似如下,由返回结果可知,服务使用了TCP 5901端口。
    CentOS7.2_vncserver_Start_service.png
  11. 如果您的实例上开启了防火墙,需要设置防火墙允许VNC访问。此步骤为可选。以firewalld为例,您需要做如下设置。
    1. 执行如下命令,允许VNC访问。
      1
      firewall-cmd --permanent --add-service vnc-server
    2. 执行如下命令,重启firewalld。
      1
      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. 执行如下命令,更新源。
    1
    apt-get update
  3. 执行如下命令,安装vnc4server。
    1
    apt-get install vnc4server -y
  4. 执行如下命令,启动VNC服务并按照界面提示设置连接密码。
    1
    vnc4server
    注:首次启动VNC Server会要求设置密码,或者您可以运行 vncpasswd命令修改连接密码。
    系统显示类似如下,如果返回结果中出现类似下图所示的内容,表示vnc4server启动成功。程序会自动在当前用户的主目录下产生一个.vnc目录。本文以root用户为例。
    CEA49A9A-3353-43bb-B1D5-6065E6816F2D.png
  5. 执行如下命令,确认服务是否已经启动。
    1
    ps -ef | grep vnc
    系统显示类似如下,由返回结果可知,服务使用了TCP 5901端口。
    Ubuntu_vncserver_started_ps.png
  6. 执行如下命令,安装GNOME桌面。
    1
    apt-get install gnome-panel gnome-settings-daemon metacity nautilus gnome-terminal
    注:安装需要较长时间,请耐心等待。
  7. 执行如下命令,备份xstartup文件。此步骤为可选。
    1
    cp ~/.vnc/xstartup  ~/.vnc/xstartup.bak
  8. 参考以下内容,编辑vnc4server的配置文件。
    1. 执行vim ~/.vnc/xstartup命令。
    2. 按 i 键进入编辑模式。
    3. 将文件内容替换为以下内容。
      1
      #!/bin/sh<br># Uncomment the following two lines for normal desktop:<br># unset SESSION_MANAGER<br># exec /etc/X11/xinit/xinitrc<br>[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup<br>[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources<br>xsetroot -solid grey<br>vncconfig -iconic &<br>#x-terminal-emulator -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &<br>#x-window-manager &<br>gnome-panel &<br>gnome-settings-daemon &<br>metacity &<br>nautilus &<br>gnome-terminal &
    4. 按 Esc 键退出编辑模式,再输入:wq保存并退出。
  1.  
  1. 依次执行如下命令,结束原有的桌面进程并生成新的会话。
    1
    vncserver -kill :1<br>vncserver :1
    注:本文以原有的桌面进程为:1为例。
  2.  登录ECS管理控制台,在实例所在安全组中添加安全组规则,开放TCP的5901端口。
  3. 在本地机的VNC Viewer上连接实例。具体操作步骤,请参考在 Linux 实例上自动安装并运行 VNC Server。如果出现如下图所示的界面,说明您已经成功安装VNC Server实现了图形化访问。

 

适用于

  • 云服务器 ECS

FAQ

关于此文档暂时还没有FAQ
返回
顶部