介绍
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上运行
。 您可以通过添加 -localhost
到 OPTIONS
上一步中创建的启动脚本中的行来执行此操作。
首先,停止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》