vnc远程桌面_CentOS8如何开启VNC远程桌面?

近日服务器新安装CentOS8操作系统,安装有GNOME桌面。工作需要访问远程桌面,因此需要安装tigervnc-server支持。

安装tigervnc-server:

[root@server ~]# yum install tigervnc-server*Last metadata expiration check: 0:00:18 ago on Sun 06 Oct 2019 11:15:13 PM CST.Package tigervnc-server-minimal-1.9.0-9.el8.x86_64 is already installed.Dependencies resolved.=================================================================================================================================================================================================================== Package                                                    Arch                                  Version                                                           Repository                                Size===================================================================================================================================================================================================================Installing: tigervnc-server                                            x86_64                                1.9.0-9.el8                                                       AppStream                                252 k tigervnc-server-applet                                     noarch                                1.9.0-9.el8                                                       AppStream                                601 k tigervnc-server-module                                     x86_64                                1.9.0-9.el8                                                       AppStream                                252 kInstalling dependencies: copy-jdk-configs                                           noarch                                3.7-1.el8                                                         AppStream                                 27 k java-1.8.0-openjdk                                         x86_64                                1:1.8.0.222.b10-0.el8_0                                           AppStream                                297 k java-1.8.0-openjdk-headless                                x86_64                                1:1.8.0.222.b10-0.el8_0                                           AppStream                                 32 M javapackages-filesystem                                    noarch                                5.3.0-1.module_el8.0.0+11+5b8c10bd                                AppStream                                 30 k javapackages-tools                                         noarch                                5.3.0-1.module_el8.0.0+11+5b8c10bd                                AppStream                                 44 k ttmkfdir                                                   x86_64                                3.0.9-54.el8                                                      AppStream                                 62 k tzdata-java                                                noarch                                2019a-1.el8                                                       AppStream                                188 k xorg-x11-fonts-Type1                                       noarch                                7.5-19.el8                                                        AppStream                                522 k lksctp-tools                                               x86_64                                1.0.18-3.el8                                                      BaseOS                                   100 kEnabling module streams: javapackages-runtime                                                                             201801                                                                                                          Transaction Summary===================================================================================================================================================================================================================......Installed:  tigervnc-server-1.9.0-9.el8.x86_64                                        tigervnc-server-applet-1.9.0-9.el8.noarch                            tigervnc-server-module-1.9.0-9.el8.x86_64                           copy-jdk-configs-3.7-1.el8.noarch                                         java-1.8.0-openjdk-1:1.8.0.222.b10-0.el8_0.x86_64                    java-1.8.0-openjdk-headless-1:1.8.0.222.b10-0.el8_0.x86_64          javapackages-filesystem-5.3.0-1.module_el8.0.0+11+5b8c10bd.noarch         javapackages-tools-5.3.0-1.module_el8.0.0+11+5b8c10bd.noarch         ttmkfdir-3.0.9-54.el8.x86_64                                        tzdata-java-2019a-1.el8.noarch                                            xorg-x11-fonts-Type1-7.5-19.el8.noarch                               lksctp-tools-1.0.18-3.el8.x86_64Complete!

执行vncserver,启动VncServer。第一次启动要设置当前用户的密码,输入后,还要确认密码。确认后,会提示是否设置只读密码,这里不设置,避免意外。完整流程如下图所示。按上述流程执行成功后,会在用户的.vnc目录下创建启动脚本、配置、日志等文件。

默认是从1开始,如果要多个运行,则会递增。

[root@server ~]# vncserverYou will require a password to access your desktops.Password:Verify:Would you like to enter a view-only password (y/n)? nA view-only password is not usedxauth:  file /root/.Xauthority does not existNew 'server:1 (root)' desktop is server:1Creating default startup script /root/.vnc/xstartupCreating default config /root/.vnc/configStarting applications specified in /root/.vnc/xstartupLog file is /root/.vnc/server:1.log

查看.vnc目录文件:

