Menu Close

Redhat Linux 7 配置VNC远程桌面工具

参考:RedHat官方文档:https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/system_administrators_guide/ch-tigervnc

1. 系统环境

Oracle Linux Server 7.9

2. 利用yum安装tigervnc-server

2.1. 检查系统是否有安装tigervnc-server软件包

~]# rpm -qa | grep vnc

2.2. 安装tigervnc-server软件包

~]# yum install -y tigervnc-server

检查tigervnc-server是否安装成功:

~]# rpm -qa | grep vnc

gvnc-0.7.0-3.el7.x86_64
tigervnc-server-1.8.0-21.el7.x86_64
tigervnc-license-1.8.0-21.el7.noarch
gtk-vnc2-0.7.0-3.el7.x86_64
tigervnc-server-minimal-1.8.0-21.el7.x86_64

2.3. 为单个用户配置VNC显示

1)我们需要在 /etc/systemd/system/ 目录里创建一个配置文件。创建一个新的VNC配置文件,/lib/systemd/system/vncserver@.service,这是一个配置文件模版,可以拷贝一份出来进行相关修改

~]# cp /lib/systemd/system/vncserver@.service  /etc/systemd/system/vncserver@:1.service

(注意) 在 @后面的数字1表示的是显示界面的序列号,对应的端口是port 5900+序列号。对于每一个启动的vncserver服务,端口号5900会自增1。

2)编辑 /etc/systemd/system/vncserver@:1.service,将USER替换为实际的用户名。保留文件的其余行不变。 -geometry参数指定要创建的VNC桌面的大小;默认情况下,它设置为1024x768。

~]# vim /etc/systemd/system/vncserver@:1.service

在redhat7.9之后,配置文件有所改变:

3)要使更改立即生效,请执行以下命令

~]# systemctl daemon-reload

4)为配置文件中定义的一个或多个用户设置密码。请注意,您需要先从root切换到USER。

~]# su - USER
~]$ vncpasswd
Password:
Verify:

5)设置开机启动图形界面

  • 查看当前开机启动模式
systemctl get-default
  • 设置开机启动图形界面
systemctl set-default graphical.target
  • 设置开机启动字符界面
systemctl set-default multi-user.target

3. 设置防火墙

我们需要配置防火墙来让 VNC 服务正常工作。

~]# firewall-cmd --permanent --add-service vnc-server
success
~]# firewall-cmd --reload
success

4. 启动与关闭VNC服务

4.1. 手动开启VNC

要启动或启用服务,请直接在命令中指定显示编号。上面在为单个用户配置VNC显示中配置的文件用作模板,其中%i由systemd替换为显示编号,使用有效的显示编号,执行以下命令:

~]# systemctl start vncserver@:display_number.service
或者:
~]# vncserver :1

您还可以使服务在系统启动时自动启动。然后,当您登录时,vncserver会自动启动。以root用户身份发出以下命令:

~]# systemctl enable vncserver@:display_number.service

4.2. 设置开机启动VNC

~]# systemctl enable vncserver@:1.service

4.3. 启动VNC

~]# systemctl start vncserver@:display_number.service

4.4. 查看VNC状态

~]# systemctl status vncserver@:1.service

4.5. 关闭VNC服务

两种关闭方法:

~]# systemctl stop vncserver@:display_number.service

或者在开启vncserver的用户下

~]# vncserver -kill :display_number

5. 客户端连接VNC

在Windows下,安装VNC Viewer,输入正确IP地址、窗口号和密码,即可远程。

这里输入1或者5901均可以。

6. 常见问题

1)连接VNC后出现蓝屏。

~]# yum groupinstall "GNOME Desktop Environment" (centos 5.x安装Gnome桌面环境)
~]# yum groupinstall "Desktop" "X Window System" (centos 6.x安装Gnome桌面环境)
~]# yum install -y gnome* (centos 7可用)

修改文件 /root/.vnc/xstartup

~]# cat /root/.vnc/xstartup

#!/bin/sh

unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
/etc/X11/xinit/xinitrc
# Assume either Gnome or KDE will be started by default when installed
# We want to kill the session automatically in this case when user logs out. In case you modify
# /etc/X11/xinit/Xclients or ~/.Xclients yourself to achieve a different result, then you should
# be responsible to modify below code to avoid that your session will be automatically killed
#if [ -e /usr/bin/gnome-session -o -e /usr/bin/startkde ]; then
    #vncserver -kill $DISPLAY
#fi
gnome-session &

同时 /root/.vnc/xstartup 脚本的执行权限必须是755.