Xfce is a lightweight linux desktop environment. You can install Xfce on a remote server or virtual machine, connect to it using VNC to use it as a desktop.
To install Xfce, enable EPEL repo
yum install -y epel-release
Install Xfce
yum groupinstall Xfce
You can see other groups available with command “yum grouplist”.
Insall vnc server
yum install -y tigervnc-server
Creating User
We need to create a normal linux user to use with Xfce. Using it as root is not recommended.
To create user, run
useradd -m --shell /bin/bash serverok
Replace “serverok” with whatever username you want to use.
Configure VNC server
Change to the user we created before
su - serverok
To create initial vnc config files and set password, run
vncserver -fg
We used -fg option to keep vncserver in forground. vcnserver will ask you to set password, this will be used to connect to VNC server.
When i run “vncserver -fg” on CentOS, it exited with error. If it keep running, press CTRL+C to stop vnc server.
If you run with out -fg option, you can stop vnc server with command
vncserver -kill :1
Edit file
vi /home/serverok/.vnc/xstartup
Replace contents of this file with following
#!/bin/sh unset SESSION_MANAGER unset DBUS_SESSION_BUS_ADDRESS /etc/X11/xinit/xinitrc /bin/startxfce4
Now you can start vncserver manually with command
vncserver -fg
You will be able to connect to VNC server with YOUR_SERVER_IP:1
Auto start VNC server
Following need to be done as user root.
Edit file
vi /usr/lib/systemd/system/[email protected]
Find
ExecStart=/usr/bin/vncserver_wrapper%i
Replaced with
ExecStart=/usr/bin/vncserver_wrapper serverok %i
reload systemctl
systemctl daemon-reload
Enable vncserver to start on boot
systemctl enable vncserver@:1.service
Start vncserver
systemctl start vncserver@:1.service
Open port in firewall
You need to open VNC port in firewall. vnc ports start at 5900, for :1, it will be 5901.
[root@centos7 ~]# netstat -lntp | grep vnc tcp 0 0 0.0.0.0:5901 0.0.0.0:* LISTEN 1951/Xvnc tcp 0 0 0.0.0.0:6001 0.0.0.0:* LISTEN 1951/Xvnc tcp6 0 0 :::5901 :::* LISTEN 1951/Xvnc tcp6 0 0 :::6001 :::* LISTEN 1951/Xvnc [root@centos7 ~]#
If you are using firewalld, you can open port 5901 with
firewall-cmd --zone=public --add-port=5901/tcp firewall-cmd --zone=public --add-port=5901/tcp --permanent
firewall-cmd command is run 2 times as first command only make changes in current session. second command with –permanent option make changes permanent, but that only happens after you reload firewalld or reboot server. Running command 2 times make the changes permanent and apply changes to current session.
See VNC, Remote Desktop