[root@server ~]# ls -al /root/.vnc/total 24drwxr-xr-x.  2 root root   90 Oct  6 23:18 .dr-xr-x---. 17 root root 4096 Oct  6 23:18 ..-rw-r--r--.  1 root root  332 Oct  6 23:18 config-rw-------.  1 root root    8 Oct  6 23:18 passwd-rw-r--r--.  1 root root  616 Oct  6 23:18 server:1.log-rw-r--r--.  1 root root    6 Oct  6 23:18 server:1.pid-rwxr-xr-x.  1 root root  509 Oct  6 23:18 xstartup

查看开启了几个vncserver:

[root@server ~]# vncserver --listWARNING: The first attempt to start Xvnc failed, possibly because the fontcatalog is not properly configured.  Attempting to determine an appropriatefont path for this system and restart Xvnc using that font path ...Could not start Xvnc.......

如出现此信息,则需要安装字体:

[root@server ~]# yum install pixman pixman-devel libXfont2 Last metadata expiration check: 0:26:58 ago on Sun 06 Oct 2019 11:15:13 PM CST.Package pixman-0.36.0-1.el8.x86_64 is already installed.Package pixman-devel-0.36.0-1.el8.x86_64 is already installed.Package libXfont2-2.0.3-2.el8.x86_64 is already installed.Dependencies resolved.Nothing to do.Complete!

查看vnc进程(可以看到当前用户已经启用了vncserver,默认连接端口为5901。如要多个启用,端口也会递增。,需要注意。):

[root@server ~]# ps -ef | grep vncroot      8540     1  0 23:28 pts/0    00:00:02 /usr/bin/Xvnc :1 -auth /root/.Xauthority -desktop server:1 (root) -fp catalogue:/etc/X11/fontpath.d -geometry 1024x768 -httpd /usr/share/vnc/classes -pn -rfbauth /root/.vnc/passwd -rfbport 5901 -rfbwait 30000root      8559     1  0 23:29 pts/0    00:00:00 /bin/sh /root/.vnc/xstartuproot     18193  8206  0 23:39 pts/0    00:00:00 grep --color=auto vnc

注意:记得要开放5901端口,以便远程能够访问。

[root@server ~]# firewall-cmd --permanent --zone=public --add-port=5901/tcpsuccess[root@server ~]# firewall-cmd --reloadsuccess

服务器安装好之后。可把vncserver做成系统服务。

root@server ~]# touch /etc/systemd/system/vncserver@\:1.service

VIM编辑添加如下内容,并保存:

# The vncserver service unit file## Quick HowTo:# 1. Copy this file to /etc/systemd/system/vncserver@.service# 2. Replace  with the actual user name and edit vncserver#    parameters appropriately#    (ExecStart=/usr/sbin/runuser -l  -c "/usr/bin/vncserver %i"#     PIDFile=/home//.vnc/%H%i.pid)# 3. Run `systemctl daemon-reload`# 4. Run `systemctl enable vncserver@:.service`## DO NOT RUN THIS SERVICE if your local area network is# untrusted!  For a secure way of using VNC, you should# limit connections to the local host and then tunnel from# the machine you want to view VNC on (host A) to the machine# whose VNC output you want to view (host B)## [user@hostA ~]$ ssh -v -C -L 590N:localhost:590M hostB## this will open a connection on port 590N of your hostA to hostB's port 590M# (in fact, it ssh-connects to hostB and then connects to localhost (on hostB).# See the ssh man page for details on port forwarding)## You can then point a VNC client on hostA at vncdisplay N of localhost and with# the help of ssh, you end up seeing what hostB makes available on port 590M## Use "-nolisten tcp" to prevent X connections to your VNC server via TCP.## Use "-localhost" to prevent remote VNC clients connecting except when# doing so through a secure tunnel.  See the "-via" option in the# `man vncviewer' manual page.[Unit]Description=Remote desktop service (VNC)After=syslog.target network.target[Service]Type=forking# Clean any existing files in /tmp/.X11-unix environmentExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'ExecStart=/usr/sbin/runuser -l root -c "/usr/bin/vncserver %i"PIDFile=/root/.vnc/%H%i.pidExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'[Install]WantedBy=multi-user.target

