Debian 11安装配置VNC完整教程:2023年详细步骤指南

引言

Virtual Network Computing(VNC)是一种连接系统,允许您使用键盘和鼠标与远程服务器上的图形桌面环境进行交互。它帮助那些对命令行不太熟悉的用户管理远程服务器上的文件、软件和设置。

在本指南中,您将在Debian 11服务器上使用TightVNC设置一个VNC服务器,并通过SSH隧道安全地连接到它。然后,您将在本地计算机上使用一个VNC客户端程序通过图形桌面环境与服务器进行交互。

先决条件

按照本教程需要准备以下材料:

  • 一台按照Debian 11初始服务器设置指南设置的服务器,包括一个具有sudo访问权限的非root用户和防火墙。
  • 一台安装了VNC客户端的本地计算机,该客户端支持通过SSH隧道进行VNC连接。

在Windows上,您可以使用TightVNC、RealVNC或UltraVNC。

在macOS上,您可以使用内置的屏幕共享程序,或者使用像RealVNC这样的跨平台应用程序。

在Linux上,您可以选择多种选项,包括vinagre、krdc、RealVNC或TightVNC。

一旦您把所有事情准备好,您可以继续进行第一步。

第一步 – 安装桌面环境和VNC服务器

默认情况下,Debian 11服务器不带有图形化桌面环境或VNC服务器安装,所以您需要开始安装它们。

当选择VNC服务器和桌面环境时,您有很多选择。在本教程中,您将安装最新的Xfce桌面环境和官方Ubuntu存储库提供的TightVNC软件包。Xfce和TightVNC都以轻巧和快速闻名,这将有助于确保即使在较慢的互联网连接上,VNC连接也能流畅稳定。

在使用SSH连接到您的服务器后,请更新您的软件包列表。

  1. sudo apt update

现在在您的服务器上安装Xfce桌面环境,同时安装xfce4-goodies软件包。

  1. sudo apt install xfce4 xfce4-goodies

在安装过程中,可能会提示您选择Xfce的默认显示管理器。显示管理器是一个程序,它允许您通过图形界面选择并登录到桌面环境。当您使用VNC客户端连接时,您只会使用Xfce,并且在这些Xfce会话中,您已经作为非root的Debian用户登录。因此,在本教程中,您选择的显示管理器并不重要。请选择其中一个并按Enter键。

一旦安装完成,请安装TightVNC服务器。

  1. sudo apt install tightvncserver

接下来,安装dbus-x11依赖项以确保与您的VNC服务器建立适当的连接。

  1. sudo apt install dbus-x11

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

  1. vncserver

接下来将出现一个提示,要求输入和验证远程访问您的机器所需的密码。

输出:您将需要一个密码来访问您的桌面。 密码: 验证:

密码必须由六到八个字符组成。超过八个字符的密码会被自动截断。

一旦您验证了密码,您有选择创建一个只读密码的选项。使用只读密码登录的用户将无法通过鼠标或键盘来控制VNC实例。如果您想使用VNC服务器向他人演示某个内容,这是一个有帮助的选项,但并非必需。

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

输出:您是否要输入只读密码(y/n)?n xauth: file /home/sammy/.Xauthority does not exist New 'X' desktop is your_hostname:1 Creating default startup script /home/sammy/.vnc/xstartup Starting applications specified in /home/sammy/.vnc/xstartup Log file is /home/sammy/.vnc/your_hostname:1.log

接下来,将其配置为启动Xfce并通过图形界面访问服务器。

步骤二 – 配置VNC服务器

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

这些命令位于家目录下的.vnc文件夹中名为xstartup的配置文件中。在上一步中运行vncserver命令时,启动脚本就已经创建好了,但是您将会自己创建一个来启动Xfce桌面。

当VNC第一次设置时,它会在端口5901上启动一个默认的服务器实例。这个端口被称为显示端口,并且在VNC中被称为:1。VNC可以在其他显示端口上启动多个实例,例如:2、:3等等。

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

  1. vncserver -kill :1

以下是与您的服务器环境特定的PID相关的输出结果:

输出:正在终止 Xtightvnc 进程 ID 17648

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

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

现在创建一个新的xstartup文件,并在您喜欢的文本编辑器中打开它。

  1. nano ~/.vnc/xstartup

每当您启动或重新启动VNC服务器时,该文件中的命令会自动执行。如果您的桌面环境尚未启动,您需要使用VNC来启动它。请将以下命令添加到该文件中。

~/.vnc/xstartup。

~/ 的 .vnc/xstartup

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

以下是每行的简要说明:

  • #!/bin/bash: 第一行是shebang。在*nix平台上的可执行纯文本文件中,shebang告诉系统将该文件传递给哪个解释器执行。在本例中,您将文件传递给Bash解释器。这将允许每一行依次作为命令执行。
  • xrdb $HOME/.Xresources: 此命令告诉VNC的GUI框架读取用户的.Xresources文件。.Xresources是用户可以更改图形桌面某些设置的地方,例如终端颜色、光标主题和字体渲染。
  • startxfce4 &: 此命令告诉服务器启动Xfce。在这里,您将找到所有需要舒适管理服务器的图形软件。

当您完成后,保存并退出编辑器。如果您正在使用nano,您可以通过按下CTRL+X,然后Y,然后ENTER键来退出编辑器。

