千枝万叶 發表於 2024-2-23 00:00:00

在VPS主机上安装和使用CentOS远程桌面的教程

<p>
        如何远程办公或者远程弹性化工作制在技术领域正变得越来越流行。这个趋势背后的一个技术就是远程桌面。你的桌面环境在云中,你可以在任何你去的地方,或者在家或者工作场所访问你的远程桌面。</p>
<p>
        这个教程介绍如何VPS中设置基于CentOS的远程桌面。现在,我们会先展示CentOS的基础环境。</p>
<p>
        我们假设你已经创建了CentOS 7的VPS实例(比如,使用DigitalOcean 或者 Amazon EC2)。请确保你的VPS实例有至少1GB的内存。不然,CentOS将会在你访问远程桌面的时候会崩溃。<br><img style="max-width:100%!important;height:auto!important;"title="在VPS主机上安装和使用CentOS远程桌面的教程" alt="在VPS主机上安装和使用CentOS远程桌面的教程" src="https://zhuji.jb51.net/uploads/img/20230519/491c2bc9e61650b05718b5a88929b604.jpg"></p>
<p>
        <strong>第一步: 安装CentOS桌面</strong></p>
<p>
        如果你现在安装的CentOS版本是没有桌面的最小版本,你需要先在VPS上安装桌面(比如GNOME)。比如,DigitalOcean的镜像就是最小版本,它需要如下安装桌面GUI</p>
<p>
           </p>
<div>
        <div>
                <span><u>复制代码</u></span>
</div>
        代码如下:</div>
<div id="phpcode44">
        # yum groupinstall "GNOME Desktop"</div>
<p>
         </p>
<p>
        在安装完成之后重启VPS。<br><strong>第二步:安装和配置VNC服务器</strong></p>
<p>
        接下来就是安装和配置VNC服务器。我们使用的是TigerVNC,一个开源的VNC服务实现。</p>
<p>
           </p>
<div>
        <div>
                <span><u>复制代码</u></span>
</div>
        代码如下:</div>
<div id="phpcode45">
        # yum install tigervnc-server</div>
<p>
         </p>
<p>
        现在创建一个用户账户(比如:xmodulo)用来访问远程桌面。</p>
<p>
           </p>
<div>
        <div>
                <span><u>复制代码</u></span>
</div>
        代码如下:</div>
<div id="phpcode46">
        # useradd xmodulo<br>
        # passwd xmodulo</div>
<p>
         </p>
<p>
        当一个用户尝试使用VNC访问远程桌面时,VNC守护进程就会启动来处理这个请求。这意味着你需要为每个用户创建一个独立的VNC配置文件。</p>
<p>
        CentOS依靠systemd来管理和配置系统服务。所以我们将使用systemd来为用户xmodulo配置VNC服务器。</p>
<p>
        首先让我们使用下面任意一条命令来检查VNC服务器的状态。</p>
<p>
           </p>
<div>
        <div>
                <span><u>复制代码</u></span>
</div>
        代码如下:</div>
<div id="phpcode47">
        # systemctl status vncserver@:.service<br>
        # systemctl is-enabled vncserver@.service</div>
<p>
         </p>
<p>
        默认的,刚安装的VNC服务并没有激活(禁用)。<br><img style="max-width:100%!important;height:auto!important;"title="在VPS主机上安装和使用CentOS远程桌面的教程" alt="在VPS主机上安装和使用CentOS远程桌面的教程" src="https://zhuji.jb51.net/uploads/img/20230519/568f778b1a8425c21e353e996ca1e8dd.jpg"></p>
<p>
        现在复制一份通用的VNC服务文件来为用户xmodulo创建一个VNC服务配置。</p>
<p>
           </p>
<div>
        <div>
                <span><u>复制代码</u></span>
</div>
        代码如下:</div>
<div id="phpcode48">
        # cp &lt;a&gt;/lib/systemd/system/vncserver@.service&lt;/a&gt; &lt;a&gt;/etc/systemd/system/vncserver@:1.service&lt;/a&gt;</div>
<p>
         </p>
<p>
        用本文编辑器来打开配置文件,用实际的用户名(比如:xmodulo)来替换下面的。同样。在ExecStart后面追加 "-geometry " 参数。最后,要修改下面“ExecStart”和“PIDFile”两行。</p>
<p>
           </p>
<div>
        <div>
                <span><u>复制代码</u></span>
</div>
        代码如下:</div>
