在 Ubuntu 18.04 上安装和配置 VNC

VNC是在基于UNIX和Linux操作系统的免费的开放源的连接系统,能让使用者用键盘和鼠标远程服务器上的图形桌面环境进行交互。

要完成本教程,您需要:

  • 一台已经设置好可以使用sudo命令的非root账号的Ubuntu服务器,并且已开启防火墙。

  • 安装了VNC客户端的本地计算机,支持通过SSH隧道的VNC连接。

    • 在Winows上,您可以使用TightVNCRealVNCUltraVNC

    • 在macOS上,您可以使用内置的屏幕共享程序,也可以使用RealVNC等跨平台应用程序。

    • 在Linux上,你可以从很多选项,包括选择 vinagrekrdcRealVNC,或TightVNC的

步骤1 – 安装桌面环境和VNC服务器

默认情况下,Ubuntu 18.04服务器没有安装图形桌面环境或VNC服务器,所以我们首先安装它们。具体来说,我们将为最新的Xfce桌面环境和官方Ubuntu存储库中提供的TightVNC软件包安装软件包。

在您的服务器上,更新您的包列表:

 sudoaptupdate

现在在您的服务器上安装Xfce桌面环境:

 sudoaptinstallxfce4xfce4-goodies

安装完成后,安装TightVNC服务器:

 sudoaptinstalltightvncserver

要在安装后完成VNC服务器的初始配置,请使用该vncserver命令设置安全密码并创建初始配置文件:

 vncserver

系统将提示您输入并验证密码以远程访问您的计算机:

 Youwillrequireapasswordtoaccessyourdesktops.
 ​
 Password:
 Verify:

密码长度必须介于六到八个字符之间。超过8个字符的密码将自动截断。

验证密码后,您可以选择创建仅查看密码。使用仅查看密码登录的用户将无法使用鼠标或键盘控制VNC实例。如果您想使用VNC服务器向其他人演示内容,这是一个有用的选项,但这不是必需的。

然后,该过程为服务器创建必要的默认配置文件和连接信息:

 Wouldyouliketoenteraview-onlypassword (y/n)?n
 xauth:  file/home/sammy/.Xauthoritydoesnotexist
 ​
 New'X'desktopisyour_hostname:1
 ​
 Creatingdefaultstartupscript/home/sammy/.vnc/xstartup
 Startingapplicationsspecifiedin/home/sammy/.vnc/xstartup
 Logfileis/home/sammy/.vnc/your_hostname:1.log

现在让我们配置VNC服务器。

第2步 – 配置VNC服务器

VNC服务器需要知道启动时要执行的命令。具体来说,VNC需要知道它应该连接到哪个图形桌面。

这些命令位于主目录下xstartup.vnc文件夹中调用的配置文件中。启动脚本是vncserver在上一步中运行时创建的,但我们将创建自己的脚本以启动Xfce桌面。

首次设置VNC时,它会在端口5901上启动默认服务器实例。该端口称为显示端口,由VNC称为:1。VNC可以在其他显示端口上启动多个实例,例如:2:3等等。

因为我们将要更改VNC服务器的配置方式,所以首先5901使用以下命令停止在端口上运行的VNC服务器实例:

 vncserver-kill :1

输出应该如下所示,尽管您会看到不同的PID:

 KillingXtightvncprocessID17648

在修改xstartup文件之前,请备份原始文件:

 mv~/.vnc/xstartup~/.vnc/xstartup.bak

现在创建一个新xstartup文件并在文本编辑器中打开它:

 nano~/.vnc/xstartup

无论何时启动或重新启动VNC服务器,都会自动执行此文件中的命令。如果尚未启动,我们需要VNC启动我们的桌面环境。将这些命令添加到文件中:

 #!/bin/bash
 xrdb$HOME/.Xresources
 startxfce4&