为确保VNC服务器能够正确使用这个新启动文件,您需要将其设置为可执行状态。

  1. sudo chmod +x ~/.vnc/xstartup

现在重新启动VNC服务器。

  1. vncserver

最终的输出将类似于以下内容:

新的 'X' 桌面是 your_hostname:1 正在启动 /home/sammy/.vnc/xstartup 中指定的应用程序 日志文件是 /home/sammy/.vnc/your_hostname:1.log

在设置完成后,您可以准备从本地计算机连接到VNC服务器。

第三步 – 安全连接VNC桌面

VNC本身在连接时不使用安全协议。为了安全连接,您可以使用SSH隧道连接到服务器,然后告诉VNC客户端使用该隧道而不是直接连接。

在您的本地计算机上创建一个SSH连接,安全地将其转发到VNC的localhost连接。您可以通过Linux或macOS的终端使用以下命令来完成此操作。记得将”sammy”和”your_server_ip”替换为您的非root用户名和服务器的IP地址。

  1. ssh -L 5901:127.0.0.1:5901 -C -N -l sammy your_server_ip

请注意,在您在本地机器的终端上运行此命令后,不会返回任何输出。您需要使用VNC客户端来查看图形界面。

这个ssh命令的选项含义如下:

  • -L开关指定端口绑定。在本例中,您将远程连接的端口5901绑定到本地机器上的端口5901。
  • -C开关启用压缩以帮助最小化资源消耗并加快速度。
  • -N开关告诉ssh您不想执行远程命令。
  • -l开关指定远程登录名。确保将sammy和your_server_ip替换为您的非root用户名和服务器的IP地址。

如果您正在使用PuTTY连接到服务器,您可以通过右键点击终端窗口的顶部栏,并选择”更改设置”选项来创建一个SSH隧道。

鼠标右击顶部栏以显示”更改设置”选项。

在PuTTY重新配置窗口的左侧树形菜单中找到”连接”分支。展开SSH分支,然后点击”Tunnels”。在控制SSH端口转发的选项屏幕上,将源端口设置为5901,目的地设置为localhost:5901,如下所示。

在PuTTy中添加端口转发信息

然后单击添加按钮,再单击应用按钮来实施隧道。

一旦隧道运行起来,使用VNC客户端连接到localhost:5901。您会被提示使用您在第一步中设置的密码进行身份验证。

一旦连接成功,Xfce桌面将默认显示如下:

连接到Debian 11服务器的VNC的默认Xfce图形界面

选择使用默认配置来配置您的桌面。

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

使用VNC连接到Debian 11,通过VNC客户端搜索文件。

在您的本地计算机上,按下终端中的CTRL+C键来停止SSH隧道,并返回到命令提示符。这将断开您的VNC会话。

接下来,您将把VNC服务器设为服务。

第四步 – 将VNC作为系统服务运行

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

首先,使用您偏爱的文本编辑器创建一个名为/etc/systemd/system/vncserver@.service的新单元文件。

  1. sudo nano /etc/systemd/system/vncserver@.service

在名称的末尾的@符号将允许您传入一个参数,用于在服务配置中使用。您将使用此参数来指定您在管理服务时想要使用的VNC显示端口。

请将以下行添加到文件中。请确保将User、Group、WorkingDirectory的值以及PIDFILE值中的用户名更改为您的用户名。

/etc/systemd/system/vncserver@.service 文件路径:

[Unit]
Description=启动时启动TightVNC服务器
After=syslog.target network.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/null 2>&1
ExecStart=/usr/bin/vncserver -depth 24 -geometry 1280x800 :%i
ExecStop=/usr/bin/vncserver -kill :%i

[Install]
WantedBy=multi-user.target

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

当您完成后保存并关闭文件。

接下来,让系统意识到新的单元文件。

然后,启用该单元文件。

  1. sudo systemctl enable vncserver@1.service

@符号后面的1表示服务应该出现在哪个显示屏上,在这种情况下,默认为:1,正如在步骤2中所讨论的。

如果当前的VNC服务器还在运行,请停止它。

  1. vncserver -kill :1

然后像启动其他systemd服务一样启动它:

  1. sudo systemctl start vncserver@1

您可以通过如下命令来验证它是否已开始:

  1. sudo systemctl status vncserver@1

如果启动正确,输出将类似于以下内容:

输出● vncserver@1.service - 启动时启动TightVNC服务器 Loaded: loaded (/etc/systemd/system/vncserver@.service; enabled; vendor preset: enabled) Active: active (running) since Fri 2022-08-19 16:21:36 UTC; 5s ago Process: 24469 ExecStartPre=/usr/bin/vncserver -kill :1 > /dev/null 2>&1 (code=exited, status=2) Process: 24474 ExecStart=/usr/bin/vncserver -depth 24 -geometry 1280x800 -localhost :1 (code=exited, status=0/SUCCESS) Main PID: 24482 (Xtightvnc) . . .

当你重新启动机器时,你的VNC服务器将会可用。

重新开始你的SSH隧道。

  1. ssh -L 5901:127.0.0.1:5901 -C -N -l sammy your_server_ip

然后使用您的VNC客户端软件,建立到本地主机的连接,端口号为5901,以连接到您的设备。

结论

现在您在Debian 11服务器上已经安装并运行了一个安全的VNC服务器。现在您可以通过一个用户友好且熟悉的图形界面来管理您的文件、软件和设置。您还可以远程运行图形软件,如网络浏览器。

bannerAds