Linux配置VNC实现远程控制,提高运维效率

VNC介绍

1.1 VNC简介

VNC (Virtual Network Console)是虚拟网络控制台的缩写。它 是一款优秀的远程控制工具软件,可以实现远程控制计算机的功能。

1.2 VNC组成

VNC基本上是由两部分组成,在任何安装了客户端的应用程序(vncviewer)的计算机都能十分方便地与安装了服务器端的应用程序(vncserver)的计算机相互连接。

客户端的应用程序vncviewer
服务器端的应用程序vncserver

1.3 常见的VNC工具

RealVNC:是一款功能强大的VNC工具,支持多种操作系统,包括Windows、Linux、Mac OS X等,具有高安全性和可靠性。
UltraVNC:是一款免费的VNC客户端和服务器软件,支持Windows操作系统,提供了远程桌面、文件传输、文本聊天等功能。
TightVNC:是一个小巧而强大的VNC工具,支持Windows、Linux以及Unix等多种操作系统,具有较高的安全性和性能。
TigerVNC:是一个开源的VNC工具,支持Windows、Linux以及Mac OS X等多种操作系统,具有稳定性和高性能。
TeamViewer:是一款针对远程支持、远程控制和在线协作的应用软件,可以实现桌面共享、远程协助、文件传输等功能。

本地环境介绍

本次实践为个人测试环境,服务器操作系统版本为Rocky Linux 8.9,客户端主机使用Windows10操作系统

角色
主机名
主机IP
操作系统版本
内核版本
vncserver
localhost
192.168.3.168
Rocky Linux 8.9 (Green Obsidian)
4.18.0-513.5.1.el8_9.x86_64
vncviewer
N/A
192.168.3.35
Windows 10 Pro
N/A

安装vncserver

3.1 使用yum源安装tigervnc-server包

dnf -y install tigervnc-server

3.2 检查vncserver安装状态
[root@localhost ~]# rpm -qa | grep tigervnc
tigervnc-license-1.13.1-2.el8.noarch
tigervnc-server-1.13.1-2.el8.x86_64
tigervnc-server-minimal-1.13.1-2.el8.x86_64
tigervnc-selinux-1.13.1-2.el8.noarch

创建VNC用户

4.1 分别创建vncuser01、vncuser02用户,并设置密码
[root@localhost ~]# useradd vncuser01
[root@localhost ~]# useradd vncuser02
[root@localhost ~]# echo 123 | passwd --stdin vncuser01 # 设置密码为123
Changing password for user vncuser01.
passwd: all authentication tokens updated successfully.
[root@localhost ~]# echo 123 | passwd --stdin vncuser02 # 设置密码为123
Changing password for user vncuser02.
passwd: all authentication tokens updated successfully.

配置vncserver服务

5.1 切换到vncuser01用户,启动vncserver服务,设置vnc连接密码
[root@localhost ~]# su - vncuser01
[vncuser01@localhost ~]$ vncserver

WARNING: vncserver has been replaced by a systemd unit and is now considered deprecated and removed in upstream.
Please read /usr/share/doc/tigervnc/HOWTO.md for more information.

You will require a password to access your desktops.

Password:
Password must be at least 6 characters - try again # 密码长度至少6位
Password: # 设置密码为123456
Verify: # 再次输入密码
Would you like to enter a view-only password (y/n)? n # 询问你是否要再输入一个只有观看权限而被禁止操作的远程桌面的密码
A view-only password is not used
xauth: file /home/vncuser01/.Xauthority does not exist

New ‘localhost.localdomain:1 (vncuser01)’ desktop is localhost.localdomain:1

Creating default startup script /home/vncuser01/.vnc/xstartup
Creating default config /home/vncuser01/.vnc/config
Starting applications specified in /home/vncuser01/.vnc/xstartup
Log file is /home/vncuser01/.vnc/localhost.localdomain:1.log

5.2 切换到vncuser02用户,启动vncserver服务,设置vnc连接密码
[vncuser01@localhost ~]$ exit
logout
[root@localhost ~]# su - vncuser02
[vncuser02@localhost ~]$ vncserver

WARNING: vncserver has been replaced by a systemd unit and is now considered deprecated and removed in upstream.
Please read /usr/share/doc/tigervnc/HOWTO.md for more information.

You will require a password to access your desktops.

Password:
Verify:
Would you like to enter a view-only password (y/n)? n
A view-only password is not used
xauth: file /home/vncuser02/.Xauthority does not exist

New ‘localhost.localdomain:2 (vncuser02)’ desktop is localhost.localdomain:2

Creating default startup script /home/vncuser02/.vnc/xstartup
Creating default config /home/vncuser02/.vnc/config
Starting applications specified in /home/vncuser02/.vnc/xstartup
Log file is /home/vncuser02/.vnc/localhost.localdomain:2.log
后面如果需要修改vnc连接密码,可以切换到对应用户执行vncpasswd进行修改

