A number of years ago, a forward-thinking company (I forget which one) put an ad on TV that zoomed in on a tablet-looking device on the arm of a beach chair. The punch line was, “FAX from the beach? You will.” Well, that was a long time ago, before the dot-com bubble burst and before the Internet turned FAX into one of those quaint twentieth-century technologies that nobody remembers fondly. And we did FAX from the beach, just not quite that simply. Even before the now-archaic ad broke, we were dragging thermal-paper FAX machines and luggable computers with modems off to time-share escapes. The extension cords and phone drops didn’t quite reach to the beach, but we could see it from our room.
Today, the “FAX from the beach” mode is the art of remote computing. If you have a Unix system, or the right combination of Windows applications, and the blessings of the Network Police at $WORK, you can “be at your desk” from almost anywhere on the planet, thanks to WiFi almost everywhere. But, technology is, as we all know, not always infallible. Cell phone coverage isn’t everywhere for every carrier, and WiFi systems get overloaded at inconvenient times, or the hotel or coffee shop decides your time is up and logs you off their system until you refresh your login. And, at best, shared WiFi connections are slow, compared with your network at work or even at home.
Graphical user interfaces are all the rage, but waiting for a Virtual Network Console (VNC) session to crawl down the screen and fill in the detail is painfully slow. Most of the time, VNC works pretty fast, as long as you are on a local network, or there are no firewalls between you and the remote host. Since running without a firewall is corporate and financial suicide, regardless of your base operating system, the only safe way to run VNC is either through an SSH tunnel with port forwarding, which is an incredibly complex process, or to run the viewer on the remote host with X11 forwarding, which SSH handles internally. Unfortunately, X11 is way too chatty to use over a slow link, so the initial display creeps down your screen, taking several passes before it is ready to use. Then, the mouse tends to react sluggishly, making the whole experience a bit less productive than desired.
One thing that does help is to use the -C option on the slowest of the SSH links to use compression on that link. And, there may be multiple links, since a really secure connection will relay through a gateway server straddling the corporate firewall. But, this becomes an extra planning process and procedural step, complicating the process. But, if you need a 24×7 connection to a remote host, this might be your only option. One advantage to using VNC is the persistence of the remote desktop, which can be a representation of the actual console display on the remote, or, in the case of Unix, a separate login display. Unix, being a multi-user system, has had the capability of multiple graphical desktops over the network for decades, but VNC transmits a single window containing a “picture” of the desktop instead of dozens of window and widget objects that compose an X Window desktop.
In recent years, vendors have employed remote-host initiated connections, using HTTP to exchange host display information with the support technician’s computer. This technology is also available through third-party services, where both the remote and local hosts connect through the external service. To securely effect this type of remote connection, the connection information must be passed from the operator of the remote host to the operator of the local host, so this method is also limited in scope. But, when it works, it is adequate, as compression is built into the connection protocols.
For Unix administrators and programmers, there is another method of connecting to a remote computer with the safety of a persistent remote process: the ‘screen’ utiitity program creates virtual command-line text terminals. ‘screen’ allows multiple terminal sessions to be run on the remote host under one remote login session.
One of the big advantages of using persistent remote connections is the ability to connect, say “at the beach,” or in a coffee shop, start up some processes, then disconnect and reconnect later from another location, even from another computer. Most servers now have “Lights Out Management” devices built in, so we can even turn the power on and off and monitor the start-up processes remotely. These tools enable us twenty-first century leisure-seekers to work from the beach as if we were in our windowless cubicles in the basement next to the data center. At least we have the satisfaction that, if we had looked up from our computer, we would have been able to see a spectacular sunset. Hey, it’s dark out! When did that happen? Hmm. Tomorrow night, we’ll be in a different city, but the view will be the same–unless I change my desktop background picture…