纪念:站主于 2020 年 1 月完成了此开源实验,并将过程中的所有命令经过整理和注释以后,形成以下教程
软件准备:
在 RealVNC 官网上下载使用 VNC 服务所需软件 VNC View:
正文:
步骤一:规划拓扑
1.1 服务器列表
服务端 192.168.100.10
客户端 192.168.100.11
1.2 服务器列表简介
1) 服务器提供 VNC 服务让其他设备可以远程自己的桌面
2) 客户端通过 VNC 服务远程服务器的桌面
步骤二:系统环境要求
1) 所有服务器的系统都需要是 CentOS 7 版本
2) 所有服务器都要关闭防火墙
3) 所有服务器都要关闭 SELinux
4) 所有服务器系统都要配置好可用的软件源
5) 需要按照拓扑图给对应的服务器配置好 IP 地址和主机名
6) 所有服务器都要可以相互 ping 通自己和对方的 IP 地址和主机名
步骤三:服务端安装 VNC 服务
3.1 服务端 VNC 环境准备
3.1.1 在服务端上安装桌面
(只在服务端上执行以下步骤)
# yum -y groupinstall "Server with GUI"
# yum -y groupinstall "GNOME Desktop"
3.1.2 在服务端上创建用于使用 VNC 的用户
3.1.2.1 创建用户
(只在服务端上执行以下步骤)
# useradd zhumingyu
3.1.2.2 修改用户密码
(只在服务端上执行以下步骤)
# passwd zhumingyu
3.2 服务端安装 VNC 服务
(只在服务端上执行以下步骤)
# yum -y install tigervnc tigervnc-server
步骤四:配置 VNC 服务
4.1 创建 VNC 服务进程文件
(只在服务端上执行以下步骤)
# cp /lib/systemd/system/vncserver\@.service /lib/systemd/system/vncserver\@:1.service
4.2 编辑 VNC 服务进程文件
(只在服务端上执行以下步骤)
# vi /lib/systemd/system/vncserver\@:1.service
将其中的:
......
[Unit]
Description=Remote desktop service (VNC)
After=syslog.target network.target
[Service]
Type=forking
# Clean any existing files in /tmp/.X11-unix environment
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
修改为:
......
[Unit]
Description=Remote desktop service (VNC)
After=syslog.target network.target
[Service]
Type=forking
# Clean any existing files in /tmp/.X11-unix environment
ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
ExecStart=/usr/sbin/runuser -l zhumingyu -c "/usr/bin/vncserver %i"
PIDFile=/home/zhumingyu/.vnc/%H%i.pid
ExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
[Install]
WantedBy=multi-user.target
步骤五:开机自启 VNC 服务
5.1 刷新所有服务进程文件
(只在服务端上执行以下步骤)
# systemctl daemon-reload
5.2 开机自启 VNC 服务
(只在服务端上执行以下步骤)
# systemctl enable vncserver@:1.service
Created symlink from /etc/systemd/system/multi-user.target.wants/vncserver@:1.service to /usr/lib/systemd/system/vncserver@:1.service.
步骤六:启动 VNC 服务
6.1 切换到使用 VNC 的用户
(只在服务端上执行以下步骤)
# su - zhumingyu
6.2 开启 VNC 服务
(只在服务端上执行以下步骤)
$ vncserver :1
You will require a password to access your desktops.
Password:
Verify:
Would you like to enter a view-only password (y/n)? y
Password:
Verify:
New 'vnc:1 (zhumingyu)' desktop is vnc:1
Creating default startup script /home/zhumingyu/.vnc/xstartup
Creating default config /home/zhumingyu/.vnc/config
Starting applications specified in /home/zhumingyu/.vnc/xstartup
Log file is /home/zhumingyu/.vnc/vnc:1.log
6.3 补充:修改 VNC 登录密码的方法
# su - zhumingyu
$ vncpasswd
步骤七:确认 VNC 服务是否启动成功
(只在服务端上执行以下步骤)
$ ss -ntulap | grep 5901
tcp LISTEN 0 5 *:5901 *:* users:(("Xvnc",pid=1152,fd=9))
tcp LISTEN 0 5 [::]:5901 [::]:* users:(("Xvnc",pid=1152,fd=10))
步骤八:客户端使用 VNC 服务
8.1 客户端使用 VNC 服务的前期工作
8.1.1 在客户端上安装桌面
(只在客户端上执行以下步骤)
# yum -y groupinstall "Server with GUI"
# yum -y groupinstall "GNOME Desktop"
8.1.2 客户端安装 VNC 服务的客户端
(只在客户端上执行以下步骤)
# yum -y localinstall VNC-Viewer-6.19.1115-Linux-x64.rpm
(补充:这里以安装 VNC-Viewer-6.19.1115-Linux-x64.rpm 为例)
8.1.3 客户端启动桌面
(只在客户端上执行以下步骤)
# startx
8.2 客户端使用 VNC 服务
8.2.1 客户端启动 VNC 服务的客户端
(只在客户端上执行以下步骤)
8.2.2 连接服务端的 VNC IP 地址和端口号
(只在客户端上执行以下步骤)
8.2.3 输入服务端 VNC 用户的 VNC 密码
(只在客户端上执行以下步骤)
8.2.4 VNC 服务成功
(只在客户端上执行以下步骤)