
Ask HN: What is the best setup to work remotely with GUI on Linux? - TheCabin
In the past I tried a couple of setups using different protocols (VNC &#x2F; RDP) with varying server &#x2F; 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.<p>Scenario I am interested in:
* Server machine runs graphical applications (potentially GPU &#x2F; OpenGL intensive)
* Client can connect via SSH and is supposed to see graphical application (full desktop or just application)<p>Thanks for any recommendation!
======
hexadec
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.

[https://parsecgaming.com/](https://parsecgaming.com/)

~~~
dajohnson89
>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?

~~~
twoquestions
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.

------
LukeShu
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`.

~~~
lclc123
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)

------
mcgrath_sh
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.

~~~
TheCabin
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.

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

------
anujsharmax
Have you looked into Apache Guacamole
([http://guacamole.apache.org/](http://guacamole.apache.org/))

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

------
sandreas
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:

[https://help.ubuntu.com/community/xrdp](https://help.ubuntu.com/community/xrdp)

------
lclc123
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.

------
tempfasowsl
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

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

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

------
daverobbins1
Why not something like TeamViewer?

[https://www.teamviewer.com/en/download/linux/](https://www.teamviewer.com/en/download/linux/)

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

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

------
algorithm_dk
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

~~~
rubicon33
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.

------
akulbe
RealVNC Enterprise works _fantastic_ for me. ¯\\_(ツ)_/¯

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

Browser, mobile, desktop, etc.

~~~
phakding
No linux client

------
bigjojoto
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.

------
tonyaiken
We use NoMachine at company.

------
Samon
I've had decent success using Xpra.

~~~
ta3057
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.

