如何在 Debian 8 上设置 VNC 服务器

介绍

VNC(虚拟网络计算)是一个系统,允许用户连接和与远程计算机的图形桌面交互,它可以通过网络传输屏幕更新和键盘和鼠标事件。

当您需要为您的服务器提供图形桌面环境时,VNC非常有用。

XFCE是一个轻量级的桌面环境,因为它对系统资源的要求很低,而且由于许多VNC用户都熟悉它,我们将在本教程中使用XFCE。

在本教程中,我们将设置 Debian 8 服务器,在其上安装 XFCE 桌面环境,并通过 VNC 连接到它。

前提条件

请满足下列前提条件。

  • Debian 8 (或 8.1) 具有 root 访问的 Droplet. 512 MB 的 RAM 足以运行 VNC 和 XFCE,但您可能需要一个更大的 Droplet 取决于您计划使用图形界面
  • 您的计算机上的 VNC 浏览器(客户端)连接到您的服务器。 在本教程中,我们将使用 Windows 上的 UltraVNC,但您可以使用其他 VNC 客户端。您可以下载 UltraVNC 这里。 OS X 配有内置的 VNC 客户端,名为屏幕共享
  • SSH 客户端,以建立安全的连接。我们将使用 PuTTY 用于 Windows。您可以下载 PuTTY 这里。 在 OS X

步骤 1 – 安装 VNC 和 XFCE

在此步骤中,我们将安装VNC服务器和XFCE桌面环境,加上额外的软件和图标包。

更新您的服务器的包列表:

1apt-get update

更新包本身:

1apt-get -y upgrade

接下来,我们将安装tightvncserver和XFCE4以及一些有用的插件和图标主题:

1apt-get install xfce4 xfce4-goodies gnome-icon-theme tightvncserver

默认情况下,没有安装的浏览器. 您可以安装 iceweasel (这是Debian 的Mozilla Firefox的改装版本),如果您想从您的VNC连接访问网络:

1apt-get install iceweasel

步骤 2 – 创建 VNC 用户

我们将为 VNC 连接创建一个单独的用户,以保持事物的安全和清洁。使用sudo是强烈建议的,而不是直接使用 root 用户为您的 VNC 服务器。

您可以使用此命令将名为 vnc的用户添加到您的 Debian Droplet:

1adduser vnc

给你的新用户一个密码,你可以跳过所有其他问题,只需点击ENTER

安装sudo通过执行这个命令:

1apt-get install sudo

将您的新 vnc 用户添加到 sudo 组中,该组将授予该用户执行根命令的权限。

1gpasswd -a vnc sudo

让我们转到 vnc用户:

1su - vnc

步骤 3 – 启动和停止您的 VNC 服务器

作为我们新创建的 vnc用户,我们可以启动VNC服务器并测试我们的连接。

启动VNC服务器:

1vncserver

由于这是您第一次运行服务器,您将被要求设置一个密码,客户端将使用它来连接。 记住此密码以后! 您还可以设置一个只查看密码,这将允许用户查看屏幕,但不与它交互。 密码应该是 6-8个字符

您将在服务器启动时收到显示号码的通知。

1[label Output]
2xauth:  file /home/vnc/.Xauthority does not exist
3
4New 'X' desktop is vnc:1
5
6Creating default startup script /home/vnc/.vnc/xstartup
7Starting applications specified in /home/vnc/.vnc/xstartup
8Log file is /home/vnc/.vnc/vnc:1.log

默认情况下,VNC连接将从5901开始的端口提供服务,而您的第二个显示屏将从5902端口提供服务等。

现在不要停止服务器,但我们正在包括停止命令作为参考。

<$>[注] 使用此命令停止您的VNC服务器在显示 1 (和端口5901):

1vncserver -kill :1

:1是你想要杀死的显示号码。

当您想要再次连接时,您可以手动启动 VNC Server. 我们将在稍后的一步中为 VNC Server 创建服务 <$>

步骤 4 — 从 VNC 客户端连接

现在您可以连接到您的 VNC 服务器,打开您的本地 VNC 客户端,这将取决于您的操作系统。

在 Windows 中,您可以使用 UltraVNC 这里

在 OS X 上,您可以使用内置的屏幕共享应用程序或通过 Safari 访问该应用程序。在 Safari 中,您可以输入 vnc://your_server_ip:5901

对于您的 VNC 服务器地址,请输入 your_server_ip:5901,并使用您刚刚为 VNC 连接设置的密码。

您可以在 XFCE 欢迎屏幕上选择 ** 使用默认配置 ** 按钮,以便轻松开始:

Xubuntu Welcome Screen

现在你可以使用你的远程桌面!

步骤 5 — 创建一个 systemd 服务来自动启动 VNC 服务器

在本节中,我们将VNC服务器添加到 systemd。使用服务可以有助于启动和停止VNC服务器,并在Droplet重新启动时自动启动。

首先,让我们杀死当前实例:

1vncserver -kill :1

创建一个简单的脚本来轻松管理和配置我们的 VNC 服务器:

