持酒七 發表於 2023-10-13 12:02:00

银河麒麟高级服务器操作系统V10——安装VNC实现远程桌面

<div id="content_views" class="markdown_views prism-dracula">
<p>转载:银河麒麟高级服务器操作系统V10——安装VNC实现远程桌面</p>
<div class="toc">
<h4>银河麒麟高级服务器操作系统V10——安装VNC实现远程桌面</h4>
<ul>
<li>
<ul>
<li>检查桌面环境</li>
<li>安装</li>
<li>配置</li>
<li>启动服务</li>
<li>防火墙配置</li>
</ul>
</li>
</ul>
</div>
<p>&nbsp;</p>
<p>作者:高玉涵<br> 时间:2021.09.14 10:14<br> 博客:blog.csdn.net/cg_i<br> 环境:Linux intkf2 4.19.90-23.8.v2101.ky10.x86_64 #1 SMP Mon May 17 17:08:34 CST 2021 x86_64 x86_64 x86_64 GNU/Linux</p>
<h3>检查桌面环境</h3>
<p>生产环境一般采用最小化安装,VNC 需要在有<strong>桌面</strong>环境下才能运行,进行下面操作查看到 <strong>UKUI GUI</strong> 桌面环境。</p>
<pre class="prettyprint" data-index="0"><code class="prism language-shell has-numbering" style="position: unset"><span class="token comment"># 列出的组列表里有桌面环境。</span>
yum grouplist</code></pre>
<div class="hljs-button {2}" data-title="复制"><img src="https://img-blog.csdnimg.cn/18cfd4fe78a442d6adc0d61ed35605c0.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA5Y2K54K56Zey,size_17,color_FFFFFF,t_70,g_se,x_16#pic_center" alt="在这里插入图片描述"></div>
<h3>安装</h3>
<ol>
<li>因我已将系统 <strong>YUM</strong> 源指向本地,我直接输入如下命令安装即可:</li>
</ol>
<pre class="prettyprint" data-index="1"><code class="prism language-shell has-numbering" style="position: unset">yum <span class="token function">install</span> tigervnc-server -y</code></pre>
<div class="hljs-button {2}" data-title="复制">&nbsp;</div>
<ol start="2">
<li>安装后使用如下命令验证是否成功:</li>
</ol>
<pre class="prettyprint" data-index="2"><code class="prism language-shell has-numbering" style="position: unset"><span class="token function">rpm</span> -qa<span class="token operator">|</span><span class="token function">grep</span> tigervnc-server</code></pre>
<div class="hljs-button {2}" data-title="复制">&nbsp;</div>
<p><img src="https://img-blog.csdnimg.cn/431837b9a54643279cbc4d7e881840d8.png#pic_center" alt="在这里插入图片描述"></p>
<h3>配置</h3>
<ol>
<li>复制 vnc 启动脚本并更改名称。如, vncserver@:1.service 中的 <strong>:1</strong> 表示“<strong>桌面号</strong>” 对应启动的网络端口号就是 <strong>5900+桌面号</strong> ,即 <strong>5901</strong> 。如果再有一个就是 2 ,端口号就是 <strong>5902</strong> ,以此类推:</li>
</ol>
<pre class="prettyprint" data-index="3"><code class="prism language-shell has-numbering" style="position: unset"><span class="token function">cp</span> /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:1.service</code></pre>
<div class="hljs-button {2}" data-title="复制">&nbsp;</div>
<ol start="2">
<li>以 <strong>root</strong> 用户访问 <strong>VNC</strong> 为例,编辑刚复制的新文件:</li>
</ol>
<pre class="prettyprint set-code-show" data-index="4"><code class="prism language-shell has-numbering" style="position: unset"><span class="token function">vim</span> /etc/systemd/system/vncserver@:1.service
<span class="token punctuation">[</span>Unit<span class="token punctuation">]</span>
<span class="token assign-left variable">Description</span><span class="token operator">=</span>Remote desktop <span class="token function">service</span> <span class="token punctuation">(</span>VNC<span class="token punctuation">)</span>
<span class="token assign-left variable">After</span><span class="token operator">=</span>syslog.target network.target

<span class="token punctuation">[</span>Service<span class="token punctuation">]</span>
<span class="token assign-left variable">Type</span><span class="token operator">=</span>forking
<span class="token assign-left variable">WorkingDirectory</span><span class="token operator">=</span>/home/<span class="token operator">&lt;</span><span class="token environment constant">USER</span><span class="token operator">&gt;</span>
<span class="token assign-left variable">User</span><span class="token operator">=</span><span class="token operator">&lt;</span><span class="token environment constant">USER</span><span class="token operator">&gt;</span>
<span class="token assign-left variable">Group</span><span class="token operator">=</span><span class="token operator">&lt;</span><span class="token environment constant">USER</span><span class="token operator">&gt;</span>

<span class="token assign-left variable">PIDFile</span><span class="token operator">=</span>/home/<span class="token operator">&lt;</span><span class="token environment constant">USER</span><span class="token operator">&gt;</span>/.vnc/%H%i.pid

<span class="token assign-left variable">ExecStartPre</span><span class="token operator">=</span>/bin/sh -c <span class="token string">'/usr/bin/vncserver -kill %i &gt; /dev/null 2&gt;&amp;1 || :'</span>
<span class="token assign-left variable">ExecStart</span><span class="token operator">=</span>/usr/bin/vncserver -autokill %i
<span class="token assign-left variable">ExecStop</span><span class="token operator">=</span>/usr/bin/vncserver -kill %i

