参考
主要参考:How to Install and Configure VNC Server on CentOS 8
CentOS8安装VNCServer
安装前说明
vnc在root用户,或者具有sudo权限的用户下面安装
vnc可以指定登录用户,也可以使用已有的用户,下面的部分步骤可以跳过
vnc登录需要输入2次密码:一次vnc密码,一次是系统用户(vncserver开启的用户)密码
安装VNC过程
SELINUX关闭
进入vncserver运行用户,此处我选择的是root
编辑/etc/sysconfig/selinux文件
将
SELINUX=enforcing
修改为:
SELINUX=enforcing
保存退出。
安装桌面环境
该服务可以解决登录vnc黑屏的问题
# yum install gnome*
安装 VNC Server
dnf install tigervnc-server tigervnc-server-module -y
Create New User and Set VNC Password
vncuser和对应的密码根据需求修改
# useradd vncuser
设置vncuser用户密码,建议与下面vncpasswd一致,方便记忆
# passwd vncuser
进入vncuser用户
# su - vncuser
设置vnc连接时密码
# vncpasswd
Password:
Verify:
Would you like to enter a view-only password (y/n)? n
A view-only password is not used
初始化~/.vnc目录下面的log、pid、xstartup文件等
# vncserver
退出vncuser用户,进入到root
# exit
Create Systemd Service File for VNC
(1). 创建vi /etc/systemd/system/vncserver@.service文件
(2). 填写文件内容。以下是2种配置方法,选择其中一种进行设置
注意,其中的`vncuser`需要替换为上述步骤4创建的用户名称。
- forking方式
```
[Unit]
Description=Remote Desktop VNC Service
After=syslog.target network.target
[Service]
Type=forking
WorkingDirectory=/home/vncuser
User=vncuser
Group=vncuser
ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
ExecStart=/usr/bin/vncserver -autokill %i
ExecStop=/usr/bin/vncserver -kill %i
[Install]
WantedBy=multi-user.target
```
- simple方式
```
[Unit]
Description=Remote desktop service (VNC)
After=syslog.target network.target
[Service]
Type=simple
# Clean any existing files in /tmp/.X11-unix environment
ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
ExecStart=/usr/bin/vncserver_wrapper vncuser %i
ExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
[Install]
WantedBy=multi-user.target
```
保存退出。
reload the systemd daemon
# systemctl daemon-reload
启动vncserver服务,并设置为开机启动
// 启动服务
# systemctl start vncserver@:1.service
// 开机启动
# systemctl enable vncserver@:1.service
// 查看状态
# systemctl status vncserver@:1.service
// 查看端口
# netstat -tunlp | grep 5901
配置防火墙,开放端口,不然vnc viewer无法连接
配置开放5901端口
# firewall-cmd --permanent --zone=public --add-port=5901/tcp
重启防火墙
# firewall-cmd --reload
通过VNC Viewer连接
填写连接地址
连接成功常用命令
停止vnc
# systemctl stop vncserver@:1.service
重启vnc
# systemctl restart vncserver@:1.service