专属福利
👉点击领取:Java资料合集!650G!

5.3 查看服务端口

[root@localhost ~]# netstat -tulnp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:5901 0.0.0.0:* LISTEN 33743/Xvnc
tcp 0 0 0.0.0.0:5902 0.0.0.0:* LISTEN 34664/Xvnc
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 1/systemd
tcp 0 0 192.168.122.1:53 0.0.0.0:* LISTEN 1709/dnsmasq
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1145/sshd
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 1148/cupsd
tcp6 0 0 :::5901 ::😗 LISTEN 33743/Xvnc
tcp6 0 0 :::5902 ::😗 LISTEN 34664/Xvnc
tcp6 0 0 :::111 ::😗 LISTEN 1/systemd
tcp6 0 0 :::22 ::😗 LISTEN 1145/sshd
tcp6 0 0 ::1:631 ::😗 LISTEN 1148/cupsd
udp 0 0 0.0.0.0:5353 0.0.0.0:* 938/avahi-daemon: r
udp 0 0 0.0.0.0:50923 0.0.0.0:* 938/avahi-daemon: r
udp 0 0 192.168.122.1:53 0.0.0.0:* 1709/dnsmasq
udp 0 0 0.0.0.0:67 0.0.0.0:* 1709/dnsmasq
udp 0 0 0.0.0.0:111 0.0.0.0:* 1/systemd
udp 0 0 127.0.0.1:323 0.0.0.0:* 957/chronyd
udp6 0 0 :::5353 ::😗 938/avahi-daemon: r
udp6 0 0 :::34264 ::😗 938/avahi-daemon: r
udp6 0 0 :::111 ::😗 1/systemd
udp6 0 0 ::1:323 ::😗
可以看到vnc服务端口已经处于监听状态了。

5.4 设置vncserver开机自启动.

第一个桌面环境
[root@localhost ~]# systemctl enable vncserver@:1.service # 注意:此处服务名称不能tab键补全,需手动敲完整,对应5901端口
Created symlink /etc/systemd/system/multi-user.target.wants/vncserver@:1.service → /usr/lib/systemd/system/vncserver@.service.

第二个桌面环境
[root@localhost ~]# systemctl enable vncserver@:2.service
Created symlink /etc/systemd/system/multi-user.target.wants/vncserver@:2.service → /usr/lib/systemd/system/vncserver@.service.

5.5 增加会话窗口与用户的映射关系,第一个桌面与vncuser01账号关联,第二
个桌面环境与vncuser02账号关联

编辑/etc/tigervnc/vncserver.users文件
[root@localhost ~]# vim /etc/tigervnc/vncserver.users

TigerVNC User assignment

This file assigns users to specific VNC display numbers.

The syntax is =. E.g.:

:2=andrew

:3=lisa

:1=vncuser01 # 增加这两行
:2=vncuser02

5.6 防火墙规则放行

在firewalld防火墙上放行端口
[root@localhost ~]# firewall-cmd --add-port=5901/tcp --permanent
success

[root@localhost ~]# firewall-cmd --add-port=5902/tcp --permanent
success

[root@localhost ~]# firewall-cmd --reload

success

5.7 重启验证服务状态
[root@localhost ~]# systemctl status vncserver@:1.service
[root@localhost ~]# systemctl status vncserver@:1.service
● vncserver@:1.service - Remote desktop service (VNC)
Loaded: loaded (/usr/lib/systemd/system/vncserver@.service; enabled; vendor preset: disabled)
Active: active (running) since Thu 2023-12-14 18:00:57 CST; 40s ago
Process: 1471 ExecStart=/usr/libexec/vncsession-start :1 (code=exited, status=0/SUCCESS)
Process: 1422 ExecStartPre=/usr/libexec/vncsession-restore :1 (code=exited, status=0/SUCCESS)
Main PID: 1489 (vncsession)
Tasks: 0 (limit: 24436)
Memory: 1.4M
CGroup: /system.slice/system-vncserver.slice/vncserver@:1.service
‣ 1489 /usr/sbin/vncsession vncuser01 :1

Dec 14 18:00:57 localhost.localdomain systemd[1]: Starting Remote desktop service (VNC)…
Dec 14 18:00:57 localhost.localdomain systemd[1]: Started Remote desktop service (VNC).
[root@localhost ~]#
[root@localhost ~]# systemctl status vncserver@:2.service
● vncserver@:2.service - Remote desktop service (VNC)
Loaded: loaded (/usr/lib/systemd/system/vncserver@.service; enabled; vendor preset: disabled)
Active: active (running) since Thu 2023-12-14 18:00:57 CST; 44s ago
Process: 1470 ExecStart=/usr/libexec/vncsession-start :2 (code=exited, status=0/SUCCESS)
Process: 1421 ExecStartPre=/usr/libexec/vncsession-restore :2 (code=exited, status=0/SUCCESS)
Main PID: 1492 (vncsession)
Tasks: 0 (limit: 24436)
Memory: 2.1M
CGroup: /system.slice/system-vncserver.slice/vncserver@:2.service
‣ 1492 /usr/sbin/vncsession vncuser02 :2

