@TOC
一、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:是一款针对远程支持、远程控制和在线协作的应用软件,可以实现桌面共享、远程协助、文件传输等功能。
二、本地环境介绍
2.1 本地环境规划
本次实践为个人测试环境,服务器操作系统版本为centos7.6。
hostname | 本地IP地址 | 操作系统版本 | 内核版本 |
---|---|---|---|
jeven | 192.168.3.166 | centos 7.6 | 3.10.0-957.el7.x86_64 |
2.2 本次实践介绍
1.本次实践部署环境为个人测试环境; 2.在centos7.6环境下,使用VNC工具,本地远程连接Linux桌面环境。 3.将vncserver设置成service服务,保证开机自动启动。
三、安装vncserver
3.1 安装vncserver
直接使用yum安装vncserver
yum -y install tigervnc-server
3.2 检查vncserver安装状态
检查vncserver安装状态
[root@jeven ~]# rpm -qa |grep tigervnc-server
tigervnc-server-minimal-1.8.0-13.el7.x86_64
tigervnc-server-1.8.0-25.el7_9.x86_64
四、配置VNC密码
4.1 创建用户
- 创建admin用户
useradd admin
- 设置admin密码
passwd admin
4.2 切换admin用户
切换admin用户
[root@jeven ~]# su - admin
[admin@jeven ~]$
4.3 设置VNC密码
使用 vncpasswd来设置VNC连接密码
vncpasswd
五、配置vncserver服务
5.1 复制vncserver的服务配置文件
将/lib/systemd/system/vncserver@.service文件进行复制,文件名为vncserver@:1.service, VNC的连接端口号为5901,如果是vncserver@:2.service,那么对应启动的端口就是 5902。以此类推。
cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:1.service
5.2 修改配置文件
修改vncserver@:1.service文件,只需要修改图中黄色框内的 用户名为刚才设置的用户即可。
vim /etc/systemd/system/vncserver@:1.service
5.3 启动vncserver服务
- 启动ncserver服务
systemctl start vncserver@:1.service
- 查看vncserver服务状态
[root@jeven ~]# 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: active (running) since Thu 2023-06-29 23:49:43 CST; 5s ago
Process: 22083 ExecStartPre=/bin/sh -c /usr/bin/vncserver -kill %i > /dev/null 2>&1 || : (code=exited, status=0/SUCCESS)
Main PID: 22087 (vncserver_wrapp)
CGroup: /system.slice/system-vncserver.slice/vncserver@:1.service
├─22087 /bin/sh /usr/bin/vncserver_wrapper admin :1
└─22939 sleep 0.1
Jun 29 23:49:43 jeven systemd[1]: Starting Remote desktop service (VNC)...
Jun 29 23:49:43 jeven systemd[1]: Started Remote desktop service (VNC).
Jun 29 23:49:43 jeven vncserver_wrapper[22087]: xauth: file /home/admin/.Xauthority does not exist
Jun 29 23:49:46 jeven vncserver_wrapper[22087]: New 'jeven:1 (admin)' desktop is jeven:1
Jun 29 23:49:46 jeven vncserver_wrapper[22087]: Creating default startup script /home/admin/.vnc/xstartup
Jun 29 23:49:46 jeven vncserver_wrapper[22087]: Creating default config /home/admin/.vnc/config
Jun 29 23:49:46 jeven vncserver_wrapper[22087]: Starting applications specified in /home/admin/.vnc/xstartup
Jun 29 23:49:46 jeven vncserver_wrapper[22087]: Log file is /home/admin/.vnc/jeven:1.log
[root@jeven ~]#
- 设置vncserver服务开机自启
[root@jeven ~]# systemctl enable vncserver@:1.service
Created symlink from /etc/systemd/system/multi-user.target.wants/vncserver@:1.service to /etc/systemd/system/vncserver@:1.service.
5.4 查看服务监听端口
查看vncserver监听端口
[root@jeven ~]# ss -tunlp |grep vnc
tcp LISTEN 0 5 *:5901 *:* users:(("Xvnc",pid=22117,fd=9))
tcp LISTEN 0 128 *:6001 *:* users:(("Xvnc",pid=22117,fd=6))
tcp LISTEN 0 5 :::5901 :::* users:(("Xvnc",pid=22117,fd=10))
tcp LISTEN 0 128 :::6001 :::* users:(("Xvnc",pid=22117,fd=5))
5.5 防火墙设置
- 放行防火墙
firewall-cmd --add-port=5901/tcp --permanent #放行5901端口
firewall-cmd --reload #重新加载生效
- 如果在测试环境,可直接关闭防火墙
systemctl stop firewalld && systemctl disable firewalld
- 关闭selinux
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
setenforce 0
六、VNC客户端连接Linux
下载VNC客户端,填写VNC Server的地址:192.168.3.166:5901 输入设置的VNC密码,即可远程连接Linux桌面了。