如何在Debian 9上安装和配置VNC

linux

本教程介绍了如何在Debian 9系统上安装和配置VNC服务器。我们还将向您展示如何创建SSH隧道并安全地连接到VNC服务器。

虚拟网络计算(VNC)是一个图形桌面共享系统,可让您使用键盘和鼠标远程控制另一台计算机。

先决条件

在继续学习本教程之前,请确保您以具有[sudo]权限的用户身份登录。

安装桌面环境

可能您的Debian服务器没有安装桌面环境。我们的第一步是安装一个轻量级的桌面环境。

Debian存储库中有几种可用的桌面环境(DE)。在本教程中,我们将使用 Xfce 作为我们选择的桌面环境。它是一种快速,稳定且轻巧的产品,非常适合在远程服务器上使用。

使用以下命令更新软件包索引并在Debian服务器上安装Xfce:

sudo apt install xfce4 xfce4-goodies xorg dbus-x11 x11-xserver-utils

根据您的系统,下载和安装Xfce软件包可能需要一些时间。

安装VNC服务器

Debian仓库中还有几种不同的VNC服务器,例如 TightVNC , TigerVNC 和 x11vnc 。每个VNC服务器在速度和安全性方面都有其优点和缺点。

我们将使用TigerVNC,它是积极维护的高性能VNC服务器。要在您的Debian服务器上安装TigerVNC,请使用以下命令:

sudo apt install tigervnc-standalone-server tigervnc-common

一旦安装了VNC服务器,请运行vncserver命令以创建初始配置并设置密码。运行以下命令时请勿使用 sudo :

vncserver

系统将提示您输入并确认密码,以及是否将其设置为仅供查看的密码。如果您选择设置仅查看密码,则用户将无法使用鼠标和键盘与VNC实例进行交互。

You will require a password to access your desktops.

Password:

Verify:

Would you like to enter a view-only password (y/n)? n

/usr/bin/xauth: file /home/myfreax/.Xauthority does not exist

New 'debian9.localdomain:1 (myfreax)' desktop at :1 on machine debian9.localdomain

Starting applications specified in /etc/X11/Xvnc-session

Log file is /home/myfreax/.vnc/debian9.localdomain:1.log

Use xtigervncviewer -SecurityTypes VncAuth -passwd /home/myfreax/.vnc/passwd :1 to connect to the VNC server.

首次运行vncserver命令时,它将创建密码文件并将其存储在~/.vnc目录中。

请注意上面输出中主机名后的:1。这表示正在运行vnc服务器的显示端口号。在我们的例子中,服务器在TCP端口5901(5900 + 1)上运行。如果使用vncserver创建第二个实例,它将在下一个可用端口(即:2)上运行,这意味着服务器在端口5902(5900 + 2)上运行。

需要注意的一点是,在使用VNC服务器时,:X是表示5900+X的显示端口。

在继续下一步之前,请使用vncserver命令(带-kill选项)和服务器编号作为参数来停止VNC实例。在我们的例子中,服务器在端口5901(:1)上运行,因此我们将使用以下命令将其停止:

vncserver -kill :1
Killing Xtigervnc process ID 6677... success!

配置VNC服务器

现在服务器上同时安装了Xfce和TigerVNC,我们需要配置TigerVNC以使用Xfce。为此,请创建以下文件:

nano ~/.vnc/xstartup

〜/.vnc/xstartup

#!/bin/sh

unset SESSION_MANAGER

unset DBUS_SESSION_BUS_ADDRESS

exec startxfce4

完成后,保存并关闭文件。无论何时启动或重新启动TigerVNC服务器,上述脚本都会自动执行。

~/.vnc/xstartup文件还需要具有执行权限。运行以下 chmod 命令以确保权限正确:

chmod u+x ~/.vnc/xstartup

如果需要将附加选项传递给VNC服务器,则可以创建一个名为config的文件,并在每行添加一个选项。这是一个例子:

〜/.vnc/config

geometry=1920x1084

dpi=96

创建一个Systemd服务文件

systemd单位文件将使我们能够根据需要轻松地启动,停止和重新启动VNC服务。

打开您的文本编辑器,然后将以下配置复制并粘贴到其中。不要忘记在第7行中更改用户名以匹配您的用户名。

