CentOS VNC 配置
VNC(Virtual Network Computing)是一种使用 RFB 协议的远程桌面系统,允许用户通过网络远程控制另一台计算机,本文将详细介绍如何在CentOS上安装和配置VNC server,以实现远程桌面功能。
一、安装桌面环境
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
sudo yum install tigervncserver y
2. 启动VNC Server
使用vncserver
命令启动VNC服务,命令格式为vncserver :桌面号
,桌面号”用数字表示,每个用户连接需要占用一个桌面,例如启动编号为1的桌面:
vncserver :1
执行后会提示输入VNC访问密码及确认密码,同时会在用户主目录下生成.vnc
子目录和相应的配置文件。
3. 配置VNC Server文件
编辑VNC服务器的xstartup文件,确保其内容如下:
vim ~/.vnc/xstartup
添加以下内容:
#!/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
即可。