This answer focuses on the remote desktop server choices
The client will depend of the server of choice
Ubuntu installations come with a desktop sharing solution, Vino. It is easy to setup. It uses VNC protocol and can be accessed with any VNC client, including Remmina.
Here is a tutorial for setting it up.
Some recommendations on setup
I would not bother with the VNC password in your case, as you want to set it up for tech support. Use the option New connection must ask for access. Your friend will have to give you access.
The second reason not to bother with the VNC password is it is not very secure. The tutorial asks you to set it up to send the password unencrypted. Some VNC servers only used the first 9 characters of the password. So, setting a long password did nothing. I don't know if this bug has been fixed.
I recommend you use
ssh tunnel to access the VNC server. This is a safer alternative. I will give you a link on setting up the ssh tunnel in a minute. But before that I do not recommend enabling uPnP in the router in your friend's house as stated in the tutorial. You may have to setup your friend's router to forward the ssh port to the computer.
Read the VNC over SSH section and When traveling section of this answer:
The When traveling section in the above answer is important for you, as you will always be accessing the friend's computer from outside your friend's home.
Problems with router and DDNS
By now you have read the links I put above and know that most desktop remote access must deal with to things:
- Port forwarding in the router
- Dynamic Domain Name Systems
If you can't set these up for your friend for whatever reasons, you will have to look beyond open source solutions.
Closed source, but free to use
All these solutions does not require fiddling with the router settings. You don't have to bother with DDNS either.
When your friend calls for help, you ask them to open the app, and you open the same app on your computer. Ask your friend to read you the code the app shows on their computer. You enter that code in the app in your computer. Your friend will see a popup that someone is trying to connect, and they must agree. And you can see their desktop.
I have used three and I will list them below from the best to worst in my view.
It is easy to setup. Basically it does the same thing as Teamviewer, but has a smaller footprint. A single app works as the client and the server. Both computers must have this app installed.
This is probably better known in the Windows world. It is free to use at home. It has lots of features I don't need and is much bigger than Anydesk. A single app works as the client and the server. Both computers must have this app installed.
Chrome Remote Desktop
I have not used it in the last few years. It needs the Chrome browser in both ends to work. Once setup it may be less intimidating as everyone is familiar with the browser. It needs an helper app to be installed. Once that is done, the Chrome browser acts as both the client and the server.
However, as others have pointed out, it can be finicky to setup, particularly if you try to adjust too many settings from their default values.
Hope this helps