Hacker News new | past | comments | ask | show | jobs | submit login
Ask HN: What is the best setup to work remotely with GUI on Linux?
59 points by TheCabin 14 days ago | hide | past | web | favorite | 37 comments
In the past I tried a couple of setups using different protocols (VNC / RDP) with varying server / client software but was never really satisfied. Since this is a common problem, I am sure that some people here on HN have a well tested configuration for this and might be willing to give some advice.

Scenario I am interested in: * Server machine runs graphical applications (potentially GPU / OpenGL intensive) * Client can connect via SSH and is supposed to see graphical application (full desktop or just application)

Thanks for any recommendation!

I recommend Parsec. I use it for gaming on remote Windows machines, but the Linux server works well too. I can access from my Chromebook or laptop with enough fidelity and good networking that allows me to do nearly anything.

I still suck at CounterStrike, but that is not the software's fault.


>gaming on remote Windows machines

I have a linux desktop, but would love to do some windows gaming remotely. Isn't the latency introduced by gaming over VPN a problem? If not for single-player, then certainly multiplayer?

It's good for turn based games, but twitchy action games and shooters will suffer due to the latency. If you wanna play Stellaris or something over this and all you have locally is a potato machine, I'd highly recommend it.

Parsec is a direct tunnel out of my home network, no VPN required. It is not ideal for CS:GO and such, but You Don't Know Jack, Cities: Skylines, and others are pretty good. 60 fps at 1080p to my Chromebook.

Parsec doesn't support remoting into linux machines.

Why not? It is a supported platform: https://parsecgaming.com/downloads

It's a supported client but not a supported host.

Can we remote into the machine with it?

Yes, full GUI remote access with a Parsec username and password and local machine auth as well.

I'm pretty happy with VNC with JPEG compression (which not all VNC implementations support). Depending on the use-case, I either use TigerVNC `vncserver` (creates a virtual X11 display, in my experience OpenGL performs very poorly), or TigerVNC `x0vncserver` (which attaches to a real/existing X11 display and polls it to serve it over VNC; OpenGL performed normally).

TurboVNC is a fork of TigerVNC that has improved OpenGL performance. I can't comment on it too much.

I either connect to VNC directly on :5900 if I'm on the same LAN, or I `ssh -L5901:localhost:5900 server-box`, then `vncviewer localhost:5901`.

I agree, VNC+JPEG is a good fit for this kind of thing.

I posted a comment recommending TurboVNC earlier, but it looks to be hidden. It compared favorably with TigerVNC when I tested both. VirtualGL support is baked right in, though of course you have to first set up VirtualGL itself. That'll allow you to use the GPU on a headless machine and share it between users. (with some caveats)

If the applications are running on Windows I tend to use RDP, if they are running on Unix I tend to use VNC.

Running Firefox over a WAN is slow-going with X11 and ssh, VNC is much faster. The first one I tried was tightvnc, and it did the job for what I needed, so I have stuck with that.

X over SSH works for individual apps you launch from the command line. I do this for Calibre on my home server. I have never tried with a desktop. It is simply a config in the SSH config and then an option when launching SSH.

Good recommendation. I've used this approach before but somehow had the impression that this doesn't work for OpenGL applications. Now that I think about it, I should simply give it a shot.

SSH X11 forwarding won't have access to the GPU. It also tends to perform very poorly in all but fairly low-latency networks.

You may want to activate ssh compression (see ssh -C).

If you're remote it can speed up X forwarding and make the whole application more reactive.

Have you looked into Apache Guacamole (http://guacamole.apache.org/)

Once you install Apache Guacamole on the remote machine, you can access it via your web browser

Well, what varying server / client software did you try? I'm pretty satisfied with xrdp on Ubuntu 18.04 Desktop.

I did not test GPU intensive software, but its easy to install, runs nearly out of the box and client software is available for Windows, Linux and MacOS:


Which VNC implementation(s) did you try? TurboVNC was developed with OpenGL applications in mind. It's from the same developer as VirtualGL, so the two are well-integrated.

It does take some tweaking of the compression parameters for good performance. I also had better luck using its native TLS encryption rather than tunneling over SSH.

x2go for opensource or nomachine if you don't mind paying are good options.

They are better than X over ssh and usually a little better than rdp

They also have good support for different screen sizes, and multi monitor differences between machines.

Awesome, thanks! Didn't hear of either yet.

nomachine worked great when I tried it (granted, that was a few years ago). Definitely worked better than RDP at that time!

GPU and OpenGL intensive? NoMachine Terminal Server - that's what our company uses https://www.nomachine.com/terminal-server

Why not something like TeamViewer?


In principal a good option, but can't use it due to policies.

Weren't they hacked?

Just want to give a shoutout to my trusty friend Xvfb. Used many times to remotely & automatically operate GUI apps on Linux.

there's nothing acceptable over ssh

you can do steam in-home streaming over zerotier.

it's actually faster than geforce now

i have a raspberry set up so that i can plug it anywhere and work on my home computer

latency is so low that shooters are very much playable

you can use steamlink hardware as a client, or the newish raspberry pi release

yea steamlink is amazing BUT as far as I know, it cannot be used for arbitrary desktop streaming. You can certainly stream games wonderfully, but that's it.

RealVNC Enterprise works fantastic for me. ¯\_(ツ)_/¯

AWS has workspaces. They're not super cheap but it's all handled for you.

Browser, mobile, desktop, etc.

No linux client

login into your machine using ssh export your display to your ip xstart and the you'll have the complete remote desktop running on your machine. Of course you'll need a xserver emulator running on your local client.

We use NoMachine at company.

I've had decent success using Xpra.

Could you give more details or point to documents which helped you reaching "decent success" level? Xpra can be a bit difficult to configure due to the amount of possibilities available.

Applications are open for YC Summer 2019

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact