NFS is a really nice solution on Linux and I prefer it not only for the performance increase but because it incorporates into the filesystem really well to the point that an untrained person may not be able to tell that it is a network attached mount which makes using it on Linux much easier.
For example, I have a storage drive on my server mounted to /mnt/storage and I mount it on my client machine as /mnt/nfs-storage which means I can do something like this to backup files/whole directories from my client:
samba on Linux is not used. For Linux you can use SSH. Can you try SSH transfer from Linux to Linux that should be good speed too.
You just login to SSH by typing in the adressbar ssh:// On the other Linux a ssh service most run. If its not running. systemctl start sshd (in a terminal with root access) or if it doesn't exist you need to install it.
Symbolic links are just a pointer to the relative path and as I said before NFS is transparent as far as the client is concerned. As an example if you had the directory /mnt/Plex on your client and created a symbolic on your server from /mnt/Plex to /mnt/nfs/general the client will go to the /mnt/Plex directory on the client machine and not the server, that is why you are getting the error message, the link is pointing to the location on the client machine which doesn't exist.
If you are creating the NFS shares to directories I would recommend creating separate entries for path or to the top directory, such as /mnt/ on the server to /mnt/nfs-mnt on the client for example.
I must admit, I do this fairly often when I'm transferring massive files from one drive to another, its less convenient in some cases but can sure make the transfer take much less time.
but but still only 10 MB over SSH is slow. while samba is faster hits 100 MB. You sure the difference is this huge? or maybe that a Ethernet cable doesn't work correctly? Something must be wrong on a different level here.