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

介绍

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

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

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

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

准备

请完成以下准备。

  • Debian 8(或8.1)具有root访问权限的腾讯云CVM。512 MB的RAM足以运行VNC和XFCE,但您可能需要更大的腾讯云CVM,具体取决于您打算如何处理图形界面。没有服务器的同学可以在这里购买,不过我个人更推荐您使用免费的腾讯云开发者实验室进行试验,学会安装后再购买服务器
  • 计算机上的VNC查看器(客户端)连接到您的服务器。在本教程中,我们将在Windows上使用UltraVNC,但您可以使用其他VNC客户端。你可以在这里下载UltraVNC 。OS X附带一个名为Screen Sharing的内置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

默认情况下,没有安装浏览器。如果要从VNC连接访问Web,可以安装iceweasel(这是Mozilla Firefox for Debian的重新命名版本):

apt-get install iceweasel

第2步 - 创建VNC用户

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

您可以使用以下命令将名为vnc的用户添加到Debian 腾讯云CVM:

adduser vnc

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

执行此命令安装sudo

apt-get install sudo

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

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命令以供参考。

使用此命令停止Display 1上的VNC服务器(和端口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欢迎屏幕上选择使用默认配置按钮以便轻松入门:

现在您可以使用远程桌面了!

步骤5 - 创建systemd服务以自动启动VNC服务器

在本节中,我们将VNC服务器添加到systemd。使用服务对于启动和停止VNC服务器非常有用,并且在重新启动腾讯云CVM时也可以自动启动它。

首先,让我们结束当前实例:

vncserver -kill :1

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

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

sudo nano /usr/local/bin/myvncserver

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

#!/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连接的颜色深度或分辨率。

如果您使用的是nano,则可以保存文件(通过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调用上面的启动脚本。

[Unit]
Description=Manage VNC Server on this 腾讯云CVM
​
[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

现在,您可以在腾讯云CVM上将VNC Server作为服务运行。

步骤6 - 使用SSH隧道保护您的VNC服务器

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

为此,我们只允许我们的VNC服务器在localhost上运行。 您可以通过添加-localhostOPTIONS上一步中创建的启动脚本中的行来执行此操作。

首先,停止VNC服务器:

sudo systemctl stop myvncserver.service

编辑配置脚本:

sudo nano /usr/local/bin/myvncserver

改变这一行:

在/ usr / local / bin目录/ myvncserver

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

替换为:

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

重启VNC服务器:

sudo systemctl start myvncserver.service

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

Windows:

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

打开PuTTY。

从左侧菜单中,转到Connection-> SSH-> Tunnels部分。

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

单击“ 添加”按钮。

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

主机名(或IP地址)字段中输入您的腾讯云CVM的IP地址。

单击“ 打开”按钮进行连接。您也可以保存这些选项以供日后使用。

使用您的vnc用户登录。

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

现在您可以像往常一样使用VNC查看器。只需输入localhost :: 5901作为地址,并在后台保持SSH连接。

OS X:

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

ssh vnc@your_server_ip -L 5901:localhost:5901

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

结论

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

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

想要了解更多关于设置VNC服务器的相关教程,请前往腾讯云+社区学习更多知识。


参考文献:《How To Set Up VNC Server on Debian 8》

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏腾讯Bugly的专栏

H5 缓存机制浅析 移动端 Web 加载性能优化

1 H5 缓存机制介绍 H5,即 HTML5,是新一代的 HTML 标准,加入很多新的特性。离线存储(也可称为缓存机制)是其中一个非常重要的特性。H5 引入的离...

3802
来自专栏张戈的专栏

WordPress启用memcached动态缓存以及报错解决

张戈博客目前用的是Nginx 的 fastcgi 缓存方案,属于纯净态缓存模式,所以前台登录态什么的基本都没了。如果要兼顾前台登录态,又想速度快,有没有解决方案...

5839
来自专栏漫漫前端路

前端安全知识

xss: 跨站脚本攻击(Cross Site Scripting)是最常见和基本的攻击 WEB 网站方法,攻击者通过注入非法的 html 标签或者 javasc...

1112
来自专栏.Net移动开发

关于发布IOS的方法(本人亲身经历折腾很久终于成功)

前情提要:这位.NET程序员兄弟使用Smobiler开发了一个APP,尽管Smobiler云平台已经最大限度的简化了iOS应用的打包操作,但仍绕不开苹果公司强制...

1501
来自专栏云计算教程系列

如何在Ubuntu 16.04上安装和配置VNC

VNC或“虚拟网络计算”是一种连接系统,允许您使用键盘和鼠标与远程服务器上的图形桌面环境进行交互。它使得对于不熟悉命令行的用户更容易管理远程服务器上的文件,软件...

5847
来自专栏云计算教程系列

如何在FreeBSD 10.1上使用Sendmail通过外部SMTP服务发送电子邮件

设置新的Web服务器时最常见的需求之一是发送电子邮件。最安全,最简单的方法是将服务器连接到SendGrid或Amazon SES等邮件服务。使用外部服务将帮助您...

1950
来自专栏北京马哥教育

10 个最不流行的 Linux 命令

英文:Tecmint,编译:Linux中国/Luoxcat linux.cn/article-2265-1.html 在本文中,我们将关注几个不为人知的Lin...

3547
来自专栏Python专栏

用python来更改小伙伴的windows开机密码,不给10块不给开机

2696
来自专栏Aloys的开发之路

SVN+Apache域用户认证配置方法_Windows(转,重新排版,部分内容更新优化)

背景说明 作为一个团队开发,公司长期以来的实践证明,手工操作版本管理是非常不明智的,一来浪费人力,二来效率低下,三来容易犯错。那么版本管理用什么工具好呢? 在开...

28310
来自专栏静晴轩

如何设置添加SSH

去(2014)年有开始折腾个人Blog;从使用Jekll到Hexo,平台也从Github一度迁移至国内的Gitcafe(Hexo创建/测试/发布Blog都极为方...

5196

扫码关注云+社区

领取腾讯云代金券