<span class="token assign-left variable">Restart</span><span class="token operator">=</span>on-success
<span class="token assign-left variable">RestartSec</span><span class="token operator">=</span><span class="token number">15</span>

<span class="token punctuation">[</span>Install<span class="token punctuation">]</span>
<span class="token assign-left variable">WantedBy</span><span class="token operator">=</span>multi-user.target</code></pre>
<div class="hljs-button {2}" data-title="复制">&nbsp;</div>
<ol start="3">
<li>修改为以下内容:</li>
</ol>
<pre class="prettyprint set-code-show" data-index="5"><code class="prism language-shell has-numbering" style="position: unset"><span class="token punctuation">[</span>Unit<span class="token punctuation">]</span>
<span class="token assign-left variable">Description</span><span class="token operator">=</span>Remote desktop <span class="token function">service</span> <span class="token punctuation">(</span>VNC<span class="token punctuation">)</span>
<span class="token assign-left variable">After</span><span class="token operator">=</span>syslog.target network.target

<span class="token punctuation">[</span>Service<span class="token punctuation">]</span>
<span class="token assign-left variable">Type</span><span class="token operator">=</span>forking

<span class="token assign-left variable">PIDFile</span><span class="token operator">=</span>/root/.vnc/%H%i.pid

<span class="token assign-left variable">ExecStartPre</span><span class="token operator">=</span>/bin/sh -c <span class="token string">'/usr/bin/vncserver -kill :1 &gt; /dev/null 2&gt;&amp;1 || :'</span>
<span class="token assign-left variable">ExecStart</span><span class="token operator">=</span>/usr/sbin/runuser -l root -c <span class="token string">"/usr/bin/vncserver :1"</span>
<span class="token assign-left variable">ExecStop</span><span class="token operator">=</span>/bin/sh -c <span class="token string">'/usr/bin/vncserver -kill :1 &gt; /dev/null 2&gt;&amp;1 || :'</span>

<span class="token assign-left variable">Restart</span><span class="token operator">=</span>on-success
<span class="token assign-left variable">RestartSec</span><span class="token operator">=</span><span class="token number">15</span>

<span class="token punctuation">[</span>Install<span class="token punctuation">]</span>
<span class="token assign-left variable">WantedBy</span><span class="token operator">=</span>multi-user.target</code></pre>
<div class="hljs-button {2}" data-title="复制">&nbsp;</div>
<ol start="4">
<li>设置 <strong>VNC</strong> 密码(VNC Viewer 连接服务器时需使用的密码)。需要输入两次密码,输入完成后会提示是否设置 <strong>view-only password</strong> ( “View-only password”密码,只允许查看,无控制权限。)这个可根据需要设置:</li>
</ol>
<pre class="prettyprint" data-index="6"><code class="prism language-shell has-numbering" style="position: unset">vncpasswd</code></pre>
<div class="hljs-button {2}" data-title="复制">&nbsp;</div>
<h3>启动服务</h3>
<ol>
<li>重新加载系统配置文件(系统新增或配置文件发生变化时,都需要执行 daemon-reload 子命令):</li>
</ol>
<pre class="prettyprint" data-index="7"><code class="prism language-shell has-numbering" style="position: unset">systemctl daemon-reload</code></pre>
<div class="hljs-button {2}" data-title="复制">&nbsp;</div>
<ol start="2">
<li>设置开机启动并启动服务:</li>
</ol>
<pre class="prettyprint" data-index="8"><code class="prism language-shell has-numbering" style="position: unset">systemctl <span class="token builtin class-name">enable</span> vncserver@:1.service
systemctl start vncserver@:1.service</code></pre>
<div class="hljs-button {2}" data-title="复制">&nbsp;</div>
<ol start="3">
<li>查看端口端口</li>
</ol>
<pre class="prettyprint" data-index="9"><code class="prism language-shell has-numbering" style="position: unset"><span class="token function">netstat</span> -ltp<span class="token operator">|</span><span class="token function">grep</span> Xvnc</code></pre>
<div class="hljs-button {2}" data-title="复制">&nbsp;</div>
<p><img src="https://img-blog.csdnimg.cn/8aa943be5b9147948d0866f1218ee00e.png#pic_center" alt="在这里插入图片描述"></p>
<h3>防火墙配置</h3>
<ol>
<li>如果系统启用了防火墙,需要配置相应规则,否则连接不上:</li>
</ol>
<pre class="prettyprint" data-index="10"><code class="prism language-shell has-numbering" style="position: unset">firewall-cmd --add-port<span class="token operator">=</span><span class="token number">5901</span>/tcp --permanent
firewall-cmd --reload</code></pre>
<div class="hljs-button {2}" data-title="复制">&nbsp;</div>
<p>至此,整个配置过程完结。</p>
</div>

</div>
<div id="MySignature" role="contentinfo">
    在转载时请注明出处(http://www.cnblogs.com/ZXdeveloper/),谢谢。<br><br>
来源:https://www.cnblogs.com/ZXdeveloper/p/17761800.html
頁: [1]
查看完整版本: 银河麒麟高级服务器操作系统V10——安装VNC实现远程桌面