文件中的第一个命令xrdb $HOME/.Xresources告诉VNC的GUI框架读取服务器用户的.Xresources文件。用户可以在.Xresources其中更改图形桌面的某些设置,如终端颜色,光标主题和字体渲染。第二个命令告诉服务器启动Xfce,在这里您可以找到舒适地管理服务器所需的所有图形软件。

为确保VNC服务器能够正确使用此新启动文件,我们需要使其可执行。

 sudochmod+x~/.vnc/xstartup

现在,重新启动VNC服务器。

 vncserver

您将看到类似于此的输出:

 New'X'desktopisyour_hostname:1
 ​
 Startingapplicationsspecifiedin/home/sammy/.vnc/xstartup
 Logfileis/home/sammy/.vnc/your_hostname:1.log

配置到位后,让我们从本地计算机连接到服务器。

第3步 – 安全地连接VNC桌面

连接时VNC本身不使用安全协议。我们将使用SSH隧道安全地连接到我们的服务器,然后告诉我们的VNC客户端使用该隧道而不是直接连接。

在本地计算机上创建SSH连接,以便安全地转发到localhostVNC连接。您可以使用以下命令通过Linux或macOS上的终端执行此操作:

 ssh-L5901:127.0.0.1:5901-C-N-lsammyyour_server_ip

-L开关指定的端口绑定。在这种情况下,我们将5901远程连接的端口5901绑定到本地计算机上的端口。该-C开关启用压缩,而-N开关告诉ssh我们不希望执行远程命令。该-l开关指定远程登录名。

记得替换sammy,并your_server_ip与您的服务器的须藤非root用户名和IP地址。

如果您使用的是图形化SSH客户端(如PuTTY),请将your_server_ip用作连接IP,并在程序的SSH隧道设置中设置localhost:5901为新的转发端口。

隧道运行后,使用VNC客户端进行连接localhost:5901。系统将提示您使用在步骤1中设置的密码进行身份验证。

连接后,您将看到默认的Xfce桌面。它应该看起来像这样:

您可以使用文件管理器或命令行访问主目录中的文件,如下所示:

按下CTRL+C终端以停止SSH隧道并返回到您的提示。这也将断开您的VNC会话。

接下来让我们将VNC服务器设置为服务。

步骤4 – 将VNC作为系统服务运行

接下来,我们将VNC服务器设置为systemd服务,以便我们可以根据需要启动,停止和重新启动它,就像任何其他服务一样。这还将确保在服务器重新启动时VNC启动。

首先,使用您喜欢的文本编辑器创建一个新的/etc/systemd/system/[email protected]单元文件:

 sudonano/etc/systemd/system/vncserver@.service

@名称末尾的符号将让我们传入一个我们可以在服务配置中使用的参数。我们将使用它来指定我们在管理服务时要使用的VNC显示端口。

将以下行添加到该文件中。请务必更改用户WorkingDirectory的值以及PIDFILE值中的用户名以匹配您的用户名:

 [Unit]
 Description=StartTightVNCserveratstartup
 After=syslog.targetnetwork.target
 ​
 [Service]
 Type=forking
 User=sammy
 Group=sammy
 WorkingDirectory=/home/sammy
 ​
 PIDFile=/home/sammy/.vnc/%H:%i.pid
 ExecStartPre=-/usr/bin/vncserver-kill :%i>/dev/null2>&1
 ExecStart=/usr/bin/vncserver-depth24-geometry1280x800 :%i
 ExecStop=/usr/bin/vncserver-kill :%i
 ​
 [Install]
 WantedBy=multi-user.target

如果VNC已经运行,该ExecStartPre命令将停止。该ExecStart命令启动VNC并将颜色深度设置为24位颜色,分辨率为1280×800。您也可以修改这些启动选项以满足您的需求。

保存并关闭文件。

接下来,让系统知道新的单元文件。

 sudosystemctldaemon-reload

启用单元文件。

 sudosystemctlenablevncserver@1.service

1以下的@符号表示,其显示编号的服务应该出现过,在这种情况下,默认:1为在步骤2中进行了讨论..

