openSUSE Leap 15.1 KDE Plasma 5: My experiments in accessing other desktops remotely using VNC and RDP

I have a few computing machines at home. However, I had never endeavored to connect them holistically. They worked in isolation only thinly connected using the cloud services. All that changed this weekend when a thought was born:

One LAN to rule them all, one LAN to find them, One LAN to bring them all. and in the darkness bind them.

TEST MACHINES

I chose two machines for my tests:

So, with my wlan0 interface configured in to the home zone in both machines, I began my quest.

TigerVNC - VIRTUAL NETWORK COMPUTING SERVER

TigerVNC is available in openSUSE Leap 15.1 by default. Nothing to install, but a few things to configure.

TigerVNC is a high-performance, platform-neutral implementation of VNC (Virtual Network Computing), a client/server application that allows users to launch and interact with graphical applications on remote machines.

Instaed of using vncviewer, the client component of TigerVNC, I decided to use Remmina:

sudo zypper in remmina

Opened firewall

The openSUSE firewall is configurable using the YaST Firewall GUI or firewall-cmd command. Both are functionally equal. I used the GUI to allow TigerVNC server to listen unhindered at its favourite ports.This did not work at all.

Enabled Remote Administration

Further research led me to YaST Remote Administration. Followed all the steps mentioned. No matter what I did, nothing could let me connect.

SDDM does not work with TigerVNC

I simply love KDE Plasma 5. Plasma 5 comes with SDDM (Simple Desktop Display Manager). SDDM hates TigerVNC:

SDDM (Simple Desktop Display Manager), which is the default display manager in KDE5 doesn't support XDMCP. You must switch to different display manager to get login screen in VNC sessions.

I was in no mood to nuke SDDM just so that TigerVNC could have my machines. I decided to look for alternatives.

xrdp - THE REMOTE DESKTOP PROTOCOL SERVER

I installed xrdp:

sudo zypper -n in xrdp
sudo systemctl enable xrdp
sudo systemctl start xrdp
sudo firewall-cmd --add-port=3389/tcp --permanent
sudo firewall-cmd --reload

I had to terminate xrdp experiments when Remmina endlessly tried to reconnect. It was obvious that Remmina was able to connect, but the connection was dropping immediately. Also, it is very much possible that xrdp server tries to start another GUI session and fails since I was already logged in in a KDE Plasma 5 session. Needs more research and experiments.

krfb - KDE DESKTOP SHARING

Tired of TigerVNC and xrdp, I needed an alternative. My search led me to krfb:

KDE Desktop Sharing (krfb)  is a small server for the RFB protocol, better known as VNC. Unlike most other Unix/Linux RFB servers, KRfb allows you to share your X11 session instead of creating a new X11 session.

Since krfb share X11 session instead of creating a new X11 session, it should theoretically not suffer from the xrdp issues. Also,:

Krfb (server) is one of a pair of KDE programs - Krdc (client) is the other - that let you share your desktop (make it visible remotely) through the local network with another user, probably somebody like the tech downstairs who you wants to help you figure out how to do something you are having trouble with. You can call the tech on the phone and be talking with her while she assists you.

So, I installed krfb and krdc on both my test machines:

sudo zypper in krfb
sudo zypper in krdc

Since krfb listens on port 5900, openSUSE firewall needs to be opened on both machines:

sudo firewall-cmd --zone=home --permanent --add-port=5900/tcp
sudo firewall-cmd --reload

The above commands are functionally equal to adding ports manually in the YaST Firewall GUI.

Success at last and connection was established from both machines. However, krdc was extremely slow. Barely usable. Remmina works satisfactorily.

CONCLUSION

In openSUSE Leap 15.1 with KDE Plasma 5, only krfb, the VNC server, works with Remmina, the VNC client. TigerVNC made me angry although it was SDDM's fault. xrdp did not work at all.