Dec 14 18:00:57 localhost.localdomain systemd[1]: Starting Remote desktop service (VNC)…
Dec 14 18:00:57 localhost.localdomain systemd[1]: Started Remote desktop service (VNC).
重启系统后,服务成功自启动,均为active状态

5.8 查看端口状态
[root@localhost ~]# netstat -tulnp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 192.168.122.1:53 0.0.0.0:* LISTEN 1858/dnsmasq
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1101/sshd
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 1098/cupsd
tcp 0 0 0.0.0.0:5901 0.0.0.0:* LISTEN 1624/Xvnc
tcp 0 0 0.0.0.0:5902 0.0.0.0:* LISTEN 1625/Xvnc
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 1/systemd
tcp6 0 0 :::22 ::😗 LISTEN 1101/sshd
tcp6 0 0 ::1:631 ::😗 LISTEN 1098/cupsd
tcp6 0 0 :::5901 ::😗 LISTEN 1624/Xvnc
tcp6 0 0 :::5902 ::😗 LISTEN 1625/Xvnc
tcp6 0 0 :::111 ::😗 LISTEN 1/systemd
udp 0 0 0.0.0.0:5353 0.0.0.0:* 973/avahi-daemon: r
udp 0 0 192.168.122.1:53 0.0.0.0:* 1858/dnsmasq
udp 0 0 0.0.0.0:67 0.0.0.0:* 1858/dnsmasq
udp 0 0 0.0.0.0:111 0.0.0.0:* 1/systemd
udp 0 0 127.0.0.1:323 0.0.0.0:* 983/chronyd
udp 0 0 0.0.0.0:44138 0.0.0.0:* 973/avahi-daemon: r
udp6 0 0 :::5353 ::😗 973/avahi-daemon: r
udp6 0 0 :::36338 ::😗 973/avahi-daemon: r
udp6 0 0 :::111 ::😗 1/systemd
udp6 0 0 ::1:323 ::😗 983/chronyd
vnc服务端口处于监听状态中

客户端连接验证

这里我的客户端主机使用的是Windows10操作系统,使用UltraVNC Viewer工具连接

登录成功,vncuser02同理

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/722350.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

蓝桥杯第1390题——A Careful Approach

题目描述 如果你认为参加一个编程比赛让你感到有压力,那么请你想象你是一个空中交通管制员。因为人命关天,所以一个空中交通管制员必须在时刻变化的环境中专注于任务,解决不可预知的事件。 让我们将目光转向飞机的着陆流程。飞机进入目的地飞…

人事档案转出需要注意哪些方面

人事档案转出是指将员工的人事档案从一个部门、公司或组织转移到另一个部门、公司或组织的过程。这个过程需要注意以下几个方面: 1.法律合规:在进行人事档案转出前,要确保遵守相关的法律法规和公司内部规定。例如,要确保有合法的授…

vue-lazyload 图片懒加载的原理与使用

一、图片懒加载vue-lazyload是什么? 背景: 图片是非常占用页面渲染时间的,尤其是一些图片比较多的页面,过多的图片可能会造成页面的卡顿,降低流畅度影响用户体验,我们在实际开发中,对于处于视口…

Redis 7.0版本主从复制机制

1、引言 Redis是一个开源、高性能、内存键值存储系统,同时也提供了数据结构服务器的功能。它支持五种主要的数据类型:字符串(String)、哈希表(Hashes)、列表(Lists)、集合&#xff…

【TEE】内存完整性保护

Hash Functions&Merkle Tree 对读操作进行完整性检查,通过在加载的块上重新计算一个哈希,然后根据片外地址将得到的哈希与片上哈希比较。 缺点:不可承受的片上存储开销,并假设128位哈希和512位cache line,其开销为…

LABEL-EFFICIENT SEMANTIC SEGMENTATION WITHDIFFUSION MODELS

基于扩散模型的标签高效语义分割 摘要: 去噪扩散概率模型最近受到了很多研究的关注,因为它们优于gan等替代方法,并且目前提供了最先进的生成性能。扩散模型的优越性能使其成为一些应用程序的吸引人的工具,包括绘图,超…

STM32CubeIDE基础学习-新建STM32CubeIDE基础工程

