Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >如何在Debian 9上安装和配置VNC

如何在Debian 9上安装和配置VNC

原创
作者头像
物花无语
修改于 2018-11-05 09:57:38
修改于 2018-11-05 09:57:38
6.5K00
代码可运行
举报
运行总次数:0
代码可运行

介绍

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

在本指南中,您将在Debian 9服务器上设置VNC服务器,并通过SSH隧道安全地连接到该服务器。您将使用TightVNC,一种快速轻巧的远程控制软件包。这种选择将确保我们的VNC连接即使在较慢的互联网连接上也能够平稳和稳定。

先决条件

要完成本教程,您需要:

步骤1 - 安装桌面环境和VNC服务器

默认情况下,Debian 9服务器没有安装图形桌面环境或VNC服务器,所以我们首先安装它们。具体来说,我们将为最新的Xfce桌面环境和官方Debian存储库中提供的TightVNC软件包安装软件包。

在您的服务器上,更新您的包列表:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo apt update

现在在您的服务器上安装Xfce桌面环境:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo apt install xfce4 xfce4-goodies

在安装过程中,系统会提示您从可能的选项列表中选择键盘布局。选择适合您语言的那个,然后按Enter。安装将继续。

安装完成后,安装TightVNC服务器:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo apt install tightvncserver

要在安装后完成VNC服务器的初始配置,请使用该vncserver命令设置安全密码并创建初始配置文件:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
vncserver

系统将提示您输入并验证密码以远程访问您的计算机:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
You will require a password to access your desktops.Password:
Verify:

密码长度必须介于六到八个字符之间。超过8个字符的密码将自动截断。

验证密码后,您可以选择创建仅查看密码。使用仅查看密码登录的用户将无法使用鼠标或键盘控制VNC实例。如果您想使用VNC服务器向其他人演示内容,这是一个有用的选项,但这不是必需的。

然后,该过程为服务器创建必要的默认配置文件和连接信息:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Would you like to enter a view-only password (y/n)? n
xauth:  file /home/sammy/.Xauthority does not exist
​
New 'X' desktop is your_hostname:1
​
Creating default startup script /home/sammy/.vnc/xstartup
Starting applications specified in /home/sammy/.vnc/xstartup
Log file is /home/sammy/.vnc/your_hostname:1.log

现在让我们配置VNC服务器。

第2步 - 配置VNC服务器

VNC服务器需要知道启动时要执行的命令。具体来说,VNC需要知道它应该连接到哪个图形桌面。

这些命令位于主目录下的.vnc文件夹中名为xstartup的配置文件中。启动脚本是在上一步中运行vncserver时创建的,但我们将创建自己的脚本以启动Xfce桌面。

首次设置VNC时,它会在端口5901上启动默认服务器实例。该端口称为显示端口,由VNC称为:1。VNC可以在其他显示端口上启动多个实例,例如:2:3等等。

因为我们将要更改VNC服务器的配置方式,所以首先使用以下命令停止在端口5901上运行的VNC服务器实例:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
vncserver -kill :1

输出应该如下所示,尽管您会看到不同的PID:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Killing Xtightvnc process ID 17648

在修改xstartup文件之前,请备份原始文件:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
mv ~/.vnc/xstartup ~/.vnc/xstartup.bak

现在创建一个新xstartup文件并在文本编辑器中打开它:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
nano ~/.vnc/xstartup

无论何时启动或重新启动VNC服务器,都会自动执行此文件中的命令。如果尚未启动,我们需要VNC启动我们的桌面环境。将这些命令添加到文件中:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#!/bin/bash
xrdb $HOME/.Xresources
startxfce4 &

文件中的第一个命令xrdb $HOME/.Xresources告诉VNC的GUI框架读取服务器用户的.Xresources文件。用户可以在.Xresources中更改图形桌面的某些设置,如终端颜色,光标主题和字体渲染。第二个命令告诉服务器启动Xfce,在这里您可以找到舒适地管理服务器所需的所有图形软件。

为确保VNC服务器能够正确使用此新启动文件,我们需要使其可执行。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo chmod +x ~/.vnc/xstartup

现在,重新启动VNC服务器。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
vncserver

