Linux系统入门学习:如何在VPS上安装和访问CentOS 7远程桌面

提问: 我想在VPS中安装CentOS桌面,并可以直接从我家远程访问GUI桌面。在VPS上设置和访问CentOS远程桌面有什么建议吗?

如何远程办公或者远程弹性化工作制在技术领域正变得越来越流行。这个趋势背后的一个技术就是远程桌面。你的桌面环境在云中,你可以在任何你去的地方,或者在家或者工作场所访问你的远程桌面。

这个教程介绍如何VPS中设置基于CentOS的远程桌面。现在,我们会先展示CentOS的基础环境。

我们假设你已经创建了CentOS 7的VPS实例(比如,使用DigitalOcean 或者 Amazon EC2)。请确保你的VPS实例有至少1GB的内存。不然,CentOS将会在你访问远程桌面的时候会崩溃。

Linux系统入门学习:如何在VPS上安装和访问CentOS 7远程桌面

 

第一步: 安装CentOS桌面

如果你现在安装的CentOS版本是没有桌面的最小版本,你需要先在VPS上安装桌面(比如GNOME)。比如,DigitalOcean的镜像就是最小版本,它需要如下安装桌面GUI

  1. # yum groupinstall "GNOME Desktop"

在安装完成之后重启VPS。

 

第二步:安装和配置VNC服务器

接下来就是安装和配置VNC服务器。我们使用的是TigerVNC,一个开源的VNC服务实现。

  1. # yum install tigervnc-server

现在创建一个用户账户(比如:xmodulo)用来访问远程桌面。

  1. # useradd xmodulo
  2. # passwd xmodulo

当一个用户尝试使用VNC访问远程桌面时,VNC守护进程就会启动来处理这个请求。这意味着你需要为每个用户创建一个独立的VNC配置文件。

CentOS依靠systemd来管理和配置系统服务。所以我们将使用systemd来为用户xmodulo配置VNC服务器。

首先让我们使用下面任意一条命令来检查VNC服务器的状态。

  1. # systemctl status vncserver@:.service
  2. # systemctl is-enabled vncserver@.service

默认的,刚安装的VNC服务并没有激活(禁用)。

Linux系统入门学习:如何在VPS上安装和访问CentOS 7远程桌面

现在复制一份通用的VNC服务文件来为用户xmodulo创建一个VNC服务配置。

  1. # cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:1.service

用本文编辑器来打开配置文件,用实际的用户名(比如:xmodulo)来替换[Service]下面的。同样。在ExecStart后面追加 "-geometry " 参数。最后,要修改下面“ExecStart”和“PIDFile”两行。

  1. # vi /etc/systemd/system/vncserver@:1.service

  1. [Service]
  2. Type=forking
  3. # Clean any existing files in /tmp/.X11-unix environment
  4. ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
  5. ExecStart=/sbin/runuser -l xmodulo -c "/usr/bin/vncserver %i -geometry 1024x768"
  6. PIDFile=/home/xmodulo/.vnc/%H%i.pid
  7. ExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'

现在为用户xmodulo设置密码(可选)。首先切换到该用户,并运行vncserver命令。

  1. # su - xmodulo
  2. # vncserver

你会被提示输入用户的VNC密码。密码设置完成后,你下次需要用这个密码来访问你的远程桌面。

Linux系统入门学习:如何在VPS上安装和访问CentOS 7远程桌面

最后,重新加载服务来使新的VNC配置生效:

  1. # systemctl daemon-reload

在启动时自动启动VNC服务:

  1. # systemctl enable vncserver@:1.service

检查vnc服务正在监听的端口:

  1. # netstat -tulpn | grep vnc

Linux系统入门学习:如何在VPS上安装和访问CentOS 7远程桌面

端口5901是VNC默认的客户端连接到VNC服务器使用的端口。

 

第三步:通过SSH连接到远程桌面

从设计上说,VNC使用的远程帧缓存(RFB)并不是一种安全的协议,那么在VNC客户端上直接连接到VNC服务器上并不是一个好主意。任何敏感信息比如密码都可以在VNC流量中被轻易地泄露。因此,我强烈建议使用SSH隧道来加密你的VNC流量。

在你要运行VNC客户端的本机上,使用下面的命令来创建一个连接到远程VPS的SSH通道。当被要输入SSH密码时,输入用户的密码。

  1. $ ssh xmodulo@<VPS-IP-address>-L 5901:127.0.0.1:5901

