跳转至

在 CentOS 上安装 Xfce 桌面和 VNC

文档时效性说明

本文为早期笔记,可能存在版本过时、命令失效、链接失效、最佳实践变化等问题。请以官方最新文档为准。

原英文标题:Install Xfce Desktop with VNC on CentOS

1. 使用 dnf 安装软件包

确保已安装 epel-release,然后运行

sudo dnf groupinstall "xfce"
sudo dnf install tigervnc-server

2. 配置 VNC 服务器

vncserver

3. 编辑 VNC 启动脚本

编辑 ~/.vnc/xstartup,注释掉

exec /etc/X11/xinit/xinitrc

添加

exec startxfce4

终止并重启 vncserver

vncserver -kill :1
vncserver

4. 添加防火墙规则

sudo firewall-cmd --add-service=vnc-server --permanent
sudo firewall-cmd --reload

通过 vncviewer 连接 yourip:5901 并测试

4.1 添加 systemctl 启动脚本

sudo cp /usr/lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:1.service
sudo nano /etc/systemd/system/vncserver@\:1.service

并将 "hxp" 改为你的用户名

[Unit]
Description=Remote desktop service (VNC)
After=syslog.target network.target

[Service]
Type=simple
User=root
Group=root

# Clean any existing files in /tmp/.X11-unix environment
ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
ExecStart=/usr/bin/vncserver_wrapper hxp %i
ExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'

[Install]
WantedBy=multi-user.target

重新加载 systemctl 并启动服务

sudo systemctl daemon-reload
sudo systemctl enable --now vncserver@:1.service

5. 原文(English)

6. dnf install packages

make sure you have installed epel-release and run

sudo dnf groupinstall "xfce"
sudo dnf install tigervnc-server

7. Configure VNC server

vncserver

8. Edit VNC startup script

edit ~/.vnc/xstartup, comment

exec /etc/X11/xinit/xinitrc

add

exec startxfce4

kill and restart vncserver

vncserver -kill :1
vncserver

9. Add firewall rules

sudo firewall-cmd --add-service=vnc-server --permanent
sudo firewall-cmd --reload

connect yourip:5901via vncviewer and test

9.1 Add systemctl startup script

sudo cp /usr/lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:1.service
sudo nano /etc/systemd/system/vncserver@\:1.service

and change "hxp" to your username

[Unit]
Description=Remote desktop service (VNC)
After=syslog.target network.target

[Service]
Type=simple
User=root
Group=root

# Clean any existing files in /tmp/.X11-unix environment
ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'
ExecStart=/usr/bin/vncserver_wrapper hxp %i
ExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :'

[Install]
WantedBy=multi-user.target

reload systemctl and start service

sudo systemctl daemon-reload
sudo systemctl enable --now vncserver@:1.service