如何在 Centos 8 / RHEL 8 上安装和配置 VNC 服务器
| 2019-10-14 12:02 评论: 24 收藏: 4
VNC(虚拟网络计算)服务器是基于 GUI 的桌面共享平台,它可让你访问远程桌面计算机。在 Centos 8 和 RHEL 8 系统中,默认未安装 VNC 服务器,它需要手动安装。在本文中,我们将通过简单的分步指南,介绍如何在 Centos 8 / RHEL 8 上安装 VNC 服务器。
在 Centos 8 / RHEL 8 上安装 VNC 服务器的先决要求
要在你的系统中安装 VNC 服务器,请确保你的系统满足以下要求:
- CentOS 8 / RHEL 8
- GNOME 桌面环境
- root 用户权限
- DNF / YUM 软件包仓库
在 Centos 8 / RHEL 8 上安装 VNC 服务器的分步指导
步骤 1)安装 GNOME 桌面环境
在 CentOS 8 / RHEL 8 中安装 VNC 服务器之前,请确保已安装了桌面环境(DE)。如果已经安装了 GNOME 桌面或安装了 GUI 支持,那么可以跳过此步骤。
在 CentOS 8 / RHEL 8 中,GNOME 是默认的桌面环境。如果你的系统中没有它,请使用以下命令进行安装:
[root@linuxtechi ~]# dnf groupinstall "workstation"
或者
[root@linuxtechi ~]# dnf groupinstall "Server with GUI
成功安装上面的包后,请运行以下命令启用图形模式:
[root@linuxtechi ~]# systemctl set-default graphical
现在重启系统,进入 GNOME 登录页面(LCTT 译注:你可以通过切换运行态来进入图形界面)。
[root@linuxtechi ~]# reboot
重启后,请取消注释 /etc/gdm/custom.conf
中的 WaylandEnable=false
,以使通过 vnc 进行的远程桌面会话请求由 GNOME 桌面的 xorg 处理,来代替 Wayland 显示管理器。
注意: Wayland 是 GNOME 中的默认显示管理器 (GDM),并且未配置用于处理 X.org 等远程渲染的 API。
步骤 2)安装 VNC 服务器(tigervnc-server)
接下来,我们将安装 VNC 服务器,有很多 VNC 服务器可以选择,出于安装目的,我们将安装 TigerVNC 服务器
。它是最受欢迎的 VNC 服务器之一,并且高性能还独立于平台,它使用户可以轻松地与远程计算机进行交互。
现在,使用以下命令安装 TigerVNC 服务器:
[root@linuxtechi ~]# dnf install tigervnc-server tigervnc-server-module -y
步骤 3)为本地用户设置 VNC 密码
假设我们希望用户 pkumar
使用 VNC 进行远程桌面会话,然后切换到该用户并使用 vncpasswd
命令设置其密码,
[root@linuxtechi ~]# su - pkumar
[root@linuxtechi ~]$ vncpasswd
Password:
Verify:
Would you like to enter a view-only password (y/n)? n
A view-only password is not used
[root@linuxtechi ~]$
[root@linuxtechi ~]$ exit
logout
[root@linuxtechi ~]#
步骤 4)设置 VNC 服务器配置文件
下一步是配置 VNC 服务器配置文件。创建含以下内容的 /etc/systemd/system/vncserver@.service
,以便为上面的本地用户 pkumar
启动 tigervnc-server 的服务。
[root@linuxtechi ~]# vim /etc/systemd/system/vncserver@.service
[Unit]
Description=Remote Desktop VNC Service
After=syslog.target network.target
[Service]
Type=forking
WorkingDirectory=/home/pkumar
User=pkumar
Group=pkumar
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
保存并退出文件,
注意:替换上面文件中的用户名为你自己的。
默认情况下,VNC 服务器在 tcp 端口 5900+n 上监听,其中 n 是显示端口号,如果显示端口号为 “1”,那么 VNC 服务器将在 TCP 端口 5901 上监听其请求。
步骤 5)启动 VNC 服务并允许防火墙中的端口
我将显示端口号设置为 1,因此请使用以下命令在显示端口号 “1” 上启动并启用 vnc 服务,
[root@linuxtechi ~]# systemctl daemon-reload
[root@linuxtechi ~]# systemctl start vncserver@:1.service
[root@linuxtechi ~]# systemctl enable vncserver@:1.service
Created symlink /etc/systemd/system/multi-user.target.wants/vncserver@:1.service → /etc/systemd/system/vncserver@.service.
[root@linuxtechi ~]#
使用下面的 netstat
或 ss
命令来验证 VNC 服务器是否开始监听 5901 上的请求,
[root@linuxtechi ~]# netstat -tunlp | grep 5901
tcp 0 0 0.0.0.0:5901 0.0.0.0:* LISTEN 8169/Xvnc
tcp6 0 0 :::5901 :::* LISTEN 8169/Xvnc
[root@linuxtechi ~]# ss -tunlp | grep -i 5901
tcp LISTEN 0 5 0.0.0.0:5901 0.0.0.0:* users:(("Xvnc",pid=8169,fd=6))
tcp LISTEN 0 5 [::]:5901 [::]:* users:(("Xvnc",pid=8169,fd=7))
[root@linuxtechi ~]#
使用下面的 systemctl
命令验证 VNC 服务器的状态,
[root@linuxtechi ~]# systemctl status vncserver@:1.service
上面命令的输出确认在 tcp 端口 5901 上成功启动了 VNC。使用以下命令在系统防火墙中允许 VNC 服务器端口 “5901”,
[root@linuxtechi ~]# firewall-cmd --permanent --add-port=5901/tcp
success
[root@linuxtechi ~]# firewall-cmd --reload
success
[root@linuxtechi ~]#
步骤 6)连接到远程桌面会话
现在,我们已经准备就绪,可以查看远程桌面连接是否正常工作。要访问远程桌面,请在 Windows / Linux 工作站中启动 VNC Viewer,然后输入 VNC 服务器的 IP 地址和端口号,然后按回车。
接下来,它将询问你的 VNC 密码。输入你先前为本地用户创建的密码,然后单击 “OK” 继续。
现在你可以看到远程桌面,
就是这样,你已经在 Centos 8 / RHEL 8 中成功安装了 VNC 服务器。
总结
希望这篇在 Centos 8 / RHEL 8 上安装 VNC 服务器的分步指南为你提供了轻松设置 VNC 服务器并访问远程桌面的所有信息。请在下面的评论栏中提供你的意见和建议。下篇文章再见。谢谢再见!!!
via: https://www.linuxtechi.com/install-configure-vnc-server-centos8-rhel8/
作者:Pradeep Kumar 选题:lujun9972 译者:geekpi 校对:wxy
- 来自重庆的 Firefox 97.0|Windows 10 用户 2022-02-22 16:55 5 赞 回复
- 此种配置方法,针对普通用户用 systemd user unit 方式倒是推荐使用,但是直接配置成系统服务不建议如此使用。
- 来自重庆的 Firefox 97.0|Windows 10 用户 2022-02-22 16:48 7 赞 回复
-
1、这篇文章vnc在写systemd 服务单元配置时原理上有问题,vnc提供提供两种启动机制,一种是直接vncserver <:display> 一种是vncsession user <:display> ,前者是用于用户手动启动,后者用于服务方式启动。
2、vnc安装后已经生成了服务单元模板文件 xxx@.service . 路径为:/usr/lib/systemd/system/vncserver@.service ,可直接使用此文件或者拷贝此文件到 /etc/systemd/system/目录下进行自定义修改
3、man vncsession 可以查看用法和使用文档。
- [1]来自四川成都的 Chrome 78.0|Windows 10 用户 发表于 2020-08-18 11:12 的评论:VMware下黑屏的,我贡献一下我的配置解决了黑屏,直接服务器安装的,直接用lib的配置也不会黑屏。
------------------------------------------------------------------------
[Unit]
Description=Remote desktop service (VNC)
After=syslog.target network.target
[Service]
Type=forking
User=root
# Clean any existing files in /tmp/.X11-unix environment
ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
ExecStart=/sbin/runuser -l root -c "/usr/bin/vncserver %i"
PIDFile=/root/.vnc/%H%[2]来自四川成都的 Chrome 78.0|Windows 10 用户 发表于 2020-08-18 11:13 的评论:PIDFile=/root/.vnc/%H%i.pid
ExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
[Install]
WantedBy=multi-user.target[3]来自四川成都的 Chrome 78.0|Windows 10 用户 发表于 2020-08-18 11:16 的评论:另外上面作者的命令顺序反了,折腾半天。应该是先启用,再启动。。。
systemctl enable vncserver@:1.service
systemctl start vncserver@:1.service - 来自福建龙岩的 Chrome 90.0|Windows 10 用户 2021-05-20 18:55 6 赞 回复
- 这两条命令顺序无所谓的吧
- [1]来自福建龙岩的 Chrome 90.0|Windows 10 用户 发表于 2021-05-20 18:53 的评论:# systemctl status vncserver@:1.service
● vncserver@:1.service - Remote Desktop VNC Service
Loaded: loaded (/etc/systemd/system/vncserver@.service; enabled; vendor preset: disabled)
Active: inactive (dead) since Thu 2021-05-20 18:51:18 CST; 6s ago
Process: 37048 ExecStop=/usr/bin/vncserver -kill :1 (code=exited, status=0/SUCCESS)
Process: 37046 ExecStart=/usr/bin/vncserver -autokill :1 (code=exited, status=0/SUCCESS)
Process: 37043 ExecStartPre=/bin/sh -c /usr/bin/vncserver -kill :1 - 来自福建龙岩的 Chrome 90.0|Windows 10 用户 2021-05-20 18:54 5 赞 回复
-
Process: 37043 ExecStartPre=/bin/sh -c /usr/bin/vncserver -kill :1 > /dev/null 2>&1 || : (code=exited, status=0/SUCCESS)
5月 20 18:51:18 systemd[1]: Starting Remote Desktop VNC Service...
5月 20 18:51:18 systemd[1]: vncserver@:1.service: Succeeded.
5月 20 18:51:18 systemd[1]: Started Remote Desktop VNC Service.
服务起不来,不知道什么原因
- [1]来自四川成都的 Chrome 78.0|Windows 10 用户 发表于 2020-08-18 11:12 的评论:VMware下黑屏的,我贡献一下我的配置解决了黑屏,直接服务器安装的,直接用lib的配置也不会黑屏。
------------------------------------------------------------------------
[Unit]
Description=Remote desktop service (VNC)
After=syslog.target network.target
[Service]
Type=forking
User=root
# Clean any existing files in /tmp/.X11-unix environment
ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
ExecStart=/sbin/runuser -l root -c "/usr/bin/vncserver %i"
PIDFile=/root/.vnc/%H%[2]来自四川成都的 Chrome 78.0|Windows 10 用户 发表于 2020-08-18 11:13 的评论:PIDFile=/root/.vnc/%H%i.pid
ExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
[Install]
WantedBy=multi-user.target[3]来自四川成都的 Chrome 78.0|Windows 10 用户 发表于 2020-08-18 11:16 的评论:另外上面作者的命令顺序反了,折腾半天。应该是先启用,再启动。。。
systemctl enable vncserver@:1.service
systemctl start vncserver@:1.service - 来自浙江宁波的 Firefox 87.0|Windows 10 用户 2021-04-19 15:25 5 赞 回复
-
enable 表示设置开机自启动
start 表示开启服务
所以你说的"启用"是错误的...
- [1]来自四川成都的 Chrome 78.0|Windows 10 用户 发表于 2020-08-18 11:12 的评论:VMware下黑屏的,我贡献一下我的配置解决了黑屏,直接服务器安装的,直接用lib的配置也不会黑屏。
------------------------------------------------------------------------
[Unit]
Description=Remote desktop service (VNC)
After=syslog.target network.target
[Service]
Type=forking
User=root
# Clean any existing files in /tmp/.X11-unix environment
ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
ExecStart=/sbin/runuser -l root -c "/usr/bin/vncserver %i"
PIDFile=/root/.vnc/%H%[2]来自四川成都的 Chrome 78.0|Windows 10 用户 发表于 2020-08-18 11:13 的评论:PIDFile=/root/.vnc/%H%i.pid
ExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
[Install]
WantedBy=multi-user.target[3]来自四川成都的 Chrome 78.0|Windows 10 用户 发表于 2020-08-18 11:16 的评论:另外上面作者的命令顺序反了,折腾半天。应该是先启用,再启动。。。
systemctl enable vncserver@:1.service
systemctl start vncserver@:1.service - 来自江苏无锡的 Chrome 86.0|Windows 10 用户 2020-11-15 11:31 3 赞 回复
- 你好,我按照你的方法能解决黑屏问题了,但是又遇到了终端打开不了的问题,vnc连接的activities下面点击terminal无效果,但是终端实际在vmware里面被打开了,不知道是怎么回事
- [1]来自四川成都的 Chrome 78.0|Windows 10 用户 发表于 2020-08-18 11:12 的评论:VMware下黑屏的,我贡献一下我的配置解决了黑屏,直接服务器安装的,直接用lib的配置也不会黑屏。
------------------------------------------------------------------------
[Unit]
Description=Remote desktop service (VNC)
After=syslog.target network.target
[Service]
Type=forking
User=root
# Clean any existing files in /tmp/.X11-unix environment
ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
ExecStart=/sbin/runuser -l root -c "/usr/bin/vncserver %i"
PIDFile=/root/.vnc/%H%[2]来自四川成都的 Chrome 78.0|Windows 10 用户 发表于 2020-08-18 11:13 的评论:PIDFile=/root/.vnc/%H%i.pid
ExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
[Install]
WantedBy=multi-user.target[3]来自四川成都的 Chrome 78.0|Windows 10 用户 发表于 2020-08-18 11:16 的评论:另外上面作者的命令顺序反了,折腾半天。应该是先启用,再启动。。。
systemctl enable vncserver@:1.service
systemctl start vncserver@:1.service - 来自四川成都的 Chrome 78.0|Windows 10 用户 2020-08-18 11:16 4 赞 回复
- by ayurep
- [1]来自上海的 Chrome 69.0|Windows 7 用户 发表于 2020-01-02 10:11 的评论:在执行systemctl start vncserver@:1.service命令之后,提示出错,用systemctl status vncserver@:1.service查看后提示:
● vncserver@:1.service - Remote Desktop VNC Service
Loaded: loaded (/etc/systemd/system/vncserver@.service; enabled; vendor preset: disabled)
Active: failed (Result: exit-code) since Thu 2020-01-02 10:05:37 CST; 7s ago
Process: 108612 ExecStartPre=/bin/sh -c /usr/bin/vncserver -kill :1 > /dev/null 2>&1 || : (code=exited, status=200/CHDIR)
1月 02 10:05:37 centos8 systemd[1]: - 来自西藏的 Chrome 58.0|GNU/Linux 用户 2020-03-17 15:45 119 赞 回复
- 用户下直接运行vncserver :1 -xstartup ~/.vnc/xstartup,可以进到桌面。
- [1]来自西藏的 Chrome Mobile 58.0|Android 5.1 用户 发表于 2020-03-17 15:34 的评论:黑屏
```
-- Unit vncserver@:1.service has finished shutting down.
Mar 17 14:51:45 octave.sh su[14532]: (to vnc_user) root on pts/0
Mar 17 14:51:45 octave.sh su[14532]: pam_systemd(su-l:session): Cannot create session: Already running in a session or user slice
Mar 17 14:51:45 octave.sh su[14532]: pam_unix(su-l:session): session opened for user vnc_user by root(uid=0)
Mar 17 14:52:11 octave.sh polkitd[753]: Registered Authentication Agent for unix-process:14567:1448779 (system bus name :1.2191 [/[2]来自西藏的 Chrome Mobile 58.0|Android 5.1 用户 发表于 2020-03-17 15:36 的评论:[14532]: pam_systemd(su-l:session): Cannot create session: Already running in a session or user slice
Mar 17 14:51:45 octave.sh su[14532]: pam_unix(su-l:session): session opened for user vnc_user by root(uid=0)
Mar 17 14:52:11 octave.sh polkitd[753]: Registered Authentication Agent for unix-process:14567:1448779 (system bus name :1.2191 [/usr/bin/pkttyagent --notify-fd 5 --fallback], object path /org/freedesktop/PolicyKit1/AuthenticationAgent, locale zh_CN.UTF-8)
Mar 17 14:52:36 octave.sh polkit - 来自西藏的 Chrome 58.0|GNU/Linux 用户 2020-03-17 15:41 5 赞 回复
-
session opened for user vnc_user by root(uid=0)
Mar 17 14:52:11 octave.sh polkitd[753]: Registered Authentication Agent for unix-process:14567:1448779 (system bus name :1.2191 [/usr/bin/pkttyagent --notify-fd 5 --fallback], object path /org/freedesktop/PolicyKit1/AuthenticationAgent, locale zh_CN.UTF-8)
Mar 17 14:52:36 octave.sh polkit-agent-helper-1[14585]: pam_unix(polkit-1:auth): authentication failure; logname= uid=1000 euid=0 tty= ruser=root rhost= user=root
Mar 17 14:52:36 octave.sh polki
- [1]来自上海的 Chrome 69.0|Windows 7 用户 发表于 2020-01-02 10:11 的评论:在执行systemctl start vncserver@:1.service命令之后,提示出错,用systemctl status vncserver@:1.service查看后提示:
● vncserver@:1.service - Remote Desktop VNC Service
Loaded: loaded (/etc/systemd/system/vncserver@.service; enabled; vendor preset: disabled)
Active: failed (Result: exit-code) since Thu 2020-01-02 10:05:37 CST; 7s ago
Process: 108612 ExecStartPre=/bin/sh -c /usr/bin/vncserver -kill :1 > /dev/null 2>&1 || : (code=exited, status=200/CHDIR)
1月 02 10:05:37 centos8 systemd[1]: - 来自湖北的 Chrome 80.0|Windows 10 用户 2020-03-08 23:47 5 赞 回复
- 换个端口试一试。vncserver@2.service
- [1]来自上海的 Chrome 69.0|Windows 7 用户 发表于 2020-01-02 10:11 的评论:在执行systemctl start vncserver@:1.service命令之后,提示出错,用systemctl status vncserver@:1.service查看后提示:
● vncserver@:1.service - Remote Desktop VNC Service
Loaded: loaded (/etc/systemd/system/vncserver@.service; enabled; vendor preset: disabled)
Active: failed (Result: exit-code) since Thu 2020-01-02 10:05:37 CST; 7s ago
Process: 108612 ExecStartPre=/bin/sh -c /usr/bin/vncserver -kill :1 > /dev/null 2>&1 || : (code=exited, status=200/CHDIR)
1月 02 10:05:37 centos8 systemd[1]: - 来自河北唐山的 Firefox 68.0|Windows 10 用户 2020-02-04 12:55 6 赞 回复
- 不要用Root帐户