如何在Linux系统中安装VNC Server?

在Linux系统中,VNC(Virtual Network Computing)Server是一种常用的远程图形化管理工具,允许用户通过网络远程访问Linux桌面环境,尤其适合无图形界面的服务器或需要可视化操作的场景,本文将以主流发行版Ubuntu/Debian和CentOS/RHEL为例,详细讲解VNC Server的安装、配置及使用流程。

linux如何安装vnc server

系统更新与依赖安装

在安装VNC Server前,需确保系统已更新至最新状态,避免因软件版本不兼容导致问题,以Ubuntu/Debian为例,执行以下命令更新系统:

sudo apt update && sudo apt upgrade -y

对于CentOS/RHEL系统,需先更新软件包列表并升级现有包:

sudo yum update -y  # CentOS 7及以下
sudo dnf update -y  # CentOS 8/RHEL 8及以上

VNC Server依赖图形桌面环境,若系统为纯服务器版,需先安装桌面环境,Ubuntu/Debian可安装轻量级的XFCE:

sudo apt install xfce4 xfce4-goodies -y

CentOS/RHEL则需安装GNOME Desktop(或其他桌面环境,如XFCE需额外配置EPEL源):

sudo yum groupinstall "GNOME Desktop" -y  # CentOS 7/RHEL 7
sudo dnf groupinstall "GNOME Desktop" -y  # CentOS 8/RHEL 8

安装VNC Server软件

目前主流VNC Server实现有TigerVNC、TightVNC等,本文以TigerVNC为例(稳定性较好,支持加密)。

Ubuntu/Debian系统

sudo apt install tigervnc-standalone-server tigervnc-xorg-extension -y

CentOS/RHEL系统

sudo yum install tigervnc-server tigervnc-server-module -y  # CentOS 7/RHEL 7
sudo dnf install tigervnc-server -y  # CentOS 8/RHEL 8

配置VNC密码

VNC Server需通过密码验证访问,首次安装后需设置访问密码,执行以下命令(以当前用户为例,如root用户则直接执行,普通用户需加sudo):

linux如何安装vnc server

vncpasswd

根据提示输入密码(需4-8位,仅支持字母和数字),并确认密码,若需设置只读密码(可选,允许查看但不可操作),再次输入密码后选择n跳过只读密码设置,设置完成后,密码文件将保存在用户主目录的.vnc/下(如/home/user/.vnc/passwd)。

配置VNC服务

创建VNC服务配置文件

TigerVNC可通过systemd管理服务,需创建服务单元文件,以用户user为例,创建配置文件:

sudo nano /etc/systemd/system/vncserver@:1.service

1表示VNC桌面号,对应端口5901,可修改为23等,端口依次为5902、5903)

编写服务配置内容

[Unit]
Description=TigerVNC Server on Ubuntu
After=syslog.target network.target
[Service]
Type=forking
User=user
Group=user
WorkingDirectory=/home/user
PIDFile=/home/user/.vnc/%H:%i.pid
ExecStartPre=-/usr/bin/vncserver -kill :%i > /dev/null 2>&1
ExecStart=/usr/bin/vncserver -depth 24 -geometry 1280x720 :%i
ExecStop=/usr/bin/vncserver -kill :%i
[Install]
WantedBy=multi-user.target
  • UserGroup:替换为实际用户名(如root);
  • WorkingDirectory:用户主目录;
  • ExecStart参数:-depth 24表示24位色深,-geometry 1280x720为分辨率,可根据需求调整。

重载systemd并启动服务

sudo systemctl daemon-reload  # 重载systemd配置
sudo systemctl start vncserver@:1.service  # 启动VNC服务(:1为桌面号)
sudo systemctl enable vncserver@:1.service  # 设置开机自启

配置防火墙规则

若系统启用了防火墙,需开放VNC默认端口(5901对应1桌面号)。

Ubuntu/Debian(UFW)

sudo ufw allow 5901/tcp  # 开放5901端口
sudo ufw reload  # 重载防火墙规则

CentOS/RHEL(firewalld)

sudo firewall-cmd --permanent --add-port=5901/tcp  # 永久开放5901端口
sudo firewall-cmd --reload  # 重载防火墙规则

VNC客户端连接

在本地设备安装VNC客户端(如TigerVNC Viewer、RealVNC Viewer、Windows远程连接工具等),输入服务器IP地址及端口号(格式为IP:1,如168.1.100:1),输入之前设置的VNC密码即可连接。

若连接失败,可通过以下命令检查服务状态:

linux如何安装vnc server