开机自动启动服务:

[root@server ~]# systemctl enable vncserver@\:1.service Created symlink /etc/systemd/system/multi-user.target.wants/vncserver@:1.service → /etc/systemd/system/vncserver@:1.service.

启动服务:

[root@server ~]# systemctl start vncserver@\:1.service

查看状态:

[root@server ~]# systemctl status vncserver@:1.service● vncserver@:1.service - Remote desktop service (VNC)   Loaded: loaded (/etc/systemd/system/vncserver@:1.service; enabled; vendor preset: disabled)   Active: active (running) since Sun 2019-10-06 23:56:23 CST; 1min 23s ago Main PID: 8292 (Xvnc)    Tasks: 0 (limit: 26213)   Memory: 2.6M   CGroup: /system.slice/system-vncserver.slice/vncserver@:1.service           ‣ 8292 /usr/bin/Xvnc :1 -auth /root/.Xauthority -desktop server:1 (root) -fp catalogue:/etc/X11/fontpath.d -geometry 1024x768 -httpd /usr/share/vnc/classes -pn -rfbauth /root/.vnc/passwd -rfbport 590>Oct 06 23:56:20 server systemd[1]: Starting Remote desktop service (VNC)...Oct 06 23:56:23 server systemd[1]: Started Remote desktop service (VNC).

如查看状态出现此错误,与SeLinux有关,可配置或关闭SeLinux解决:

[root@server ~]# systemctl status vncserver@:1.service● vncserver@:1.service - Remote desktop service (VNC)   Loaded: loaded (/etc/systemd/system/vncserver@:1.service; disabled; vendor preset: disabled)   Active: failed (Result: protocol) since Sun 2019-10-06 23:53:04 CST; 17s ago  Process: 8378 ExecStart=/usr/sbin/runuser -l root -c /usr/bin/vncserver :1 (code=exited, status=0/SUCCESS)  Process: 8375 ExecStartPre=/bin/sh -c /usr/bin/vncserver -kill :1 > /dev/null 2>&1 || : (code=exited, status=0/SUCCESS)Oct 06 23:53:01 server systemd[1]: Starting Remote desktop service (VNC)...Oct 06 23:53:04 server systemd[1]: vncserver@:1.service: Can't convert PID files /root/.vnc/server:1.pid O_PATH file descriptor to proper file descriptor: Permission deniedOct 06 23:53:04 server systemd[1]: vncserver@:1.service: Can't convert PID files /root/.vnc/server:1.pid O_PATH file descriptor to proper file descriptor: Permission deniedOct 06 23:53:04 server systemd[1]: vncserver@:1.service: Failed with result 'protocol'.Oct 06 23:53:04 server systemd[1]: Failed to start Remote desktop service (VNC).

服务端到此配置完成。

在CentOS 客户端执行vncviewer,启动VNC客户端。(如有其他系统,也可以使用其他系统的VNC客户端)

接着会弹出个界面,输入服务端地址、端口。点击connect即可连接。

c0ecf2e7c976424f1c961347c6dd3c68.png

如地址和端口正确,会弹出输入密码的界面。输入服务器端密码,点击OK即可成功登录。

6a1b8756f230b9c11948f5407510f59e.png

如密码正确,将可看到远程服务端界面。接下来可进行服务器端的操作了。

84118bf830c9190660b3fa54e8a97058.png

本文只是描述在CentOS8.0系统的vnc服务端的安装和配置过程。此流程应当是兼容Redhat及其衍生的linux发行版的。此过程没有考虑一些异常安装情况和处理方法,后续整理后再描述。

注:本文为Toyo Lau原创,未经许可不得在任何平台转载,侵权必究。如需转载,可关注微信公众号:技术训练营,在后台留言,与作者联系,取得许可才能转载~

1423b77ddcd38c53f9a8a8bd5cd9f5a1.png

微信扫一扫,发现更精彩。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值