<div id="phpcode49">
        # vi &lt;a&gt;/etc/systemd/system/vncserver@:1.service&lt;/a&gt; &lt;/p&gt; &lt;p&gt; <br>
        Type=forking<br>
        # Clean any existing files in /tmp/.X11-unix environment<br>
        ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i &gt; /dev/null 2&gt;&amp;1 || :'<br>
        ExecStart=/sbin/runuser -l xmodulo -c "/usr/bin/vncserver %i -geometry 1024x768"<br>
        PIDFile=/home/xmodulo/.vnc/%H%i.pid<br>
        ExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i &gt; /dev/null 2&gt;&amp;1 || :'</div>
<p>
         </p>
<p>
        现在为用户xmodulo设置密码(可选)。首先切换到该用户,并运行vncserver命令。</p>
<p>
           </p>
<div>
        <div>
                <span><u>复制代码</u></span>
</div>
        代码如下:</div>
<div id="phpcode50">
        # su - xmodulo<br>
        # vncserver</div>
<p>
         </p>
<p>
        你会被提示输入用户的VNC密码。密码设置完成后,你下次需要用这个密码来访问你的远程桌面。<br><img style="max-width:100%!important;height:auto!important;"title="在VPS主机上安装和使用CentOS远程桌面的教程" alt="在VPS主机上安装和使用CentOS远程桌面的教程" src="https://zhuji.jb51.net/uploads/img/20230519/36abf16c85c8911e2448f5e0ccf016c1.jpg"></p>
<p>
        最后,重新加载服务来使新的VNC配置生效:</p>
<p>
           </p>
<div>
        <div>
                <span><u>复制代码</u></span>
</div>
        代码如下:</div>
<div id="phpcode51">
        # systemctl daemon-reload</div>
<p>
         </p>
<p>
        在启动时自动启动VNC服务:</p>
<p>
           </p>
<div>
        <div>
                <span><u>复制代码</u></span>
</div>
        代码如下:</div>
<div id="phpcode52">
        # systemctl enable vncserver@:1.service</div>
<p>
         </p>
<p>
        检查vnc服务正在监听的端口:</p>
<p>
            # netstat -tulpn | grep vnc <br>
           <img style="max-width:100%!important;height:auto!important;"title="在VPS主机上安装和使用CentOS远程桌面的教程" alt="在VPS主机上安装和使用CentOS远程桌面的教程" src="https://zhuji.jb51.net/uploads/img/20230519/ba10b5e04c4cc08468be77b42ca9e948.jpg"><br>
            端口5901是VNC默认的客户端连接到VNC服务器使用的端口。<br><strong>第三步:通过SSH连接到远程桌面</strong></p>
<p>
        从设计上说,VNC使用的远程帧缓存(RFB)并不是一种安全的协议,那么在VNC客户端上直接连接到VNC服务器上并不是一个好主意。任何敏感信息比如密码都可以在VNC流量中被轻易地泄露。因此,我强烈建议使用SSH隧道来加密你的VNC流量。</p>
<p>
        在你要运行VNC客户端的本机上,使用下面的命令来创建一个连接到远程VPS的SSH通道。当被要输入SSH密码时,输入用户的密码。</p>
<p>
           </p>
<div>
        <div>
                <span><u>复制代码</u></span>
</div>
        代码如下:</div>
<div id="phpcode53">
        $ ssh xmodulo@&lt;VPS-IP-address&gt; -L 5901:127.0.0.1:5901</div>
<p>
         </p>
<p>
        用你自己的VNC用户名来替换“xmodulo”,并填上你自己的VPS IP地址。</p>
<p>
        一旦SSH通道建立之后,远程VNC流量就会通过ssh通道路由并发送到127.0.0.1:5901。</p>
<p>
        现在启动你最爱的VNC客户端(比如:vinagre),来连接到127.0.0.1:5901。<br><img style="max-width:100%!important;height:auto!important;"title="在VPS主机上安装和使用CentOS远程桌面的教程" alt="在VPS主机上安装和使用CentOS远程桌面的教程" src="https://zhuji.jb51.net/uploads/img/20230519/47016d448d3e40bfa077f663b29299d1.jpg"></p>
<p>
        你将被要求输入VNC密码。当你输入VNC密码时,你就可以安全地连接到CentOS的远程桌面了。<br><img style="max-width:100%!important;height:auto!important;"title="在VPS主机上安装和使用CentOS远程桌面的教程" alt="在VPS主机上安装和使用CentOS远程桌面的教程" src="https://zhuji.jb51.net/uploads/img/20230519/b6d0ae4cb9917bc374c6b69381a78bc7.jpg"></p>
<p>
        然后就会看到如题图的显示。</p>
頁: [1]
查看完整版本: 在VPS主机上安装和使用CentOS远程桌面的教程