Read about installing tigervnc-server on CentOS7.
yum install tigervnc-server xorg-x11-fonts-Type1
Copy the VNC Server config file.
Use port :3 which is 5903 instead of :0 or 5900
cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:3.service
Replace <USER> with the user name in the service file.
cat /etc/systemd/system/vncserver@:3.service
[Unit] Description=Remote desktop service (VNC) After=syslog.target network.target [Service] Type=forking # Clean any existing files in /tmp/.X11-unix environment ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :' ExecStart=/usr/sbin/runuser -l mihai -c "/usr/bin/vncserver %i" PIDFile=/home/mihai/.vnc/%H%i.pid ExecStop=/bin/sh -c '/usr/bin/vncserver -kill %i > /dev/null 2>&1 || :' [Install] WantedBy=multi-user.target
VNC connection is not encrypted. We must use a ssh tunnel.
Open both ports ssh 22 and vnc 5903
iptables -A INPUT -p tcp --dport 22 -j ACCEPT iptables -A INPUT -p tcp --dport 5903 -j ACCEPT
If you do this on a headless server then install X11, XFCE and lightdm as on
CentOS-8.
You have to start XFCE once for the <USER> to create the default desktop.
Set the VNC password for the user.
[mihai@centos: ~]$ vncserver You will require a password to access your desktops. Password: Verify: Would you like to enter a view-only password (y/n)? n A view-only password is not used New 'centos:1 (mihai)' desktop is centos:1 Creating default startup script /home/mihai/.vnc/xstartup Creating default config /home/mihai/.vnc/config Starting applications specified in /home/mihai/.vnc/xstartup Log file is /home/mihai/.vnc/centos:1.log [mihai@centos: ~]$
By default VNC server will start GNOME Desktop session.
Read
here how to switch to XFCE session.
mv ~/.vnc/xstartup ~/.vnc/xstartup.bak cat > ~/.vnc/xstartup << EOF #!/bin/bash xrdb $HOME/.Xresources startxfce4 & EOF
Grant executable privilages
chmod +x ~/.vnc/xstartup
Enable the VNC service.
systemctl daemon-reload systemctl start vncserver@:3.service systemctl enable vncserver@:3.service
It may be needed to reboot the server once.
Download the VNC viewer for Linux from realvnc website and install it to /opt
su mkdir -pv /opt/vnc-viewer mv VNC-Viewer-*-Linux-x64 /opt/vnc-viewer/ cp -v /home/mihai/Code/git-main/script/realvnc/vnc-viewer.png /opt/vnc-viewer chown -Rv root:root /opt/vnc-viewer chcon -Rv -u system_u -t usr_t /opt/vnc-viewer
cat > /usr/share/applications/realvnc.desktop << EOF [Desktop Entry] Name=RealVNC GenericName=VNC Viewer Comment=Control remote computer Exec=/opt/vnc-viewer/VNC-Viewer-6.19.1115-Linux-x64 Terminal=false Icon=/opt/vnc-viewer/vnc-viewer.png Type=Application Categories=Network; Version=1.0 X-Desktop-File-Install-Version=0.23 EOF
Create the ssh tunnel
ssh -L 5903:$DIGITALOCEAN:5903 -l mihai $DIGITALOCEAN
or connect using a private key
ssh -L 5903:$DIGITALOCEAN:5903 -i ~/.ssh/id_rsa_digitalocean -l mihai $DIGITALOCEAN
Start RealVNC
Add a new connection
To connect from a Windows client read
here
about How to Tunnel VNC over SSH.
You will need
PuTTY and
RealVNC for this.
See which VNC port is currently open
nmap localhost PORT STATE SERVICE 22/tcp open ssh 25/tcp open smtp 5903/tcp open vnc-3 6003/tcp open X11:3
Kill a VNC instance
[sammy@centos-server: ~]$ vncserver -kill :1 Killing Xvnc process ID 1323
Troubleshoot a VNC service that refuses to start
systemctl start vncserver@:3.service Job for vncserver@:3.service failed. See "systemctl status vncserver@:3.service" and "journalctl -xe" for details. journalctl -xe May 01 15:32:17 centos-server runuser[9207]: pam_unix(runuser-l:session): session opened for user sammy by (uid=0) May 01 15:32:17 centos-server runuser[9207]: Warning: centos-server:3 is taken because of /tmp/.X11-unix/X3 May 01 15:32:17 centos-server runuser[9207]: Remove this file if there is no X server centos-server:3 May 01 15:32:17 centos-server runuser[9207]: A VNC server is already running as :3 May 01 15:32:21 centos-server runuser[9207]: New 'centos-server:1 (sammy)' desktop is centos-server:1 May 01 15:32:21 centos-server runuser[9207]: Starting applications specified in /home/sammy/.vnc/xstartup May 01 15:32:21 centos-server runuser[9207]: Log file is /home/sammy/.vnc/centos-server:1.log May 01 15:32:21 centos-server runuser[9207]: pam_unix(runuser-l:session): session closed for user sammy May 01 15:32:21 centos-server systemd[1]: Can't open PID file /home/sammy/.vnc/centos-server:3.pid (yet?) after start: No such file or directory May 01 15:32:21 centos-server systemd[1]: Failed to start Remote desktop service (VNC).
Removing temporary (old) directories
cd /tmp/.X11-unix/ rmdir X3Back to main index