作为 vnc 或其他 sudo 用户,使用您最喜欢的文本编辑器创建脚本文件。

1sudo nano /usr/local/bin/myvncserver

准确地添加这些内容. 此脚本为VNC提供了一些启动参数。

 1[label /usr/local/bin/myvncserver]
 2#!/bin/bash
 3PATH="$PATH:/usr/bin/"
 4DISPLAY="1"
 5DEPTH="16"
 6GEOMETRY="1024x768"
 7OPTIONS="-depth ${DEPTH} -geometry ${GEOMETRY} :${DISPLAY}"
 8
 9case "$1" in
10start)
11/usr/bin/vncserver ${OPTIONS}
12;;
13
14stop)
15/usr/bin/vncserver -kill :${DISPLAY}
16;;
17
18restart)
19$0 stop
20$0 start
21;;
22esac
23exit 0

您可以修改脚本以更改 VNC 连接的颜色深度或分辨率。

如果您正在使用 nano,您可以通过CTRL+O保存文件,并通过CTRL+X退出文件。

讓檔案可執行:

1sudo chmod +x /usr/local/bin/myvncserver

我们的脚本将帮助我们更改设置并轻松启动/停止 VNC 服务器。

<$>[注] 如果您想要,您可以手动调用脚本,以便在端口5901上启动/停止VNC服务器。

1sudo /usr/local/bin/myvncserver start
2sudo /usr/local/bin/myvncserver stop
3sudo /usr/local/bin/myvncserver restart

美元

现在我们可以为我们的服务创建 unit file

1sudo nano /lib/systemd/system/myvncserver.service

将这些命令复制到服务文件. 我们的服务只会通过用户 vnc来调用上面的启动脚本。

 1[label /lib/systemd/system/myvncserver.service]
 2[Unit]
 3Description=Manage VNC Server on this droplet
 4
 5[Service]
 6Type=forking
 7ExecStart=/usr/local/bin/myvncserver start
 8ExecStop=/usr/local/bin/myvncserver stop
 9ExecReload=/usr/local/bin/myvncserver restart
10User=vnc
11
12[Install]
13WantedBy=multi-user.target

现在我们可以重新加载systemctl并启用我们的服务:

1sudo systemctl daemon-reload
2sudo systemctl enable myvncserver.service

使用以下命令启动、停止或重新启动使用systemctl命令的服务:

1sudo systemctl start myvncserver.service
2sudo systemctl stop myvncserver.service
3sudo systemctl restart myvncserver.service

现在您可以在您的 Droplet 上运行 VNC 服务器作为服务。

步骤 6 – 通过SSH隧道保护您的VNC服务器

默认情况下,VNC连接不使用加密,因此建议使用SSH隧道来保护您的会话。

要做到这一点,我们只会让我们的VNC服务器在 localhost上服务 您可以通过在上一步创建的启动脚本中添加-localhostOPTIONS行。

首先,停止 VNC 服务器:

1sudo systemctl stop myvncserver.service

编辑您的配置脚本:

1sudo nano /usr/local/bin/myvncserver

更改这条线:

1[label /usr/local/bin/myvncserver]
2. . .
3
4OPTIONS="-depth ${DEPTH} -geometry ${GEOMETRY} :${DISPLAY}"
5
6. . .

用它取代:

1[label /usr/local/bin/myvncserver]
2. . .
3
4OPTIONS="-depth ${DEPTH} -geometry ${GEOMETRY} :${DISPLAY} -localhost"
5
6. . .

重启 VNC 服务器:

1sudo systemctl start myvncserver.service

现在您无法从远程计算机直接连接到 VNC 服务器。

维生素:**

我们将使用 PuTTY 创建一个 SSH 隧道,然后通过我们创建的隧道连接。

打开Putty。

从左侧菜单,进入 连接>SSH->隧道部分。

新增前端口部分中,输入5901源端口本地托管:5901目的地

点击添加按钮。

PuTTY SSH Tunnel Configuration

现在您可以进入左侧菜单中的 ** 会话 ** 部分。

在 ** 主机名称(或 IP 地址)** 字段中输入您的 Droplet 的 IP 地址。

点击打开按钮连接,您也可以将这些选项保存为以后使用。

PuTTY SSH Connection

登录您的 *vnc * 用户。

保持 PuTTY 窗口打开,当您建立 VNC 连接。

现在您可以像往常一样使用VNC浏览器,只需输入 localhost::5901作为地址,并在背景中保持您的SSH连接。

UltraVNC Viewer: localhost::5901

• OS X:**

要建立 SSH 隧道,请在终端中使用以下行:

1ssh vnc@your_server_ip -L 5901:localhost:5901

对 SSH 的 vnc 用户进行正常身份验证.然后,在屏幕共享应用中,使用 localhost:5901

结论

您现在可以在 Debian 8 服务器上使用共享的远程桌面。

使用它来配置您的服务器,或与他人共享您的屏幕。

Published At
Categories with 技术
comments powered by Disqus