VNC需要系统安装的有桌面,如果是生产环境服务器,安装时使用的最小化安装,那么进行下面操作安装GNOME 桌面。

# 列出的组列表里有GNOME Desktop。
yum grouplist
#安装 GNOME 桌面
yum groupinstall -y "GNOME Desktop"
# 安装完成后,修改默认启动方式为图形化界面
systemctl set-default graphical.target //设置成图形模式
# 如果要换回来
systemctl set-default multi-user.target //设置成命令模式
#然后重启系统即可
#或者startx开启图形界面。第一次启动可能时间会长一点,耐心等待即可。

第一步:安装VNC服务软件,使用root用户执行以下命令(以下操作没有特别说明均在root用户):

yum -y install gnome-classic-session gnome-terminal nautilus-open-terminal control-center liberation-mono-fonts
yum -y install tigervnc-server -y

安装后可以使用如下命令来验证是否安装成功:

rpm -qa|grep tigervnc-server

第二步:复制vnc的启动操作脚本, vncserver@:1.service中的:1表示"桌面号",启动的端口号就是5900+桌面号,即是5901,如果再有一个就是2啦,端口号加1就是5902,以此类推:

如果开启一个桌面,那就是vncserver@:1.service,使用的端口号是5900+1=5901,若是开启第二个桌面,那就是vncserver@:2.service,使用的端口号是5900+1=5902

# 复制一个服务设置的模板
cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:1.service

第三步:编辑 /etc/systemd/system/vncserver@:1.service

vim /etc/systemd/system/vncserver@:1.service

# 找到其中的<USER> ,修改成自己的用户名,如果是root用户登录桌面就使用root用户,如果使用普通用户登录桌面使用普通用户 (这里的用户是系统中事先存在的用户)

