HCRM博客

如何在 CentOS 上配置 VNC 服务?

CentOS VNC 配置

VNC(Virtual Network Computing)是一种使用 RFB 协议的远程桌面系统,允许用户通过网络远程控制另一台计算机,本文将详细介绍如何在CentOS上安装和配置VNC server,以实现远程桌面功能。

如何在 CentOS 上配置 VNC 服务?-图1
(图片来源网络,侵权删除)

一、安装桌面环境

1. 更新系统

sudo yum update y

2. 安装GNOME Desktop图形桌面服务

sudo yum groupinstall "GNOME Desktop" y

3. 查看当前运行级别

systemctl getdefault

4. 切换到图形界面模式

sudo systemctl setdefault graphical.target

5. 启动图形界面

sudo init 5

二、安装和配置VNC Server

1. 安装TigerVNC Server

如何在 CentOS 上配置 VNC 服务?-图2
(图片来源网络,侵权删除)
sudo yum install tigervncserver y

2. 启动VNC Server

使用vncserver命令启动VNC服务,命令格式为vncserver :桌面号,桌面号”用数字表示,每个用户连接需要占用一个桌面,例如启动编号为1的桌面:

vncserver :1

执行后会提示输入VNC访问密码及确认密码,同时会在用户主目录下生成.vnc子目录和相应的配置文件。

3. 配置VNC Server文件

编辑VNC服务器的xstartup文件,确保其内容如下:

vim ~/.vnc/xstartup

添加以下内容:

如何在 CentOS 上配置 VNC 服务?-图3
(图片来源网络,侵权删除)
#!/bin/sh
[ x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ r $HOME/.Xresources ] && xrdb $HOME/.Xresources
vncconfig iconic &
dbuslaunch exitwithsession gnomesession &

保存并退出编辑器。

4. 设置防火墙开放VNC端口

默认情况下,VNC使用TCP端口5900+桌面号,例如桌面号为1时,使用5901端口,因此需要开放相应端口:

sudo firewallcmd permanent addport=5901/tcp
sudo firewallcmd reload

三、配置VNC Server开机自启动

1. 创建Systemd Unit文件

创建一个新的Systemd单位文件:

sudo tee /etc/systemd/system/vncserver@:1.service > /dev/null

添加以下内容:

[Unit]
Description=Remote desktop service (VNC)
After=syslog.target network.target
[Service]
Type=forking
User=<USER>
PIDFile=/home/<USER>/.vnc/%H%i.pid
ExecStartPre=/bin/sh c '/usr/bin/vncserver kill %i > /dev/null 2>&1 || :'
ExecStart=/usr/bin/vncserver %i geometry 1280x720
ExecStop=/usr/bin/vncserver kill %i > /dev/null 2>&1 || :
[Install]
WantedBy=multiuser.target

注意将<USER>替换为实际用户名,例如oracle

2. 重新加载Systemd并启用VNC服务

sudo systemctl daemonreload
sudo systemctl enable vncserver@:1.service

3. 启动VNC服务

sudo systemctl start vncserver@:1.service

4. 检查服务状态

sudo systemctl status vncserver@:1.service

四、常见问题及解答(FAQs)

Q1:如何更改VNC Server的分辨率?

A1:在/etc/systemd/system/vncserver@:1.service文件中修改ExecStart行,添加geometry参数,要设置为1280x720分辨率,可以修改为:

ExecStart=/usr/bin/vncserver %i geometry 1280x720

然后重新加载Systemd并重启VNC服务:

sudo systemctl daemonreload
sudo systemctl restart vncserver@:1.service

Q2:如何通过SSH隧道连接到VNC Server?

A2:可以通过SSH隧道转发端口,从而实现安全的VNC连接,假设本地机器为hostA,远程CentOS机器为hostB,可以使用以下命令:

ssh L 590N:localhost:590M user@hostB

其中590N是hostA上的本地端口,590M是hostB上的远程端口,然后在本地机器上使用VNC Viewer连接到localhost:590N即可。

本站部分图片及内容来源网络,版权归原作者所有,转载目的为传递知识,不代表本站立场。若侵权或违规联系Email:zjx77377423@163.com 核实后第一时间删除。 转载请注明出处:https://blog.huochengrm.cn/pc/20356.html

分享:
扫描分享到社交APP
上一篇
下一篇