您将看到类似于此的输出:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
New 'X' desktop is your_hostname:1
​
Starting applications specified in /home/sammy/.vnc/xstartup
Log file is /home/sammy/.vnc/your_hostname:1.log

配置到位后,让我们从本地计算机连接到服务器。

第3步 - 安全地连接VNC桌面

连接时VNC本身不使用安全协议。我们将使用SSH隧道安全地连接到我们的服务器,然后告诉我们的VNC客户端使用该隧道而不是直接连接。

在本地计算机上创建SSH连接,以便安全地转发到localhostVNC连接。您可以使用以下命令通过Linux或macOS上的终端执行此操作:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ssh -L 5901:127.0.0.1:5901 -C -N -l sammy your_server_ip

-L开关指定的端口绑定。在这种情况下,我们将远程连接的端口5901绑定到本地计算机上的端口5901。该-C开关启用压缩,而-N开关告诉ssh我们不希望执行远程命令。该-l开关指定远程登录名。

记得用具有sudo权限的non-root用户名和其IP地址分别替换sammy,和your_server_ip

如果您使用的是图形化SSH客户端(如PuTTY),请将your_server_ip用作连接IP,并在程序的SSH隧道设置中将localhost:5901设置为新的转发端口。

隧道运行后,使用VNC客户端连接至localhost:5901。系统将提示您使用在步骤1中设置的密码进行身份验证

连接后,您将看到默认的Xfce桌面。

选择“ 使用默认配置”以快速配置桌面。

您可以使用文件管理器或命令行访问主目录中的文件,如下所示:

在本地计算机上,按CTRL+C终端以停止SSH隧道并返回到提示符。这也将断开您的VNC会话。

接下来让我们将VNC服务器设置为服务。

步骤4 - 将VNC作为系统服务运行

接下来,我们将VNC服务器设置为systemd服务,以便我们可以根据需要启动,停止和重新启动它,就像任何其他服务一样。这还将确保在服务器重新启动时VNC启动。

首先,使用您喜欢的文本编辑器创建一个名叫/etc/systemd/system/vncserver@.service的新单元文件:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo nano /etc/systemd/system/vncserver@.service

名称末尾的@符号将让我们传入一个我们可以在服务配置中使用的参数。我们将使用它来指定我们在管理服务时要使用的VNC显示端口。

将以下行添加到该文件中。请务必更改用户WorkingDirectory的值以及PIDFILE值中的用户名以匹配您的用户名:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 [Unit]
Description=Start TightVNC server at startup
After=syslog.target network.target
​
[Service]
Type=forking
User=sammy
Group=sammy
WorkingDirectory=/home/sammy
​
PIDFile=/home/sammy/.vnc/%H:%i.pid
ExecStartPre=-/usr/bin/vncserver -kill :%i > /dev/null 2>&1
ExecStart=/usr/bin/vncserver -depth 24 -geometry 1280x800 :%i
ExecStop=/usr/bin/vncserver -kill :%i
​
[Install]
WantedBy=multi-user.target

如果VNC已经运行,该ExecStartPre命令将停止它。该ExecStart命令启动VNC并将颜色深度设置为24位颜色,分辨率为1280x800。您也可以修改这些启动选项以满足您的需求。

保存并关闭文件。

接下来,让系统知道新的单元文件。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo systemctl daemon-reload

启用单元文件。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo systemctl enable vncserver@1.service

@符号以下的1表示,其显示编号的服务应该出现过,在这种情况下,默认:1为在步骤2中进行了讨论..

如果VNC服务器仍然在运行,请停止它的当前实例。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
vncserver -kill :1

然后启动它,就像启动任何其他systemd服务一样。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo systemctl start vncserver@1

您可以使用此命令验证它是否已启动:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo systemctl status vncserver@1

如果它正确启动,输出应如下所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
● vncserver@1.service - Start TightVNC server at startup
   Loaded: loaded (/etc/systemd/system/vncserver@.service; enabled; vendor preset: enabled)
   Active: active (running) since Wed 2018-09-05 16:47:40 UTC; 3s ago
  Process: 4977 ExecStart=/usr/bin/vncserver -depth 24 -geometry 1280x800 :1 (code=exited, status=0/SUCCESS)
  Process: 4971 ExecStartPre=/usr/bin/vncserver -kill :1 > /dev/null 2>&1 (code=exited, status=0/SUCCESS)
 Main PID: 4987 (Xtightvnc)...