如果VNC服务器仍然在运行,请停止它的当前实例。

 vncserver-kill :1

然后启动它,就像启动任何其他systemd服务一样。

 sudosystemctlstartvncserver@1

您可以使用此命令验证它是否已启动:

 sudosystemctlstatusvncserver@1

如果它正确启动,输出应如下所示:

 vncserver@1.service-StartTightVNCserveratstartup
    Loaded: loaded (/etc/systemd/system/vncserver@.service; indirect; vendorpreset: enabled)
    Active: active (running) sinceMon2018-07-0918:13:53UTC; 2min14sago
   Process: 22322ExecStart=/usr/bin/vncserver-depth24-geometry1280x800 :1 (code=exited, status=0/SUCCESS)
   Process: 22316ExecStartPre=/usr/bin/vncserver-kill :1>/dev/null2>&1 (code=exited, status=0/SUCCESS)
  MainPID: 22330 (Xtightvnc)
 ​
 ...

重新启动计算机后,您的VNC服务器现在可用。

再次启动SSH隧道:

 ssh-L5901:127.0.0.1:5901-C-N-lsammyyour_server_ip

然后使用VNC客户端软件建立新连接localhost:5901以连接到您的计算机。

结论

如果按照教程安装结束后就可以在Ubuntu 18.04服务器上启动并运行安全的VNC服务器。

文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/199005.html<

(0)
运维的头像运维
上一篇2025-04-04 15:32
下一篇 2025-04-04 15:34

相关推荐

  • 个人主题怎么制作?

    制作个人主题是一个将个人风格、兴趣或专业领域转化为视觉化或结构化内容的过程,无论是用于个人博客、作品集、社交媒体账号还是品牌形象,核心都是围绕“个人特色”展开,以下从定位、内容规划、视觉设计、技术实现四个维度,详细拆解制作个人主题的完整流程,明确主题定位:找到个人特色的核心主题定位是所有工作的起点,需要先回答……

    2025-11-20
    0
  • 社群营销管理关键是什么?

    社群营销的核心在于通过建立有温度、有价值、有归属感的社群,实现用户留存、转化和品牌传播,其管理需贯穿“目标定位-内容运营-用户互动-数据驱动-风险控制”全流程,以下从五个维度展开详细说明:明确社群定位与目标社群管理的首要任务是精准定位,需明确社群的核心价值(如行业交流、产品使用指导、兴趣分享等)、目标用户画像……

    2025-11-20
    0
  • 香港公司网站备案需要什么材料?

    香港公司进行网站备案是一个涉及多部门协调、流程相对严谨的过程,尤其需兼顾中国内地与香港两地的监管要求,由于香港公司注册地与中国内地不同,其网站若主要服务内地用户或使用内地服务器,需根据服务器位置、网站内容性质等,选择对应的备案路径(如工信部ICP备案或公安备案),以下从备案主体资格、流程步骤、材料准备、注意事项……

    2025-11-20
    0
  • 如何企业上云推广

    企业上云已成为数字化转型的核心战略,但推广过程中需结合行业特性、企业痛点与市场需求,构建系统性、多维度的推广体系,以下从市场定位、策略设计、执行落地及效果优化四个维度,详细拆解企业上云推广的实践路径,精准定位:明确目标企业与核心价值企业上云并非“一刀切”的方案,需先锁定目标客户群体,提炼差异化价值主张,客户分层……

    2025-11-20
    0
  • PS设计搜索框的实用技巧有哪些?

    在PS中设计一个美观且功能性的搜索框需要结合创意构思、视觉设计和用户体验考量,以下从设计思路、制作步骤、细节优化及交互预览等方面详细说明,帮助打造符合需求的搜索框,设计前的规划明确使用场景:根据网站或APP的整体风格确定搜索框的调性,例如极简风适合细线条和纯色,科技感适合渐变和发光效果,电商类则可能需要突出搜索……

    2025-11-20
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注