【Linux】CentOS 7 VNC 远程桌面配置

CentOS 7 VNC 远程桌面配置

适用环境

  • CentOS 7 系统
  • 已安装图形桌面环境(GNOME/KDE)
  • 网络连接正常

配置步骤

1. 安装VNC服务器

bash 复制代码
# 安装TigerVNC服务器
sudo yum install tigervnc-server tigervnc-server-module -y

2. 安装桌面环境(如果未安装)

bash 复制代码
sudo yum groupinstall "GNOME Desktop" "Graphical Administration Tools" -y

3. 设置VNC密码

bash 复制代码
vncpasswd
# 输入密码并确认

4. 配置VNC服务

bash 复制代码
# 复制配置文件
sudo cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:1.service

# 编辑配置文件,将<USER>替换为实际用户名
sudo vim /etc/systemd/system/vncserver@:1.service

修改配置文件内容

找到并修改这两行:

复制代码
ExecStart=/usr/sbin/runuser -l <USER> -c "/usr/bin/vncserver %i"
PIDFile=/home/<USER>/.vnc/%H%i.pid

例如,使用root用户:

复制代码
ExecStart=/usr/sbin/runuser -l root -c "/usr/bin/vncserver %i"
PIDFile=/home/root/.vnc/%H%i.pid

5. 启动VNC服务

bash 复制代码
# 重新加载systemd
sudo systemctl daemon-reload

# 启动VNC服务(:1表示5901端口)
sudo systemctl start vncserver@:1.service

# 设置开机自启
sudo systemctl enable vncserver@:1.service

6. 配置防火墙(可选)

如果防火墙开启,需要开放VNC端口:

bash 复制代码
# 开放5901端口
sudo firewall-cmd --permanent --add-port=5901/tcp
sudo firewall-cmd --reload

7. 连接方式

  1. 下载VNC Viewer客户端:https://www.realvnc.com/en/connect/download/viewer/
  2. 安装并打开VNC Viewer
  3. 输入连接地址:CentOS_IP:5901CentOS_IP:1
  4. 输入之前设置的VNC密码
  5. 点击"Connect"连接

常见问题排查

问题 解决方法
连接黑屏 检查桌面环境是否正确安装,重启VNC服务
连接被拒绝 检查防火墙是否开放5901端口,或临时关闭防火墙测试
密码错误 重新运行 vncpasswd 设置密码
服务启动失败 检查配置文件中的用户名是否正确

注意事项

  • VNC默认使用5900+端口(:1对应5901,:2对应5902等)
  • 建议在安全网络环境中使用,或配置防火墙限制访问IP
  • 对于生产环境,建议使用SSH隧道加密VNC连接
  • 多个用户可以使用不同的显示器号(:1, :2等)

验证命令

bash 复制代码
# 查看VNC服务状态
sudo systemctl status vncserver@:1.service

# 检查5901端口是否开放
netstat -tlnp | grep 5901
相关推荐
幻影123!2 小时前
从零训练一个会下五子棋的AI
python·深度学习·神经网络·强化学习·五子棋·alpha zero·mokugo
乌萨奇也要立志学C++2 小时前
【Linux】网络基础 从零理解网络通信:局域网、跨网传输与 Socket 预备知识
linux·服务器·网络
Python私教3 小时前
Django 接入 AI 大模型实战:从零做一个流式聊天网站
人工智能·python·django
Python私教3 小时前
Django 接入 MCP 实战:让 AI 安全调用数据库和业务接口
人工智能·python·django
Python私教3 小时前
Django 搭建 AI 本地知识库:文档上传、向量检索与智能问答
人工智能·python·django
always_TT4 小时前
【Python 日志记录:logging 模块入门】
开发语言·python·php
RisunJan4 小时前
Linux命令-slabtop(实时显示内核 slab 缓存信息)
linux
lipku6 小时前
数字人直播开源项目LiveStream
python·开源·数字人·数字人直播
蚰蜒螟7 小时前
从内核源码看Linux启动:chroot、execve与MS_MOVE的协奏曲
linux·服务器·网络
酷可达拉斯7 小时前
自动化运维-ansible配置文件与主机清单
linux·运维·自动化·ansible