重新启动计算机后,VNC服务器现在可用。

再次启动SSH隧道:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ssh -L 5901:127.0.0.1:5901 -C -N -l sammy your_server_ip

然后使用VNC客户端软件建立新连接至localhost:5901以连接到您的计算机。

结论

您现在已在Debian 9服务器上启动并运行安全的VNC服务器。现在,您将能够使用易于使用且熟悉的图形界面管理文件,软件和设置,并且您将能够远程运行Web浏览器等图形软件。

更多Debian教程请前往腾讯云+社区学习更多知识。


参考文献:《How to Install and Configure VNC on Debian 9》

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

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

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

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
如何在Ubuntu 18.04上安装和配置VNC
虚拟网络计算(VNC)是一种连接系统,允许您使用键盘和鼠标与远程服务器上的图形桌面环境进行交互。它使得对于不熟悉命令行的用户更容易管理远程服务器上的文件,软件和设置。
独木桥先生
2018/09/29
45.4K1
如何在Ubuntu 16.04上安装和配置VNC
VNC或“虚拟网络计算”是一种连接系统,允许您使用键盘和鼠标与远程服务器上的图形桌面环境进行交互。它使得对于不熟悉命令行的用户更容易管理远程服务器上的文件,软件和设置。
小铁匠米兰的v
2018/07/25
5.6K0
如何在Ubuntu 16.04上安装和配置VNC
如何在 Ubuntu 18.04 上安装和配置 VNC
本指南介绍了在 Ubuntu 18.04 系统上安装和配置 VNC 服务器所需的步骤。我们还将向您展示如何通过 SSH 隧道安全地连接到 VNC 服务器。
用户8704835
2021/06/07
2.4K0
如何在 CentOS 8 上安装和配置 VNC
Virtual Network Computing (VNC) 是一个图形桌面共享系统,它允许你使用本地的键盘和鼠标来远程控制另外一台计算机。
雪梦科技
2020/05/09
9.7K0
如何在 CentOS 8 上安装和配置 VNC
如何在Debian 8上设置VNC服务器
VNC(虚拟网络计算)是一种使用户能够连接远程计算机的图形桌面并与之交互的系统。它可以通过网络传输屏幕更新,键盘和鼠标事件。
谢鸢
2018/10/22
4.7K0
在Ubuntu 16.04上安装VNC
虚拟网络计算( Virtual Network Computing ),或称作VNC,是一种图形桌面共享系统,允许您从一台计算机远程控制另一台计算机。VNC服务器传输键盘和鼠标事件,并通过网络连接显示远程主机的屏幕,从而允许您在Linode服务器上运行完整的桌面环境。
苏易北
2018/09/11
6.4K0
在Ubuntu 16.04上安装VNC
如何在RHEL 8上安装VNC服务器
VNC(虚拟网络计算)是一种流行的图形桌面共享平台,允许您通过网络(如Internet)远程访问,查看和控制其他计算机。
星哥玩云
2022/07/28
7.9K0
如何在RHEL 8上安装VNC服务器
如何在 CentOS 8/RHEL 8 上安装配置 VNC 服务器
下面的简单指南可以帮助您在CentOS 8 / RHEL 8机器上安装VNC服务器。VNC(虚拟网络计算)服务器是基于GUI的桌面共享平台,允许您从安装了客户机的其他机器远程访问桌面。在CentOS 8和RHEL 8系统中,默认情况下未安装VNC服务器,需要手动安装。
星哥玩云
2022/07/29
6.3K1
如何在 CentOS 8/RHEL 8 上安装配置 VNC 服务器
Centos6.X 下安装并使用VNC的操作记录
VNC是一个的"远程桌面"工具。,通常用于“图形界面”的方式登录服务器,可视化操作。废话不多说了,操作记录如下: 1)安装桌面环境 [root@vm01 ~]# yum -y groupinstall "X Window System" [root@vm01 ~]# yum -y groupinstall "Desktop" [root@vm01 ~]# yum -y groupinstall "General Purpose Desktop" [root@vm01 ~]# yum groupinstall
洗尽了浮华
2018/01/22
2K0
Debian 9 安装和配置VNC
虚拟网络计算(VNC)是一种连接系统,允许您使用键盘和鼠标与远程服务器上的图形桌面环境进行交互。它使得对于不熟悉命令行的用户更容易管理远程服务器上的文件,软件和设置。 以上是 VNC 的介绍(复制的) 因为今天刚在阿里云花两百多大洋买了个服务器,思考了许久决定用 Debian9,为了方便桌面化管理,所以准备配置一下 VNC 服务 准备:Debian 服务器一台 下面开始教程 第一步:安装桌面环境 Debian9 默认情况下是没有桌面环境的,所以我们先来准备好桌面环境 这里我准备安装 GNOME 桌面环境 首
Y5neKO
2022/01/13
2.3K0
Debian 9 安装和配置VNC
VNC远程连接服务安装与配置
描述:VNC是Linux下远程连接服务,类似于Windows下的远程桌面服务,极大的方便使用者使用Linux桌面进行管理运维;
全栈工程师修炼指南
2022/09/28
3.2K0
ubuntu20.04搭建vnc图形化
之前同步了18.04系统的搭建,20.4使用可能有点异常,但是总的步骤都是一样,主要修改vncserver
用户7916049
2021/09/24
5.9K7
使用Apache Guacamole连接虚拟云桌面
Apache Guacamole是一款HTML5应用程序,可通过RDP,VNC和其他协议访问远程桌面。您可以创建一个虚拟云桌面,用户通过Web浏览器即可访问。本指南将介绍如何通过Docker安装Apache Guacamole,并借助其访问托管在Linode上的远程桌面。
苏易北
2018/09/17
17.3K0
使用Apache Guacamole连接虚拟云桌面
如何在Debian 8上使用X2Go设置远程桌面
为了提高效率,安全性以及从命令行执行所有操作的能力,许多服务器不使用图形用户界面(GUI)。但是,有时您需要在远程服务器上运行GUI应用程序,例如在浏览器中测试网站或者您正在寻找具有完整桌面环境(DE)的远程可访问工作站时。
新巴子
2018/08/02
3.9K0
如何在Debian 8上使用X2Go设置远程桌面
【问题随记】tightvnc 连接后灰屏
刚刚入手了官方发的 OrangePi AI Pro,想用 tight vnc 来连接开发板,就不用连接屏幕那么麻烦了。结果连接后,没能显示 OrangePi AI Pro 桌面。
繁依Fanyi
2024/06/04
7360
【问题随记】tightvnc 连接后灰屏
CentOS 6安裝Xfce桌面、VNC、Firefox、Flashplayer
CloudZ
2016/12/26
5.8K0
CentOS 6安裝Xfce桌面、VNC、Firefox、Flashplayer
How to Enable VNC+xfce on Ubuntu16
settings -> window manager -> keyboard -> switch window for same application -> clear
happy123.me
2021/05/18
5930
【玩转腾讯云】零基础给腾讯云轻量应用服务器安装VNC远程桌面环境
一般,我们选择Linux作为服务器操作系统,主要是Linux节约资源,且命令行操控,操作十分高效率。
Mintimate
2021/04/22
17.5K4
【玩转腾讯云】零基础给腾讯云轻量应用服务器安装VNC远程桌面环境
Linux Deploy:部署图形界面环境
文章更新:   20170410 初次成文 问题提出:   其实这篇文章构思很久了,拖到现在才写...原因就在于在Linux Deploy上部署图形环境是一件坑多活累的工作:一来是因为兼容性原因,部署好的图形界面环境存在数量可观的Bug,并且小苏也无力解决这些Bug。二来是因为基础的Linux环境才是图形界面环境部署的前提,而最近由于各种原因,使用原始的部署方法已经越来越难部署成功基础的Linux环境了。   但这样看来,第一点倒不是什么大问题:毕竟手机不是为运行专业的Linux发行版而生,所以存在Bug
美丽应用
2018/07/20
12.4K0
Centos5.6 VNC安装配置【无错版】
http://blog.csdn.net/21aspnet/article/details/6997549
Java架构师必看
2021/03/22
9910
相关推荐
如何在Ubuntu 18.04上安装和配置VNC
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验