x2go

Video: Fedora 23 LXC - Debian SID and CentOS 7 XFCE containers via X2Go

| | | | | |

Being a LONG-TIME OpenVZ user, I've been avoiding LXC some. Mainly because it wasn't quite done yet. I thought I'd give it a try on Fedora 23 to see how well it works... and the answer is surprisingly... fairly well. I made two screencast (without sound). I just used the lxc-{whatever} tools rather than virt-manager. Both containers just use the default network config (DHCP handed out via DNSMasq provided by libvirtd) which is NAT'ed private addresses... and were automatically configured and just worked.

Here's a list of all of the container OS Templates they offer on x86:

centos 6 amd64 default 20160205_02:16
centos 6 i386 default 20160205_02:16
centos 7 amd64 default 20160205_02:16
debian jessie amd64 default 20160204_22:42
debian jessie i386 default 20160204_22:42
debian sid amd64 default 20160207_11:58
debian sid i386 default 20160204_22:42
debian squeeze amd64 default 20160204_22:42
debian squeeze i386 default 20160204_22:42
debian wheezy amd64 default 20160204_22:42
debian wheezy i386 default 20160204_22:42
fedora 21 amd64 default 20160205_01:27
fedora 21 i386 default 20160205_01:27
fedora 22 amd64 default 20160205_01:27
fedora 22 i386 default 20160205_01:27
gentoo current amd64 default 20160205_14:12
gentoo current i386 default 20160205_14:12
opensuse 12.3 amd64 default 20160205_00:53
opensuse 12.3 i386 default 20160205_00:53
oracle 6.5 amd64 default 20160205_11:40
oracle 6.5 i386 default 20160205_11:40
plamo 5.x amd64 default 20160207_11:59
plamo 5.x i386 default 20160207_13:13
ubuntu precise amd64 default 20160205_03:49
ubuntu precise i386 default 20160205_03:49
ubuntu trusty amd64 default 20160205_03:49
ubuntu trusty i386 default 20160205_03:49
ubuntu trusty ppc64el default 20160201_03:49
ubuntu vivid amd64 default 20160205_03:49
ubuntu vivid i386 default 20160205_03:49
ubuntu wily amd64 default 20160205_03:49
ubuntu wily i386 default 20160205_03:49
ubuntu xenial amd64 default 20160205_03:49
ubuntu xenial i386 default 20160205_03:49

The first one shows the basics of LXC installation on Fedora 23 (per their wiki page on the subject) as well as creating a Debian SID container, getting it going, installing a lot of software on it including XFCE and most common desktop software... and accessing it via X2Go... and configuring XFCE the way I like it. This one was made on my home laptop and my network is a bit slow so I cut out a few long portions where packages were downloading and installing but everything else is there... yes including quite a bit of waiting for stuff to happen.


lxc-on-fedora-23-debian-sid-GUI-container.webm (25 MB, ~41.5 minutes)

The second video is very similar to the first but it is a remote ssh session with my work machine (where the network is way faster) and shows making a CentOS 7 container, installing XFCE and the same common desktop software, and then connecting to it via X2Go using an ssh proxy, and configuring XFCE how I like it. It was done in a single, un-edited take and includes a bit of waiting as stuff downloads and installs... so you get the complete thing from start to finish.


lxc-on-fedora-23-centos-7-GUI-container.webm (22.7 MB, ~31 minutes)

I recorded the screencasts with vokoscreen at 25 frames-per-second @ slightly larger than 720p resolution... and then converted them to webm (vp9) with ffmpeg @ 200kbit video. They compressed down amazing well. I recommend playback in full-screen as the quality is great. Enjoy!

Update on x2go

| |

I've been playing with / using x2go more lately and I sure do like it. I originally learned about it by reading the Fedora 20 ChangeSet and saw that it will be a new feature in the upcoming Fedora 20. I started using Fedora 20 shortly before the alpha release came out. Fedora 20 Beta was released on 2013-11-12... and I've been building my MontanaLinux remix about once a week. Anyway, I'm getting off track. Back to x2go.

I figured out how to make sound work. This FAQ entry did the trick for me.

I have used the x2godesktopsharing applet to connect to an existing X11 session and that works great too.