sudo systemctl status vncserver@:1.service  # 查看服务状态
journalctl -u vncserver@:1.service -f  # 查看服务日志(排查错误)

不同发行版操作命令对比

为方便操作,以下表格汇总了主要发行版的关键命令:
| Ubuntu/Debian | CentOS/RHEL |
|————————|—————————————-|————————————–|
| 更新系统 | sudo apt update && sudo apt upgrade -y | sudo yum update -y/sudo dnf update -y |
| 安装桌面环境(XFCE) | sudo apt install xfce4 xfce4-goodies -y | 需先配置EPEL源后安装 |
| 安装TigerVNC | sudo apt install tigervnc-standalone-server -y | sudo yum install tigervnc-server -y |
| 设置VNC密码 | vncpasswd | vncpasswd |
| 启动VNC服务(:1桌面) | sudo systemctl start vncserver@:1.service | 同左 |
| 开机自启VNC服务 | sudo systemctl enable vncserver@:1.service | 同左 |
| 开放防火墙端口(5901) | sudo ufw allow 5901/tcp | sudo firewall-cmd --permanent --add-port=5901/tcp |

相关问答FAQs

Q1:VNC Server连接时提示“Authentication failed”怎么办?
A:可能原因及解决方案:

  1. 密码错误:重新确认VNC密码是否正确,可通过vncpasswd重新设置;
  2. 密码文件权限问题:确保密码文件权限为600(chmod 600 ~/.vnc/passwd);
  3. 服务未启动:检查服务状态(systemctl status vncserver@:1.service),若未启动则执行systemctl start vncserver@:1.service

Q2:如何修改VNC Server的桌面分辨率?
A:修改VNC服务配置文件中的ExecStart参数,调整-geometry后的分辨率值,以/etc/systemd/system/vncserver@:1.service为例,将:

ExecStart=/usr/bin/vncserver -depth 24 -geometry 1280x720 :%i  

修改为所需分辨率(如1920x1080),保存后重载systemd并重启服务:

sudo systemctl daemon-reload
sudo systemctl restart vncserver@:1.service

重启后,VNC客户端将应用新的分辨率设置。

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/15926.html

(0)
酷番叔酷番叔
上一篇 2025年8月24日 10:44
下一篇 2025年8月24日 10:59

相关推荐

  • 当前Shell是什么?查看方法

    在Linux系统中,Shell是用户与操作系统内核交互的桥梁,它负责解释和执行用户输入的命令,不同的Shell(如Bash、Zsh、Fish)在功能、自动补全、脚本兼容性等方面存在差异,用户可能需要更换Shell以获得更高效的工作流(如Zsh的插件生态)或兼容特定脚本,以下是详细操作指南:查看当前Shell终端……

    2025年7月31日
    16600
  • Linux如何捕获终端进程的具体方法?

    在Linux系统中,终端进程是用户与系统交互的核心载体,捕获终端进程通常指记录、监控或控制终端会话的输入输出,常见于调试、审计、会话记录或远程协作场景,本文将详细说明多种捕获终端进程的方法,涵盖基础命令、系统工具及高级技术,并对比其适用场景与优缺点,基础方法:使用script命令记录终端会话script是Lin……

    2025年8月24日
    16800
  • Linux里打开文件夹的具体方法是什么?命令行和图形界面如何操作?

    在Linux操作系统中,文件夹(目录)是文件管理的基本单元,掌握打开文件夹的方法是高效使用系统的基础,无论是图形化界面还是命令行环境,Linux都提供了多种灵活的打开方式,满足不同用户的使用习惯和需求,本文将详细介绍这些方法,涵盖图形界面、命令行工具及终端文件管理器等场景,帮助用户根据实际场景选择最合适的操作方……

    2025年9月21日
    12700
  • Linux C如何输入整形变量?

    在Linux C程序中,输入整形变量是常见的操作,主要通过标准输入函数实现,以下是几种常用方法的详细说明,包括函数用法、注意事项及示例代码,使用scanf函数直接输入scanf是C标准库中最常用的输入函数,通过格式控制符%d(或其他修饰符)读取整形数据,其基本语法为:int scanf(const char……

    2025年8月25日
    13600
  • Linux如何安全删除文件夹?

    命令行删除(推荐方法)Linux通过终端命令高效管理文件,主要使用 rm 和 rmdir 命令,使用 rm 命令(删除非空文件夹)rm(remove)是删除文件和文件夹的核心工具,配合参数可处理嵌套内容:rm -r 文件夹名称-r(或 –recursive):递归删除文件夹及其内部所有子文件和子目录,-f(强……

    2025年7月18日
    18000

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信