用你自己的VNC用户名来替换“xmodulo”,并填上你自己的VPS IP地址。

一旦SSH通道建立之后,远程VNC流量就会通过ssh通道路由并发送到127.0.0.1:5901。

现在启动你最爱的VNC客户端(比如:vinagre),来连接到127.0.0.1:5901。

Linux系统入门学习:如何在VPS上安装和访问CentOS 7远程桌面

你将被要求输入VNC密码。当你输入VNC密码时,你就可以安全地连接到CentOS的远程桌面了。

Linux系统入门学习:如何在VPS上安装和访问CentOS 7远程桌面

然后就会看到如题图的显示。

更多CentOS相关信息见CentOS 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=14

Linux系统入门学习:如何在VPS上安装和访问CentOS 7远程桌面
更多相关文章
  • Linux系统入门学习:在CentOS7上改变网络接口名
    提问: 在CentOS7,我想将分配的网络接口名更改为别的名字.有什么合适的方法来来重命名CentOS或RHEL7的网络接口?传统上,Linux的网络接口被枚举为eth[0123...],但这些名称并不一定符合实际的硬件插槽,PCI位置,USB接口数量等,这引入了一个不可预知的命名问题(例如,由于不 ...
  • Linux系统入门学习:修复 Rasbian 上的 Encountered a section with no Package: h
    问题: 我在树莓派上安装新版的 Rasbian.但当我使用 sudo apt-get update 命令更新 APT 软件包索引的时候,它抛出下面的错误:E: Encountered a section with no Package: header E: Problem with MergeLis ...
  • Linux系统入门学习如何在Linux上安装WPS
    问题: 我听说一个好东西Kingsoft Office(译注:就是WPS),所以我想在我的Linux上试试.我怎样才能安装Kingsoft Office呢?Kingsoft Office 是一套办公套件,支持多个平台,包括Windows, Linux, iOS 和 Android.它包含三个组件:W ...
  • Linux系统入门学习:从VirtualBox中从主机访问NAT客户机
    提问: 我有一台运行在VirtualBox上的使用NAT的虚拟机,因此虚拟机会被VirtualBox分配一个私有IP地址(10.x.x.x).如果我想要从主机SSH到虚拟机中,我该怎么做?VirtualBox对虚拟机支持几种不同的网络方式,其中一种是NAT网络.当虚拟机启用NAT后,VirtualB ...
  • Linux系统入门学习:在 Ubuntu 和 Fedora 上安装软件包
    新进入 Linux 世界的朋友们,也许你已经下载好了 Linux 的安装 ISO,并且安装好了你的 Linux ,那么接下来,你也许希望安装一些 Linux 上用的软件.开始你可能会使用图形界面的软件中心来安装,有时候也需要使用命令行来安装,或者甚至需要自己去编译一个二进制出来——这是多么神奇的一件 ...
  • Linux系统入门学习:教你在VirtualBox 安装 Fedora 22
    Linux系统入门学习,此文为 Linux 新手准备,通过展示整个安装过程来使 Linxu 新手完成安装 Fedora ,也恳请各位前辈指出不足之处.Fedora 简介Fedora 是一个由 Fedora 社区开发的 Linux 发行版,由 Red Hat 公司赞助.可以将 Fedora 看成是 R ...
  • Linux系统入门学习:创建和挂载XFS文件系统
    问题: 我听说一个牛X的文件系统XFS,打算在我的磁盘上试试XFS.那格式化和挂载XFS文件系统的Linux命令是什么呢?XFS是高性能文件系统,SGI为他们的IRIX平台而设计.自从2001年移植到Linux内核上,由于它的高性能,XFS成为了许多企业级系统的首选,特别是有大量数据,需要结构化伸缩 ...
  • Linux系统入门学习:使用Linux命令行检测DVD刻录机的名字和读写速度
    提问:我想要知道我的DVD刻录机的名字和在烧录时的速度.该使用什么Linux命令行工具来连测DVD刻录机的设备名和速度?如今大多数消费PC和笔记本电脑都配备了DVD刻录机.在Linux中,光盘驱动器,如CD/DVD驱动器的名字是在引导时内核基于udev规则来命名的.有几种方法来检测刻录机的设备名称和 ...
一周排行