sudo nano /etc/systemd/system/[email protected]

/etc/systemd/system/[email protected]

[Unit]

Description=Remote desktop service (VNC)

After=syslog.target network.target

[Service]

Type=simple

User=myfreax

PAMName=login

PIDFile=/home/%u/.vnc/%H%i.pid

ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill :%i > /dev/null 2>&1 || :'

ExecStart=/usr/bin/vncserver :%i -geometry 1440x900 -alwaysshared -fg

ExecStop=/usr/bin/vncserver -kill :%i

[Install]

WantedBy=multi-user.target

保存并关闭文件。

通过运行以下命令,通知systemd一个新的[email protected] 文件存在:

sudo systemctl daemon-reload

接下来,启用服务:

sudo systemctl enable [email protected]

@符号后的数字1定义将在其上运行VNC服务的显示端口。如上一节所述,由于我们正在使用1,VNC服务器将在端口5901上侦听。

通过执行以下操作来启动VNC服务:

sudo systemctl start [email protected]

验证服务是否成功启动:

sudo systemctl status [email protected]
● [email protected] - Remote desktop service (VNC)

Loaded: loaded (/etc/systemd/system/[email protected]; enabled; vendor preset: enabled)

Active: active (running) since Wed 2018-10-03 05:23:33 PDT; 51s ago

Process: 7063 ExecStartPre=/bin/sh -c /usr/bin/vncserver -kill :1 > /dev/null 2>&1 || : (code=exited, status=0/SUCCESS)

Main PID: 7071 (vncserver)

Tasks: 0 (limit: 4915)

CGroup: /system.slice/system-vncserver.slice/[email protected]

‣ 7071 /usr/bin/perl /usr/bin/vncserver :1 -geometry 1440x900 -alwaysshared -fg

正在连接到VNC服务器

VNC不是加密协议,可能会受到数据包嗅探的影响。推荐的方法是创建一个 SSH tunnel隧道,该隧道将安全地将流量从端口5901上的本地计算机转发到同一端口上的服务器。

在Linux和macOS上设置SSH tunnel隧道

如果您在计算机上运行Linux,macOS或任何其他基于Unix的操作系统,则可以使用以下命令轻松创建SSH隧道:

ssh -L 5901:127.0.0.1:5901 -N -f -l username server_ip_address

系统将提示您输入用户密码。

不要忘记用您的用户名和服务器的IP地址替换usernameserver_ip_address

在Windows上设置SSH tunnel隧道

如果您运行Windows,则可以使用 PuTTY SSH客户端设置SSH tunnel隧道。

打开Putty,然后在Host name or IP address字段中输入您的服务器IP地址。

Connection菜单下,展开SSH并选择Tunnels。在Source Port字段中输入VNC服务器端口(5901),在Destination字段中输入server_ip_address:5901,然后单击Add按钮,如下图所示:

返回Session页面以保存设置,因此您无需每次都输入它们。现在,您需要做的就是选择保存的会话并通过单击Open按钮登录到远程服务器。

使用Vncviewer连接

现在,您已设置SSH隧道,是时候在localhost:5901处打开Vncviewer并连接到VNC服务器了。

您可以在 Google Chrome 中使用任何VNC查看器,例如TigerVNC,TightVNC,RealVNC,UltraVNC Vinagre和VNC查看器。

在此示例中,我们将使用TigerVNC。打开您的VNC查看器,输入localhost:5901,然后单击Connect按钮。

出现提示时输入密码,您应该会看到默认的Xfce桌面。它看起来应该像这样:

目前,您已成功通过VNC连接到服务器。现在,您可以使用键盘和鼠标从本地计算机开始与远程XFCE桌面进行交互。

结论

现在,您应该已经启动并运行了VNC服务器,并且可以使用图形界面从本地计算机轻松管理Debian 9服务器。

要配置您的VNC服务器以启动一个以上用户的显示,请创建初始配置并使用vncserver命令设置密码。您还需要使用其他端口创建新的服务文件。

如有任何疑问,请随时发表评论。

以上是 如何在Debian 9上安装和配置VNC 的全部内容, 来源链接: utcz.com/z/507209.html

回到顶部