x2go has been making quite a bit of progress especially on Fedora / EL systems thanks to volunteer packager orionp (orionp on #x2go on the FreeNode IRC network). orionp is not only responsible for the Fedora 20 packages, but has also built them for Fedora 19 (currently in updates-testing) and EPEL6. I've been connecting to a number of different systems (physical, virtual KVM and OpenVZ containers) testing it all out. Who knew that an OpenVZ container could be a pretty good desktop system complete with sound? Sound does use a bit of network bandwidth so it is only appropriate for LAN and really fast WAN connections.

I've tried several desktop environments and in general, they work well. Some seem to tolerate multiple users more than others. For example, I don't think KDE handles sound for multiple users very well, whereas with XFCE it seems to work fine. x2go seems to outperform SPICE from my anecdotal experiences thus far. Multimedia works quite well except when I go beyond 1920x1080.

I still haven't tried x2go folder sharing (which uses sshfs which has always worked well for me), USB device access, nor printing. I haven't needed those features yet. The Microsoft Windows x2goclient works well.

There are a few bugs that orionp will be fixing ASAP. I reported this bug for the EPEL packages. Luckily there are easy work-arounds until the updates are done. I've learned a little about x2go troubleshooting as a result.

I also got a chance to install my Fedora 20 remix on a remote machine over x2godesktopsharing. I had to manually boot the target machine from LiveUSB which automatically logs in as user "liveuser". I enabled sshd, set a password for liveuser, enabled x2gocleansessions, ran x2godesktopsharing, enabled sharing... and then connected from my workstation and did the install. It went well. Thanks x2go developers!

Update: (25 NOV 2013) The x2go packages in Fedora 19 have been moved from the testing repo into updates. An updated x2goserver package has been submitted to the EPEL6-testing repo. I'll test it ASAP and if good, give it some karma.


Remote Desktop Access Update

| |

Anyone who has been following my computing adventures on this website for very long will probably already know I'm a big fan of remoting protocols. Ones I've used so far include SPICE, VNC, RDP, X11 redirection, X11 tunneled thru SSH, and NoMachine's NX 3.

There are two new developments in this area. The first is the recently released NoMachine NX4 and the second is x2go. I've had a chance to play with them both and what follows are my initial reactions.

NoMachine NX 4 - If you didn't notice, NoMachine finally released their NX 4 product line. I say finally because I think I saw the first "NX 4 is coming soon" blurb in the pages of Linux Journal magazine about 2.5 years ago. NoMachine has also totally redone their website for the new release. NX 4 is closed / proprietary software. They do offer a gratis download where you can have one user and you don't have to fill out any annoying forms to get to the downloads. If a single user meets your needs, you are good to go. If you want more users, pick out one of their products that meets your needs. Their commercial offerings allow for multiple users on a single host or a session broker to scale users across multiple servers.

What's new in this release? Besides moving to complete closedly software (NX 3 had GPL'ed libraries), NX 4 offers a lot of new features. The NX 3 protocol was basically an extremely efficient rejiggering of the X11 protocol and as a result, NX 3 only ran on servers that offered X11... primarily Linux. The NX 4 protocol is completely new / different and as a result they have made it multi-platform. In the past they had NX 3 client applications for Windows and Mac but not the server side. With NX 4, they now support Linux, Microsoft Windows and Mac OS X servers. So far I've only tried NX 4 on Linux but I'm sure Mac users are going to be very happy because their remote access options have been very limited.

NX 4 has gone a long way to add features that people want in a modern remoting protocol. For example, it now supports multi-media quite well even at fairly modest bandwidth limits. That isn't to say that it is magic but it does amazingly well. It supports sound and video. It has client side session recording. Files can easily be copied between client and server. I also believe client-side USB devices are supported although I have yet to try that. NX 4 has a new, modern interface that is pleasing. It is easy to use especially when you learn the config hotkey in the client (ALT+CONTROL+0). NX 4 is very scalable and can dynamically adjust to changing bandwidth conditions.

Some things I don't like: The NX 4 protocol no longer runs through SSH on port 22, as NX 3 did. NX 4 runs on port 4000... and a result I think it takes a little more effort to initially set up... mainly because anyone using a firewall will have open up a new port. If you are the one with control of the firewall that is no problem, but if not, it might take some effort. In the past, NoMachine had separate packages for the server and the client. Now there is only one package that includes both client and server... so if you want only the client, you are going to end up installing the server as well. I hope in the future they split the package in two again. I wonder if the single package is a marketing ploy or a sign that they didn't spend as much time on the packaging as they should have. At least they offer the Linux version in rpm, deb, and tar.gz formats.

Update: (25 NOV 2013) I got an email from No Machine's Gian Filippo who mentioned that they do have separate client and server packages but they are in the enterprise section. He also said that NX4 can still use ssh for transport except that it was extra work to do so and Windows and Mac users won't have sshd by default so ssh isn't the default. Again, I think this is an option in the enterprise packages.

x2go - The Fedora Project released Fedora 20 Alpha this week. Being the big Fedora fanboi that I am, I was reading about the new features in the Alpha release. Many of the new features caught my eye but the one relevant to this blog post is x2go.

x2go is based on the GPL'ed NoMachine NX 3 libraries. x2go is NOT the first project based on those... as the more well known FreeNX came first. Unfortunately the development of FreeNX stalled and the last updates seem to be from 2008. x2go appears to have picked up NX 3 ball and run with it. Not only have they modernized the code to run on contemporary systems but they have also added a number of new features. They supposedly have a session broker application that can scale connections across multiple hosts turning x2go into a more complete terminal services solution. I have only tried the simplest case of installing the server on a physical host as well as a KVM virtual machine and connecting to it from a single client. In the simple case, it works quite well. They supposedly have added sound, file sharing, and client-side USB... all running through SSH... but I haven't tried all of that just yet.

x2go is still based on X11 so the server side is not available for Microsoft Windows nor Mac OS X. They do have client applications for Windows and Mac. I tried the Windows client and it looked and worked great. x2go will be available in quite a few distributions via stock repos. Is x2go available for your preferred Linux distribution yet? I wish Fedora had x2go packages for Fedora 19 as it will be a few more months before Fedora 20 is released. I certainly hope the EPEL packagers will make x2go available for EL6 (and EL5 if possible) at some point and I expect it to be a stock package in EL7.

Overall, x2go works quite well.. and over a LAN it easily rivals SPICE... except maybe for video. I haven't had a chance to try it in lower bandwidth situations although I expect it to work quite well as NoMachine's NX 3 product line was excellent.

Conclusions - Which do I like best... NX 4 or x2go? Both have their pluses and minuses. I prefer FLOSS software but yes NX 4 has some additional capabilities that under certain conditions I might want. For example, if I wanted remote access to a Windows machine or a Mac, x2go is not an option. NX 4 is going to be a hard sell on Windows systems because Microsoft's RDP is there by default and well entrenched.

When Fedora 20 comes out and is my distro of choice, adding x2go will be a no-brainer. If it becomes available for EL, I'll use it there too. At this stage it is hard to say because I haven't tried out any of the more advanced use cases. How well does x2go scale? Which desktop environments are written well enough to accommodate multiple users? Once I've had more time with both of them I might have a more complete answer... but at this point I'm glad there are more options in remoting protocols. Which ones do you prefer?


Syndicate content