Some 60 million users already have the Teamviewer  commercial remote control solution running on Windows and Mac OS X. Because of the many requests from customers, Teamviewer's manufacturer now provides a variant for Linux in version 5. Teamviewer facilitates remote access to other computers across a network. The only requirement is that the machine at the other end is also running Teamviewer. Teamviewer provides all this functionality in a standalone program; special client or server versions are not available.
Teamviewer automatically generates a globally unique ID on each machine. When it is launched, Teamviewer generates a new password that the computer on the opposite end of the connection can use to access the local machine. This scheme prevents anybody who has ever logged in to that machine from doing so again without the owner's authorization. You can keep the newly generated password or define one yourself.
Remote access without port forwarding works across routers and firewalls thanks to one of the globally distributed Teamviewer servers on the web, which initiates a 256-bit encrypted UDP connection between the two parties. If a proxy server or a firewall with content filtering makes this connection impossible, the transfer is handled directly by the Teamviewer server. The HTTP label in the window header, rather than the UDP label, identifies this kind of connection. If you are worried about using a third-party server, Teamviewer will sell you your own authentication server on request.
Teamviewer will even let you remotely control computers that only have a modem connection. The software vendor improved compression in version 5 to reduce the amount of data crossing the wire. Video, Flash banners, and other applications that permanently change screen content are problematic, but a fast DSL connection will let even those types of applications run at an acceptable speed.
Private users can run the program free of charge, and the vendor offers commercial licenses for commercial use. Teamviewer is available for Windows, Mac OS X, and Linux; any platform can remotely control any other platform. An iPhone client, available after registering for free online, lets you remotely control a computer as well.
The web and iPhone clients are the only versions that can only control, rather than work in both directions. The other variants let you control and be controlled, and you can even change directions mid-flow.
Teamviewer offers downloads of deb and RPM versions 5.0.8206 packages for Linux, along with an X64 deb package and a simple tarball that you don't even need to install. Teamviewer for Linux is still beta, and the vendor asks for feedback and bug reports.
The program is based on a modified version of Wine, although the vendor has made some Linux-specific changes (e.g., to accelerate reading of X server graphics). Although it uses Wine, it is not just a copy of the Windows version. A native Linux version is not available right now, but the vendor is considering creating one depending on acceptance and popularity of the Wine-based version.
The program offers a plethora of built-in remote control solutions, such as the ability to change direction, reboot, simulate a Ctrl+Alt+Del key press, and transfer files conveniently between two machines. Multiple logins on a single machine are also supported (e.g., for training purposes in which you need to demonstrate something to a group of users).
The VoIP and video chat function introduced in version 5 is also useful, and the application relies on free codecs: Speex for audio and Theora for video. Video on Linux only works in the receiving direction right now. V4L-connected Linux webcams are not currently supported by Teamviewer.
The Linux version has a couple of other restrictions: The whiteboard function, which lets users draw on a whiteboard at the same time, and VPN support both fail to provide the goods. The program does not transmit virtual consoles, so you need an X server. The reboot, Ctrl+Alt+Delete key sequence, and Disable Input/Display on remote computer functions all require the remote machine to run Windows – Mac users have a similar problem. And, the same thing applies to changing the resolution and removing the wallpaper (to avoid unnecessary data traffic).
In the Lab
The Linux version works fairly well despite its beta status. One thing that always worked during testing – no matter what network the computers used or what firewalls they were hiding behind – was the connection setup. Teamviewer has thus mastered the most important discipline in remote control with flying colors. Also, no version problems emerged; a connection between a v4 Mac client and a v5 Linux client worked without problems.
The program offers three operating modes when it launches (Figure 1): Remote support, Presentation, and File transfer. Remote support lets you remotely control a system, and presentation mode lets you demonstrate an action to one or multiple users on their own machines. File transfer leaves out the administrative and graphic functions and simply sends files to, or retrieves them from, a remote machine. This mode is accessible at any time during normal remote support.
From the Teamviewer startup window, use Extras | Options to change various settings, such as your own computer name, or to assign a fixed password for remote logins. Also, you can specify which privileges you want to grant a remote user accessing a system across the wire. Teamviewer will also accept a whitelist or blacklist of computers that are allowed or not allowed to access your computer.
File transfers occur in a separate window (Figure 2) that features a two-column view, with your own computer on the left and the remote computer on the right. To transfer files, just select them and click the button above the column. This seems a little convoluted; drag-and-drop, or at least double-clicking, to transfer files would make more sense. The vendor aims to change this soon. Also, the Windows-style Wine symlinks and drive letters are a little irritating for Linux users.
In normal remote support mode, a hideable Teamviewer function bar is displayed on the remote desktop, and you can use it to access a full set of important remote control functions. On the bottom right is the connection monitor, which you can also hide and which tells you who is accessing the computer across the wire (Figure 3).
If you so desired – again this could be useful for training purposes – the program will use screencasting to monitor activities on the remote computer. The screencast files you can save only contain the data stream transmitted across the wire by Teamviewer and are thus quite compact. Administrators can create a list of computers for single-click access to remote machines.
If needed, you can change the transmission focus. The High speed option reduces the color depth to speed up the transmission. If you prefer perfect image quality at the cost of smoother operations, you can opt for this in the View menu. The Automatic setting changes the mode to reflect the connection. Unfortunately, Teamviewer changes the standard gray of some desktops (including Gnome on Ubuntu) to a horrible pink. Because I didn't notice any speed boosts in reduced color mode, you might prefer to keep a high-quality mode, for Linux-to-Linux connections, at least.
A couple of options make the remote support experience smoother. To begin with, you will want to disable desktop effects, such as those provided by Compiz. Teamviewer only transfers the window content and not the windows, so window zooms and soft fades just create unnecessary traffic. A Flash blocker for the browser is also a good idea for the same reason. Animated ads cause an unnecessarily high level of data – and the bigger the ad space, the worse the problem.
The older the distribution I tried, the more difficulties I had in testing. The program performs better and is more stable on more recent versions; for example, virtually no problems occurred in connections between Ubuntu 9.04 and 9.10. I definitely advise against changing the resolution on remote Linux clients, because it typically caused Teamviewer to crash on the client. Also, you shouldn't change the native system settings during remote access, because that can interrupt the data stream from the remote machine. Another failing: The mouse cursor doesn't change its appearance from an arrow to a hand, for example, if it moves outside of a window or title bar. The vendor has promised to fix this before the final release.
Teamviewer is an easy-to-use and practical piece of software. Even if you aren't an administrator or console jockey, it gives you a really simple approach to managing machines remotely – or for accessing your computer when you're on the road. Teamviewer works quite well on Linux, even though the beta had a few bugs. The vendor promises to have everything resolved by the time of the final release. One of Teamviewer's main strengths is its cross-platform compatibility between Linux, Windows, Mac OS X, and even web browsers and the iPhone. Also, the connection always works.