如何设置VNC服务器在Debian 8

介绍

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

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

XFCE是一个轻量级的桌面环境。 因为它具有低系统资源需求,并且因为许多VNC用户熟悉它,我们将在本教程中使用XFCE。 但是,您也可以使用您最喜欢的桌面环境,如Gnome或KDE。

在本教程中,我们将设置一个Debian 8服务器,在其上安装XFCE桌面环境,并通过VNC连接它。 此外,我们将为VNC服务器创建一个启动脚本并通过SSH加以保护。

先决条件

请完成以下先决条件。

  • Debian 8(或8.1)具有root访问权限的Droplet。 512 MB的RAM足以运行VNC和XFCE,但你可能需要一个更大的Droplet取决于你打算用图形界面做什么
  • VNC查看器(客户端)连接到您的服务器。 在本教程中,我们将在Windows上使用UltraVNC,但是您可以使用其他VNC客户端。 您可以下载鸟哥这里 OS X附带一个内置的VNC客户端,称为屏幕共享
  • SSH客户端通过SSH建立安全连接。 我们将使用PuTTY for Windows。 您可以下载PuTTY这里 在OS X上,只需使用内置的终端应用程序

第1步 - 安装VNC和XFCE

在此步骤中,我们将安装VNC Server和XFCE桌面环境,以及其他软件和图标包。

更新服务器的软件包列表:

apt-get update

升级软件包本身:

apt-get -y upgrade

然后,我们将安装tightvncserver和XFCE4的一些有用的附加组件,以及图标主题:

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

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

apt-get install iceweasel

第2步 - 创建VNC用户

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

您可以使用此命令的用户名为VNC添加到您的DebianDroplet:

adduser vnc

为您的新用户提供密码。 您只需按下跳过所有其他问题ENTER

安装sudo通过执行以下命令:

apt-get install sudo

的VNC用户添加到Sudo组,这将给权限的用户执行根命令。

gpasswd -a vnc sudo

让我们切换到VNC的用户:

su - vnc

第3步 - 启动和停止VNC服务器

作为我们新创建的VNC的用户,我们就可以开始VNC服务器和测试我们联系。

启动VNC服务器:

vncserver

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

当服务器启动时,您将收到有关显示屏号码的通知。

输出
xauth:  file /home/vnc/.Xauthority does not exist

New 'X' desktop is vnc:1

Creating default startup script /home/vnc/.vnc/xstartup
Starting applications specified in /home/vnc/.vnc/xstartup
Log file is /home/vnc/.vnc/vnc:1.log

默认情况下,VNC连接服开始在端口5901的第一个显示。 你的第二个显示器将在端口送达5902等。

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

使用此命令停止对你的VNC服务器Display 1 (和端口5901 ):

vncserver -kill :1

:1是要杀死显示号。

当您想再次连接时,可以手动启动VNC服务器。 我们将在以后的步骤中为VNC服务器创建一个服务。

第4步 - 从VNC客户端连接

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

在Windows中,你可以使用的UltraVNC 在这里

在OS X上,您可以使用内置的屏幕共享应用程序或通过Safari访问此应用程序。 在Safari中,你可以输入VNC:// 服务器 IP:5901

为了您的VNC服务器地址, 输入服务器 IP:5901,并使用你刚才设置的VNC连接的密码。

您可以选择XFCE欢迎屏幕上使用默认配置按钮,轻松上手:

Xubuntu欢迎屏幕

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

第5步 - 创建一个systemd服务以自动启动VNC服务器

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

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

vncserver -kill :1

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

由于VNC或其他Sudo用户,创建可以使用自己喜欢的文本编辑器的脚本文件。

sudo nano /usr/local/bin/myvncserver

完全添加这些内容。 此脚本为VNC提供了几个启动参数。

/ usr / local / bin / myvncserver
#!/bin/bash
PATH="$PATH:/usr/bin/"
DISPLAY="1"
DEPTH="16"
GEOMETRY="1024x768"
OPTIONS="-depth ${DEPTH} -geometry ${GEOMETRY} :${DISPLAY}"

case "$1" in
start)
/usr/bin/vncserver ${OPTIONS}
;;

stop)
/usr/bin/vncserver -kill :${DISPLAY}
;;

restart)
$0 stop
$0 start
;;
esac
exit 0

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

如果你正在使用纳米技术,可以通过保存文件CTRL+O通过并退出CTRL+X

使文件可执行:

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

我们的脚本将帮助我们修改设置和启动/停止VNC服务器容易。

如果需要,您可以手动调用脚本,以使用所需的配置在端口5901上启动/停止VNC服务器。

sudo /usr/local/bin/myvncserver start
sudo /usr/local/bin/myvncserver stop
sudo /usr/local/bin/myvncserver restart

现在,我们可以创建一个单元文件为我们服务。 单元文件用于描述服务,并告诉计算机如何启动/停止或重新启动服务。

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

将这些命令复制到服务文件。 我们的服务可以简单的叫以上用户VNC的启动脚本。

/lib/systemd/system/myvncserver.service
[Unit]
Description=Manage VNC Server on this droplet

[Service]
Type=forking
ExecStart=/usr/local/bin/myvncserver start
ExecStop=/usr/local/bin/myvncserver stop
ExecReload=/usr/local/bin/myvncserver restart
User=vnc

[Install]
WantedBy=multi-user.target

现在,我们可以重新加载systemctl ,使我们的服务:

sudo systemctl daemon-reload
sudo systemctl enable myvncserver.service

您已启用新服务。 使用这些命令来启动,使用停止或重新启动该服务systemctl命令:

sudo systemctl start myvncserver.service
sudo systemctl stop myvncserver.service
sudo systemctl restart myvncserver.service

现在,您可以在Droplet上将VNC Server作为服务运行。

第6步 - 使用SSH隧道保护VNC服务器

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

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

首先,停止VNC服务器:

sudo systemctl stop myvncserver.service

编辑配置脚本:

sudo nano /usr/local/bin/myvncserver

更改此行:

/ usr / local / bin / myvncserver
. . .

OPTIONS="-depth ${DEPTH} -geometry ${GEOMETRY} :${DISPLAY}"

. . .

替换为:

/ usr / local / bin / myvncserver
. . .

OPTIONS="-depth ${DEPTH} -geometry ${GEOMETRY} :${DISPLAY} -localhost"

. . .

重新启动VNC服务器:

sudo systemctl start myvncserver.service

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

视窗:

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

打开PuTTY。

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

添加新的转发端口部分,输入5901作为源端口localhost:5901目标

点击添加按钮。

PuTTY SSH隧道配置

现在,您可以到左侧菜单中的会话部分。

输入主机名(或IP地址)字段的Droplet的IP地址。

单击Open按钮进行连接。 您也可以保存这些选项以供以后使用。

PuTTY SSH连接

VNC的用户登录。

在进行VNC连接时,请保持PuTTY窗口打开。

现在,您可以照常使用您的VNC查看器。 只需输入localhost :: 5901作为地址,并保持您的SSH连接生活的背景。

UltraVNC Viewer:localhost :: 5901

OS X:

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

ssh vnc@your_server_ip -L 5901:localhost:5901

认证为SSH VNC的用户正常。 然后,在屏幕共享应用程序,使用localhost:5901。

结论

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

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

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