如何通过VNC远程控制CentOS
导读:适用环境说明 适用于 CentOS 7/8(使用 systemd 管理),桌面环境建议安装 GNOME 或 Xfce。VNC 显示编号 :1 对应端口 5901,:2 对应 5902,以此类推(5900+N)。为提高安全性,优先使用 SS...
适用环境说明
- 适用于 CentOS 7/8(使用 systemd 管理),桌面环境建议安装 GNOME 或 Xfce。VNC 显示编号 :1 对应端口 5901,:2 对应 5902,以此类推(5900+N)。为提高安全性,优先使用 SSH 隧道 或仅本机访问再转发。
安装与准备
- 安装桌面环境(若未安装):
- GNOME:sudo yum groupinstall “GNOME Desktop” -y
- Xfce(轻量可选):sudo yum groupinstall “Xfce” -y
- 安装 TigerVNC 服务器:sudo yum install tigervnc-server -y
- 如未启用 EPEL,建议先安装:sudo yum install epel-release -y
- 为 VNC 用户设置访问密码(首次必需):vncpasswd(按提示输入并确认密码)
配置 VNC 服务
- 复制并修改 systemd 单元(以显示编号 :1 为例):
- 复制模板:sudo cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:1.service
- 编辑关键项(示例为 root 用户;如使用普通用户,请将 User= 与 PIDFile= 改为对应用户主目录):
- User=root
- PIDFile=/root/.vnc/%H%i.pid
- ExecStart=/usr/bin/vncserver %i
- ExecStop=/usr/bin/vncserver -kill %i
- 重新加载并启用服务:
- sudo systemctl daemon-reload
- sudo systemctl enable vncserver@:1.service
- sudo systemctl start vncserver@:1.service
- 配置桌面会话启动(确保能看到完整桌面):
- 编辑 ~/.vnc/xstartup,确保包含(GNOME 示例):
- unset SESSION_MANAGER
- exec /etc/X11/xinit/xinitrc
- 在文件末尾添加:gnome-session &
- 如用 Xfce,可改为:exec startxfce4
- 使配置生效:
- vncserver -kill :1
- vncserver :1
- 编辑 ~/.vnc/xstartup,确保包含(GNOME 示例):
防火墙与端口开放
- 推荐仅开放必要端口,或直接使用 SSH 隧道(见下一节):
- 开放 5901(:1):sudo firewall-cmd --permanent --add-port=5901/tcp & & sudo firewall-cmd --reload
- 如需一次性开放多个:sudo firewall-cmd --permanent --add-port=5901-5910/tcp & & sudo firewall-cmd --reload
- 端口说明:显示编号 N 的 VNC 会话使用 5900+N(:1→5901,:2→5902…)
客户端连接与安全建议
- 直接连接(不加密,仅在内网使用):
- 客户端地址:服务器IP**:1**(或 IP**:5901**)
- 使用常见客户端如 RealVNC Viewer、TightVNC Viewer 输入密码连接
- 安全连接(推荐公网/跨网使用 SSH 隧道):
- 本地端口转发:ssh -L 5901:localhost:5901 用户名@服务器IP
- 客户端连接:localhost**:1**(经由本机 5901 转发到远端 5901)
- 服务端可限制仅本地访问:在 vncserver 参数加入 -localhost,或用 SSH 的 -via 选项
- 常用运维命令:
- 查看进程:ps -ef | grep Xvnc
- 关闭会话:vncserver -kill :1
- 查看日志:~/.vnc/*.log
- 调整分辨率:vncserver :1 -geometry 1920x1080 -depth 24
常见问题排查
- 端口被占用:更换显示编号(如改为 :2),或先 kill 已占用会话(vncserver -kill :1)
- 仅看到灰屏/终端:检查 ~/.vnc/xstartup 是否包含桌面会话启动(如 gnome-session & 或 startxfce4),修改后重启会话
- 防火墙未生效:确认已执行 firewall-cmd --reload,并核对云厂商安全组/本机防火墙策略
- 服务启动失败:执行 systemctl status vncserver@:1.service 查看报错,必要时 journalctl -xe 定位问题
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 如何通过VNC远程控制CentOS
本文地址: https://pptw.com/jishu/778118.html