STM32CubeIDE基础学习-新建STM32CubeIDE基础工程 前言 有开发过程序的朋友都清楚,后面开发是不需要再新建工程的,一般都是在初学时或者有特殊需要的时候才需要新建项目工程的。 后面开发都是可以在这种已有的工程上添加相关功能就行,只要前…

智能合约的编程语言

智能合约的编程语言 Solidity: https://learnblockchain.cn/docs/solidity/ 相关资料: https://guide.pseudoyu.com/docs/study_path/ 智能合约的技术栈 Hardhat https://hardhat.org/ Truffle https://trufflesuite.com/docs/truffle/ Remix https://hard…

基于openKylin与RISC-V的MindSpore AI项目实践

项目目标: 在openKylin系统上安装和配置MindSpore框架。开发一个简单的图像分类模型,并在RISC-V平台上进行训练和推理。根据RISC-V的特性,对MindSpore框架进行必要的优化。 目录 项目目标: 训练模型 编写训练代码,设…

外包干了3个月,技术倒退明显

先说情况,大专毕业,18年通过校招进入湖南某软件公司,干了接近6年的功能测试,今年年初,感觉自己不能够在这样下去了,长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了四年的功能测试&#xf…

Flutter App代码混淆

Flutter 应用混淆 Flutter 应用的混淆非常简单,只需要在构建 release 版应用时结合使用 --obfuscate 和 --split-debug-info 这两个参数即可。 flutter build apk –obfuscate --split-debug-info 命令需要指定输出调试文件的位置,该命令会生成一个符号映…

挑战给女神节送礼物,怎么寄快递才能快速的送到他手中呢?

马上就是三八女神节了,怎么样?你给心爱的她或者敬爱的她准备礼物了吗,如果已经准备好,你该怎么送给她呢?是当面送给她?还是通过快递打包送给她呢?这里推荐使用闪侠惠递寄快递发货给他吧&#xf…

SQL Server 阻止了对组件 ‘Ole Automation Procedures‘ 的 过程‘sys.sp_OACreate‘ 的访问

SQL Server 阻止了对组件 Ole Automation Procedures 的 过程sys.sp_OACreate 的访问,因为此组件已作为此服务器安全配置的一部分而被关闭。系统管理员可以通过使用 sp_configure 启用 Ole Automation Procedures。有关启用 Ole Automation Procedures 的详细信息&a…

防御-day6-内容安全()

一、文件过滤技术 这里说的文件过滤技术,是指针对文件的类型进行的过滤,而不是文件的内容。 想要实现这个效果,我们的设备必须识别出: 承载文件的应用 --- 承载文件的协议很多,所以需要先识别出协议以及应用。 文件传输…

【小白友好】LeetCode 删除并获得点数

基础题 打家劫舍https://leetcode.cn/problems/house-robber/ 小白解法 删除nums[i]就会使得所有nums[i]-1和nums[i]1的值都消失,手写了几个,发现找来找去不方便,还不如先排个序,然后这样nums[i]-1和nums[i]和nums[i]1就能靠在…

【Python】使用numpy进行神经网络激活函数算法描述

【Python】使用numpy进行神经网络激活函数算法描述 系统:macOS 10.14.5 IDE:PyCharm 2018.2.4 一、What 1.1 NumPy NumPy(Numerical Python) 是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供…

基于灰狼算法GWO的城市三维无人机路径规划(复杂地形三维航迹路径规划)

摘要 本文提出了一种利用灰狼算法GWO来解决城市环境下无人机三维路径规划问题的方法。这种方法将复杂的无人机航迹规划任务转化为一个优化问题,然后运用灰狼算法GWO来解决这个优化问题。灰狼算法GWO是一种模拟灰狼种群捕猎行为的优化算法,它具备强大的全…

2024年第一届CS2major,新胶囊即将发行,需要提前做哪些布局

2024年第一届CS2major,将会在3月17日哥本哈根开始。 所以: 1、新的胶囊大概率会在3月10日左右发布。 2、网传战队挂坠,不知道是否会出现?(原本出现过战队布章包,由于销量太差,第二届就取消了…

山人求道篇:八、模型的偏差与交易认知

原文引用https://mp.weixin.qq.com/s/xvxatVseHK62U7aUXS1B4g “ CTA策略一波亏完全年,除了交易执行错误导致的以外,这类策略都是多因子策略,一般会用机器学习组合多因子得出一个信号来进行交易。规则型策略几乎不会出现一波做反亏完全年的情况。这是有以下几个原因的: 多…

Crossover24新版发布!搭载Wine9提升Mac游戏体验!

2024年2月28日,著名的软件Crossover正式推出了2024年的首个全新版本Crossover24。Crossover 24版本的更新带来了许多功能优化和游戏优化,使用户能够更好地在Mac系统上运行各种软件和游戏,并且支持32位旧版软件的兼容运行。 Crossover24最新版…