介绍
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 欢迎屏幕上选择 ** 使用默认配置 ** 按钮,以便轻松开始:
现在你可以使用你的远程桌面!
步骤 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上服务
您可以通过在上一步创建的启动脚本中添加-localhost
到OPTIONS
行。
首先,停止 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
为目的地
。
点击添加
按钮。
现在您可以进入左侧菜单中的 ** 会话 ** 部分。
在 ** 主机名称(或 IP 地址)** 字段中输入您的 Droplet 的 IP 地址。
点击打开
按钮连接,您也可以将这些选项保存为以后使用。
登录您的 *vnc * 用户。
保持 PuTTY 窗口打开,当您建立 VNC 连接。
现在您可以像往常一样使用VNC浏览器,只需输入 localhost::5901作为地址,并在背景中保持您的SSH连接。
• OS X:**
要建立 SSH 隧道,请在终端中使用以下行:
1ssh vnc@your_server_ip -L 5901:localhost:5901
对 SSH 的 vnc 用户进行正常身份验证.然后,在屏幕共享应用中,使用 localhost:5901。
结论
您现在可以在 Debian 8 服务器上使用共享的远程桌面。
使用它来配置您的服务器,或与他人共享您的屏幕。