VNC多用户远程桌面

简介

VNC (Virtual Network Console)是虚拟网络控制台的缩写。它 是一款优秀的远程控制工具软件,由著名的 AT&T 的欧洲研究实验室开发的。VNC 是在基于 UNIX 和 Linux 操作系统的免费的开源软件,远程控制能力强大,高效实用,其性能可以和 Windows 和 MAC 中的任何远程控制软件媲美。

推荐

推荐一款绿色、安全的服务器管理工具

iis7服务器管理工具:一款Windows系统、Linux系统、VPS服务器批量管理工具

当前可批量管理的为:
1、win系列的操作系统(含VPS、VM)
2、linux操作系统:CentOS、Ubuntu、Debian等,支持命令及可视化SFTP管理
3、linux的vnc、win的vnc
4、FTP,webshell

链接地址:http://yczm.iis7.com/?tscc

在这里插入图片描述

需求

一般来说我自己CentOS的过程中很少有说一定要用到图形界面的,然后这几天突然有人让我帮忙解决一下这个问题,需求如下:

  • 远程桌面,多个用户操作互不干扰
  • 多个用户通过多个端口连接

具体实现

第一步:安装桌面环境
yum groupinstall "GNOME Desktop" "Graphical Administration Tools"  -y

报错,内容如下

Transaction check error:
  file /boot/efi/EFI/centos from install of fwupdate-efi-12-5.el7.centos.x86_64 conflicts with file from package grub2-common-1:2.02-0.64.el7.centos.noarch

Error Summary
-------------

解决方法:

yum install grub2-common  fwupdate-efi -y

然后再次执行

yum groupinstall "GNOME Desktop" "Graphical Administration Tools"  -y

重启

reboot

遇到下面界面
在这里插入图片描述
按顺序执行下列操作
1->2->q->yes

第二步:安装vnc
yum -y install vnc
第三步:创建要使用vnc的用户
useradd test1 
useradd test2

然后切换到test1和test2用户下执行设置密码

vncpasswd

在这里插入图片描述

第四步:创建对应的配置文件

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

cp /lib/systemd/system/vncserver@.service  /etc/systemd/system/vncserver@:1.service
cp /lib/systemd/system/vncserver@.service  /etc/systemd/system/vncserver@:2.service

模版文件为

[root@localhost ~]# grep -vE "^$|^^#" /lib/systemd/system/vncserver@.service
[Unit]
Description=Remote desktop service (VNC)
After=syslog.target network.target
[Service]
Type=forking
ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
ExecStart=/usr/sbin/runuser -l <USER> -c "/usr/bin/vncserver %i"
PIDFile=/home/<USER>/.vnc/%H%i.pid
ExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
[Install]
WantedBy=multi-user.target

修改方式将<USER>替换为用户名
例如:test1用户使用5901窗口

[root@localhost ~]# grep -vE "^$|^^#" /etc/systemd/system/vncserver@:1.service
[Unit]
Description=Remote desktop service (VNC)
After=syslog.target network.target
[Service]
Type=forking
ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
ExecStart=/usr/sbin/runuser -l test1 -c "/usr/bin/vncserver %i"
PIDFile=/home/test1/.vnc/%H%i.pid
ExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
[Install]
WantedBy=multi-user.target

例如:test2用户使用5902窗口

[root@localhost ~]# grep -vE "^$|^^#" /etc/systemd/system/vncserver@:2.service
[Unit]
Description=Remote desktop service (VNC)
After=syslog.target network.target
[Service]
Type=forking
ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
ExecStart=/usr/sbin/runuser -l test2 -c "/usr/bin/vncserver %i"
PIDFile=/home/test2/.vnc/%H%i.pid
ExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
[Install]
WantedBy=multi-user.target
第五步:启动服务
systemctl daemon-reload
systemctl start vncserver@:1
systemctl start vncserver@:2

查看一下端口启动了没

ss -nlt 

在这里插入图片描述

第六步:连接

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

这里的密码不是用户的密码 是vncpasswd设置的密码

在这里插入图片描述
可以看到这test1和test2用户用了不同的端口登陆 而且做到了互不干扰。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值
>