实现服务器VNC访问

JiHua
2024-11-12
113

实现服务器VNC需要准备什么

安装 VNC 服务器 以及 配置VNC服务器。

本文以CentOs 7.9版本为例,全程需要root管理员身份进行操作过程。

1.安装VNC服务器

[root@cloud ~]# dnf install tigervnc-server tigervnc-server-module

2.安装 GNOME桌面环境,也就是可视化窗口

[root@cloud ~]# dnf groupinstall "Server with GUI"
// 或者 和
[root@cloud ~]# sudo yum groupinstall "Xfce"
// 再或者 和
[root@cloud ~]# sudo yum groupinstall "GNOME Desktop"

成功安装上面的 GUI 包后,运行以下命令启用图形模式:

[root@cloud ~]# systemctl set-default graphical
// 输入完成后 等待一会 输入下面命令 进行服务器重启 或者手动去重启服务器
[root@cloud ~]# reboot

3.配置 VNC服务器

经过上一步安装基本上完成一大半了 接下来就是各种文件的配置了

[root@cloud ~]# vi /etc/gdm/custom.conf 

取消注释 /etc/gdm/custom.conf 中的 WaylandEnable=false,以使通过 vnc 进行的远程桌面会话请求由 GNOME 桌面的 xorg 处理,来代替 Wayland 显示管理器。
接着输入

[root@cloud ~]# vncserver
You will require a password to access your desktops.
Password:   // 这里输入你的用户名密码
Verify:     // 确认密码
Would you like to enter a view-only password (y/n)? n //选 n
A view-only password is not used
xauth:  file /root/.Xauthority does not exist
New 'hcss8:1 (root)' desktop is hcss-ecs-a318:1
Creating default startup script /root/.vnc/xstartup
Creating default config /root/.vnc/config
Starting applications specified in /root/.vnc/xstartup
Log file is /root/.vnc/hcss-e318:1.log

出现以上内容则成功创建服务器和配置用户密码了,由于没有创建用户步骤则访问时用户名为默认的root。
这个时候已经可以访问了,但是可能会黑屏,接下来还有一个配置项

修改 xstartup 文件
打开 ~/.vnc/xstartup 文件,并用以下内容替换原有的内容:

[root@cloud ~]# vi /.vnc/xstartup

删除所有内容,粘贴↓

#!/bin/sh

# 清理环境变量,防止出现错误
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS

# 启动 Xfce 桌面环境
startxfce4 &

保存退出然后执行一下

[root@cloud ~]# chmod +x /.vnc/xstartup

这个时候就已经配置完成了,默认的界面为 startxfce4 & Xfce桌面。
重启一下 VNC 服务器

# 停止 VNC 服务器
[root@cloud ~]# vncserver -kill :1

# 重新启动 VNC 服务器
[root@cloud ~]# vncserver :1

这里有个坑,由于官方默认会有一个VNC服务 为了避免冲突 建议把上面的 :1 替换为 :2 ,这样会运行两个VNC服务,也不会导致冲突了

最后一步 , 检查

  1. 打开端口 5902 即可访问 远程VNC了

如果你想使用Ubuntu 22.04系统 可参考阿里云这篇教程

点击访问 ,跳转至文章。

but,文章当中有个坑需要注意!!
文章配图
在这里面的修改文件 vi /.vnc/xstartup 里面的内容应该填充为 ↓

#!/bin/sh

unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS

# Start GNOME session
gnome-session --no-remote &

即可。

标签:服务器、VNC、访问、实现服务器VNC访问