# 修改此服务配置
# 以下为root用户的配置,每一个用户,都需要单独设置一个监听服务。且配置不同 [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 root %i
ExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :' [Install]
WantedBy=multi-user.target ---------------------------------------------------------------------------------------------------------- # 对于普通用户,加入用户名为:amos
# 下面举例进行设置: 首先一样复制一个server配置。改名为vncserver@:2.service
cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:2.service
# 然后进行修改
vim /etc/systemd/system/vncserver@:2.service [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 amos %i
ExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :' [Install]
WantedBy=multi-user.target 修改完毕后保存退出vim。

第四步:设置vnc密码,输入两次密码,输入完成后会提示是否设置view-only password(“View-only password”密码,只允许查看,无控制权限。)这个可设可不设:

设置vnc密码,vnc的密码跟系统的用户密码不一样,是使用vnc viewer登陆时需要使用的密码。上述配置文件用的是哪个用户就需要在哪个用户下执行这个设置密码的操作

若是配置设置的是root用户,那就在root用户下设置这个密码,若是普通用户amos,那就先切换到amos用户下,然后再设置这个密码

[root@localhost ~]# vncpasswd
Password:
Verify:
Would you like to enter a view-only password (y/n)? n
A view-only password is not used
# 这里不添加只读账号密码
# 每个不用的系统用户,设置密码时,需要切换到该用户下,执行此命令
# 如:su amos 切换到amos用户再执行上vncpasswd设置密码

第五步:启动服务:

systemctl daemon-reload
systemctl start vncserver@:1.service
systemctl enable vncserver@:1.service

第六步:查看端口是否监听:

netstat -lnpt|grep Xvnc

第七步:开放防火墙的5901端口:

# 根据监听的端口,进行端口开放,每个用户会对应一个端口,第一个用户默认为5901端口。我这里是root用户
firewall-cmd --zone=public --add-port=5901/tcp --permanent
firewall-cmd --reload # 如果防火墙没有启动需要先启动防火墙。
# 或者直接停止防火墙:systemctl stop firewalld.service && systemctl disable firewalld.service

第八步:关闭SELinux,编辑/etc/selinux/config 文件:

vim /etc/selinux/config
将selinux设置为disabled

到这里vnc服务已经安装完毕,下面就可使用vnc客户端来连接。

去vnc官网下载vnc viewer,用于连接vnc server ,本身是开源的,放心使用。

官方下载地址:https://www.realvnc.com/en/connect/download/viewer/

根据自己的电脑的操作系统选择进行下载,我这里是windows,所以选择windwos 64位版。下载后安装使用。

第九步:在vnc客户端(vnc viewer)输入服务器IP:桌面号(如110.16.16.2:5901),输入后回车:



第十步:输入IP后会弹出确认,点击contiue即可:

第十一步:输入vnc密码:

第十二步:登录成功,输入远程机器密码(登录成功后需要输入远程机器的用户的密码,如果没有密码就可以直接进入系统):

第十三步:成功进入远程桌面:

至此整个CentOS7.x 的VNC服务安装完毕.

小贴士:vnc服务只能在局域网使用,如果在外网,则需要有公网IP地址,VNC不具备内网穿透功能。

启动错误

[root@localhost ~]# 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: failed (Result: exit-code) since 四 2021-11-11 14:06:30 CST; 6s ago
Process: 3828 ExecStart=/usr/bin/vncserver_wrapper root %i (code=exited, status=2)
Process: 3822 ExecStartPre=/bin/sh -c /usr/bin/vncserver -kill %i > /dev/null 2>&1 || : (code=exited, status=0/SUCCESS)
Main PID: 3828 (code=exited, status=2) 11月 11 14:06:29 localhost.localdomain systemd[1]: Starting Remote desktop service (VNC)...
11月 11 14:06:29 localhost.localdomain systemd[1]: Started Remote desktop service (VNC).
11月 11 14:06:30 localhost.localdomain vncserver_wrapper[3828]: Warning: localhost.localdomain:1 is taken because of /tmp/....x/X1
11月 11 14:06:30 localhost.localdomain vncserver_wrapper[3828]: Remove this file if there is no X server localhost.localdomain:1
11月 11 14:06:30 localhost.localdomain vncserver_wrapper[3828]: A VNC server is already running as :1
11月 11 14:06:30 localhost.localdomain vncserver_wrapper[3828]: FATAL: 'runuser -l root' failed!
11月 11 14:06:30 localhost.localdomain systemd[1]: vncserver@:1.service: main process exited, code=exited, status=2/INVALI...UMENT
11月 11 14:06:30 localhost.localdomain systemd[1]: Unit vncserver@:1.service entered failed state.
11月 11 14:06:30 localhost.localdomain systemd[1]: vncserver@:1.service failed.
Hint: Some lines were ellipsized, use -l to show in full.

解决办法

# cd /tmp/.X11-unix/
删除里面的文件 [root@localhost tmp]# cd .X11-unix
[root@localhost .X11-unix]# ll
总用量 0
srwxrwxrwx 1 root root 0 11月 11 13:44 X0
srwxrwxrwx 1 root root 0 11月 11 13:12 X1
[root@localhost .X11-unix]# rm -rf X0
[root@localhost .X11-unix]# rm -rf X1
[root@localhost .X11-unix]# systemctl start vncserver@:1.service
[root@localhost .X11-unix]# 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 四 2021-11-11 14:07:12 CST; 4s ago
Process: 3905 ExecStartPre=/bin/sh -c /usr/bin/vncserver -kill %i > /dev/null 2>&1 || : (code=exited, status=0/SUCCESS)
Main PID: 3911 (vncserver_wrapp)
CGroup: /system.slice/system-vncserver.slice/vncserver@:1.service
├─3911 /bin/sh /usr/bin/vncserver_wrapper root :1
└─4113 sleep 0.1 11月 11 14:07:12 localhost.localdomain systemd[1]: Starting Remote desktop service (VNC)...
11月 11 14:07:12 localhost.localdomain systemd[1]: Started Remote desktop service (VNC).
11月 11 14:07:15 localhost.localdomain vncserver_wrapper[3911]: New 'localhost.localdomain:1 (root)' desktop is localhost.l...in:1
11月 11 14:07:15 localhost.localdomain vncserver_wrapper[3911]: Starting applications specified in /root/.vnc/xstartup
11月 11 14:07:15 localhost.localdomain vncserver_wrapper[3911]: Log file is /root/.vnc/localhost.localdomain:1.log
Hint: Some lines were ellipsized, use -l to show in full.

CentOS7.x安装VNC的更多相关文章

  1. centos7下安装vnc更改vnc默认端口号

    应用场景:某些情景下,需要用的linux的桌面环境,Ubuntu的桌面性能在linux发行版中算是数一数二的,如果不熟悉Debian系统,Centos/RHEL系列也行:   我这里的场景是开发人员不 ...

  2. 【VNCserver】Centos7.4安装VNC连接华为云或亚马逊云

    1.1 文档背景 CentOS 7 / RHEL 7部署图形化界面 安装VNCserver实现linux系统云主机桌面化,通过普通用户实现桌面化操作 2.  Vncserver服务端部署 2.1 安装 ...

  3. CentOS7 安装VNC

    系统环境:CentOS Linux release 7.6.1810Kernel:3.10.0-957.el7.x86_64系统现状:最小化安装,没有安装任何图形支持软件 安装图形化支持 不建议安装G ...

  4. CentOS7.x下安装VNC

    1.检查是否安装VNC rpm -q tigervnc tigervnc-server 2.安装X-Window yum check-update yum groupinstall "X W ...

  5. centos7 安装vnc服务

    一,安装服务器端 1,添加用户: # useradd vnc # passwd vnc 2,安装gnome桌面 # yum groupinstall "GNOME Desktop" ...

  6. centos7 安装vnc远程服务

    避免一些系统方面的意外错误,最好更新yum到最新,生产环境有业务在运行不建议更新 yum update 安装GNOME Desktop图形桌面服务 yum groupinstall "GNO ...

  7. CenOS7.1安装VNC——让win7远程桌面linux

    参考:http://wic.xingning.gov.cn/blog/29 https://linux.cn/article-5335-1.html 1.检查是否安装VNC, rpm -q tiger ...

  8. centos7远程安装oracle11g R2详细教程-解决一切问题

    相关链接与资源: sqldevelper(各种操作系统的oracle客户端) http://www.oracle.com/technetwork/cn/developer-tools/sql-deve ...

  9. Linux工作环境:CentOS7最小安装+Xfce桌面环境

    ref: https://blog.csdn.net/smstong/article/details/44802989 3.1 执行CentOS7 最小安装去官网下载CentOS-7.0-1406-x ...

随机推荐

  1. Pytorch分布式训练

    用单机单卡训练模型的时代已经过去,单机多卡已经成为主流配置.如何最大化发挥多卡的作用呢?本文介绍Pytorch中的DistributedDataParallel方法. 1. DataParallel ...

  2. 4-6 Mabatis 框架

    Mabatis 框架 Ⅰ.关于Mabatis 对数据库中的数据进行访问的框架 数据库执行过程: 连接数据库-->准备好SQL-->发送SQL语句-->执行语句-->获取结果-- ...

  3. Solution -「Hdu3037」Saving Beans

    Prob. 给定 \(m\) 个相同球,\(n\) 个不同的盒子. 求在这 \(n\) 个盒子中放不超过 \(m\) 个球的方案数,并对 \(p\) 取模. 其中 \(1 \leq n, m \leq ...

  4. mysql5.7通过文件zip方式安装-九五小庞

    为什么通过zip的方式进行安装 电脑上已安装过mysql数据库,想要再安装一个. 1.下载mysql安装包 直接找到mysql官网,在官网上下载zip安装包. https://downloads.my ...

  5. 一文搞定Vue2组件通信

    vue 组件通信方式 父组件将自己的状态分享给子组件使用: 方法:父组件通过子标签传递数据,子组件通过 props 接收 子组件改变父组件的状态; 方法:父组件在子标签上通过@abc 提供一个改变自身 ...

  6. css基础06

    精灵图就是只要导入一张照片(这张照片里面有很多很多的小图标和照片),然后通过background-position来移动位置,使网页显示出对应图片或者图标.一般都是负值. 下载然后导入项目里. 不同浏 ...

  7. 【cartographer ros】十: 延时和误差分析

    上一节介绍了在cartographer进行建图和定位(在线和离线). 本节将分析cartographer运行时的误差与延迟,主要是在线定位时的,并尝试优化解决. 目录 1,误差分析 a,硬件精度 b, ...

  8. vue2与vue3实现响应式的原理区别和提升

    区别: vue2.x: 实现原理: 对象类型:Object.defineProperty()对属性的读取,修改进行拦截(数据劫持): 数组类型:通过重写更新数组的一系列方法来进行拦截(对数组的变更方法 ...

  9. win10下计算文件哈希值的方法

    cmd下使用certutil命令 使用方法: certutil -hashfile FILE_NAME ALGORITHM_NAME 支持的加密算法包括:MD2,MD4,MD5,SHA1,SHA256 ...

  10. 搞定面试官 - MySQL 中你知道如何计算一个索引的长度嘛?

    大家好,我是程序员啊粥. 今天给大家分享一个我遇到过的比较少见的面试题,那就是 MySQL 中如何计算一个索引的长度. 说实话,我第一次遇到这个问题的时候想当然的以为索引长度就是我们建表时定义的字段长 ...