1.VNC简介
VNC 的全称是 Virtual Network Computing(虚拟网络计算)。它是一款开源的、跨平台的远程桌面协议及软件实现,核心作用是让你用一台设备上的键盘鼠标,通过网络去操作另一台设备的图形界面,就像坐在那台设备前一样。
VNC 系统由两个角色构成,它们协同工作:
VNC 服务器 (Server): 安装在被控制的远程计算机上。
核心任务:持续"抓取"自己当前的屏幕画面,将图像数据压缩后发送给客户端;同时接收来自客户端的键盘、鼠标操作指令,并将其注入到操作系统中执行。
关键属性:每个服务器的桌面都有一个编号(例如 :1),并监听一个对应的网络端口(5900 + 桌面号,如 :1 对应 5901 端口)。
VNC 客户端 (Viewer): 安装在用于控制的本地设备上。
核心任务:向服务器发起连接,接收传来的压缩图像数据,解压后在自己的窗口中显示;同时捕捉用户的键盘、鼠标操作,发送给服务器。
关键操作:你只需要在客户端中输入 服务器IP:端口号(如 192.168.1.10:5901)即可发起连接。
以centos7虚拟机为例,在centos虚拟机(net模式)中安装VNC服务器。
2. 环境准备:解决 CentOS 7 源失效问题
CentOS 7 已于 2024 年 6 月 30 日结束生命周期(EOL),官方源 mirrorlist.centos.org 已不可用。如果不换源,yum install 会直接报错。所以更换为阿里云(或网易、清华)的 Vault 镜像源。阿里云的源通常速度较快且稳定。
bash
su root
# 1. 备份原有的源(虽然它已经不能用了,但这是个好习惯)
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
# 2. 下载阿里云的 CentOS 7 专用源
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
# 3. 生成缓存(这一步会列出阿里云的软件列表,如果报错说明网络不通或源地址写错)
yum makecache
3. 安装与初始化 VNC Server
在确认源可用后,就可以安装 TigerVNC 并设置访问密码了。TigerVNC 是目前 CentOS 下主流且维护较好的 VNC 实现。
bash
# 安装 VNC 服务端
yum install -y tigervnc-server
# 设置 VNC 密码(注意:密码最大长度为 8 位,超出部分会被自动截断)
vncpasswd
系统会提示你输入两次密码,并询问是否设置一个只读密码(view-only password),通常输入 n 跳过即可。
4. 启动 VNC 并验证端口
启动 VNC 时可以通过参数指定分辨率和桌面号。虚拟桌面的配置文件(如壁纸、终端设置)会保存在当前用户的家目录下的 .vnc 文件夹中。
bash
# 启动桌面号 :1,并设置分辨率为 1280x720(可以根据你的显示器需求调整)
vncserver :1 -geometry 1280x720
# 查看当前正在运行的 VNC 桌面
vncserver -list
如果你看到 :1 对应的 PROCESS ID,说明服务已经成功启动。此时,该桌面占用的端口就是 5901。
5. 防火墙配置(宿主机连接的关键)
如果你的虚拟机开启了防火墙(CentOS 7 默认开启),仅启动 VNC 是不够的,外部流量会被直接丢弃。必须显式放行对应端口。
bash
# 开放 5901 端口(对应桌面号 :1)
firewall-cmd --permanent --add-port=5901/tcp
# 重载防火墙规则使其生效
firewall-cmd --reload
# (可选)验证端口是否已开放
firewall-cmd --list-ports
6. 宿主机(物理机)连接
获取虚拟机 IP: 在 CentOS 虚拟机中运行 ip addr 或 ifconfig,查看 ens33 或 eth0 接口的 IP 地址(通常为 192.168.x.x)。
打开 VNC Viewer:
RealVNC 或 TigerVNC 均可。
地址格式:虚拟机IP:桌面号 或 虚拟机IP:端口号。
示例:如果虚拟机 IP 是 192.168.1.100,在 Viewer 中输入 192.168.1.100:1 或 192.168.1.100:5901。
【realvnc viewer下载安装地址:https://www.realvnc.com/en/connect/download/viewer/】