☰
rockylinux 9 部署vnc 服务
2026/9/26 5:28:27 网站建设 项目流程

vmvare 虚拟机需要开启vnc 连接,如果是物理服务器就不需要了

1、安装vnc server

[root@vnc-server ~]# dnf install -y tigervnc-server [root@vnc-server ~]# systemctl disable firewalld --now [root@vnc-server ~]# setenforce 0 [root@vnc-server ~]# sed -i.bak 's|SELINUX=enforcing|SELINUX=disabled|' /etc/selinux/config

2、vnc server的配置

2.1、创建用户

创建一个用户 guest ,然后设置密码

[root@vnc-server ~]# useradd guest [root@vnc-server ~]# passwd guest

2.2、为guest 用户设置vnc密码

[root@vnc-server ~]# su - guest [guest@vnc-server ~]$ vncpasswd Password: 输入密码 Verify: 确认密码 Would you like to enter a view-only password (y/n)? n #这里选择n A view-only password is not used

2.3、配置用户映射

编辑/etc/tigervnc/vncserver.users ,将guest 用户映射到一个显示标志 2(编号可以自己定义)

在尾行加一行内容,如下

如果为多个用户分配VNC 则需要添加多行

2.4、配置用户自己的vnc环境

vnc server 配置文件优先级从低到高排序如下

  • (1) TigerVNC 内置默认值: 编译时或在代码中写死的默认参数
  • (2) /etc/tigervnc/vncserver-config-defaults: 全局的默认配置,会覆盖内置默认值,但是可以被用户配置和强制配置覆盖
  • (3) 用户个人配置: 位置在~/.config/tigervnc/config(推荐),用户配置会覆盖全局默认值,但会被全局强制配置覆盖
  • (4)/etc/tigervnc/vncserver-config-mandatory: 全局强制配置,拥有最高优先级,会覆盖所有的用户和全局默认值

  • 创建一个~/.config/tigervnc/config 文件,配置用户自己的vnc
  • [guest@vnc-server ~]$ cat ~/.config/tigervnc/config securitytypes=vncauth,tlsvnc geometry=2000x1200 #localhost 不接受来自其他主机的直接连接,如果是需要其他主机连接则可以注释掉 localhost alwaysshared

配置项说明:

(1)securitytypes=vncauth,tlsvnc

表示允许客户端使用以下两种安全认证类型:

vncauth

传统的 VNC 密码认证。密码通过 vncpasswd 设置,保存在 ~/.vnc/passwd。它本身不加密传输数据,所以如果直接暴露在网络上不安全,通常要配合 SSH 隧道使用。

tlsvnc

使用 TLS 加密通道,同时仍然使用 VNC 密码认证。比 vncauth 更安全,因为传输过程被 TLS 加密。

TigerVNC 可能会使用自签名证书,客户端第一次连接时可能提示证书不受信任。

这两个类型用逗号分隔,表示服务器愿意接受其中任意一种,具体用哪个由客户端和服务器协商决定

(2)geometry=2000x1200:分辨率 宽:2000 像素 高:1200 像素

(3)localhost :VNC 服务器只监听本机回环地址 127.0.0.1,不接受来自其他主机的直接连接。

效果是:远程客户端不能直接连接 服务器IP:5901;必须通过 SSH 隧道访问

例如:

ssh -L 5901:localhost:5901 guest@服务器IP

然后 VNC Viewer 连接 localhost:5901。

这样做更安全,因为 VNC 端口不会直接暴露在网络上。

(4)alwaysshared:允许多个 VNC 客户端同时连接到同一个 VNC 会话,共享同一个桌面

默认情况下,TigerVNC 通常不允许共享:新客户端连接时,可能会断开已有连接,或者拒绝新连接。

加上 alwaysshared 后,多个客户端可以同时看到并操作同一个桌面,适合多人协作或同一用户从多台 设备连接

2.5、启动vncserver@2.service服务

[guest@vnc-server ~]$ systemctl daemon-reload [guest@vnc-server ~]$ systemctl enable vncserver@:2.service [guest@vnc-server ~]$ systemctl start vncserver@:2.service

3、VNC Viewer 连接

因为在guest用户的家目录vnc config 中配置了 localhost,所以直接走 SSH 隧道是最安全。

在本地电脑(运行vnc viewer)的主机上远程连接上vnc-server,连接需要保持

C:\Users\admin>ssh -L 5902:localhost:5902 guest@192.168.10.150

打开 vnc viewer,输入以下内容,然后点击 "connect" 即可

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询