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/config2、vnc server的配置
2.1、创建用户
创建一个用户 guest ,然后设置密码
[root@vnc-server ~]# useradd guest [root@vnc-server ~]# passwd guest2.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 used2.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.service3、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" 即可