VNC, a tool that allows you to remotely access the desktop of a computer, has a long history and has been available in many shapes and forms. Not entirely surprising, plenty of free VNC Servers and VNC Clients are available for Windows and Linux, but the selection for MacOS X appears rather limited.
Sure, there are a lot of VNC clients for MacOS X … but hardly any of them are free,… but why install yet another application when you already have a VNC Client and Server installed?
In this article, we will use the build in VNC Server and VNC Client … it comes with your Mac … for free!
A little VNC background info
VNC, or Virtual Network Computing, was originally developed by the Olivetti & Oracle Research Lab (doesn’t exist anymore) which later spun off an organization called RealVNC in an attempt to keep VNC available.
VNC is a graphical desktop sharing system that allows a user to remotely control another computer, by seeing the screen of that computer on their own computer and using their own keyboard and mouse to control the other computer. For remote display, simply put, VNC keeps sending screenshots to the VNC client as JPEG pictures by means of the so called RFB protocol. The JPEG compression can be changed based on the available bandwidth – sometimes resulting in very poor image quality when bandwidth availability is very limited.
Microsoft RDP is not VNC …
Personally I prefer RDP, Microsofts’ Remote Desktop Protocol, but MacOS X does not support RDP as a server protocol.
RDP seems more robust and the graphical display or the remote computer’s screen typically are much better. The better image quality is because RDP is “semantic”, meaning: it’s aware of controls, fonts, etc. which means that these controls will be drawn by the client application thus sending much less data to the client application and a much cleaner display of the screen of the controlled computer.
Note : You can get a free RDP Client from Microsoft so you can remotely control Windows PC’s.
For VNC to work you will need a VNC Server and VNC Client.
How VNC works (simplified)
In the illustration above:
A is the HOST computer, which is running a VNC Server application. This will be the computer that will be remotely controlled.
B is the CLIENT computer, which is running a VNC Client application. This is the computer that will control the other computer remotely.
1 is the stream of screenshots of the desktop of the computer that is going to be remotely controlled. The screenshots are send over a network connection so that the VNC Client software can display the desktop pictures.
2 is the stream of mouse moves and key strokes from the Client, send over a netwokr connection as well, so that the server can actually execute the,
VNC Server or Enabling Screen Sharing
The VNC Server is the application running on the computer, or device, which screen is being shared. This can be your Mac, a Windows or Linux PC, or even an Android tablet, or iPhone (jailbreak needed to run Veency, the VNC server for iOS).
The main purpose, besides login and other security gimmicks, is to provide access to the computer that is running VNC server by sending “screenshots” to the client, and to translate incoming mouse movements or keyboard strokes.
MacOS X has a VNC server build in … which can be ENABLED or DISABLED in the “System Preferences”.
Click the icon in the upper left corner and from the menu that opens, choose “System Preferences…“. In the System Preferences click “Sharing“.
You’ll see a list of services you can enable. The one to enable the VNC Server is called “ScreenSharing“, Apple’s lingo for “VNC”, which can be referred to as “Apple Remote Desktop” as well.
MacOS X – Enable build in VNC Server
Once you check the box in front of “Screen Sharing”, the little light on the right will go from gray to green and the text will state that Screen Sharing is switched on (see picture below) – Your VNC Server is running and this computer can now, optionally, be controlled by another computer.
To access the your computer, from another computer, simply enter the indicated IP Address (see also: Home Network Basics) in your VNC Client of choice. In the illustration above the IP Address is 192.168.1.101 (in your setup this IP Address is very likely different).
Using a regular VNC Client …
When you’re planning on accessing your Mac using a regular VNC Client like ThightVNC or RealVNC (so, not the provided Screen Sharing tool from Apple), then:
1) make sure to click the “Computer Settings…” button and
2) in the dialog check the “VNC viewers may control screen with password” option and enter a password.
Screen Sharing for regular VNC clients
A VNC Client is the otherside of the story. It is the program on the computer that is controlling the other computer. It’s main purpose is to display the “screenshots” of the controlled computer, as send by the VNC Server, and to send mouse moves and keyboard strokes to the VNC Server on the computer that is being controlled.
There are lots of VNC Clients out there, and strangely enough … they charge money for something you already have on your computer.
Note : RealVNC is free and has a very suitable VNC Client, but why install more software if you don’t really need to?
MacOS X, if I’m not mistaken since 10.4, has a VNC Client installed already. It’s tucked away pretty good though – not sure why Apple did that.
Option 1: Use Safari
This is probably the easiest way to open the VNC Client called Screen Sharing. This only works with Safari.
Simply open Safari and enter “vnc://” followed by the IP Address of the VNC Server, for example: “vnc://192.168.1.109”.
Press ENTER when done and the Screen Sharing app opens.
MacOS X – Open VNC Client through Safari
Option 2: Use the Screen Sharing App directly
The Screen Sharing app is hidden in the folder “/System/Library/CoreServices/” or “/System/Library/CoreServices/Applications” and to get there you can use Finder. From the Finder menu choose “Go” “Go to Folder…” and enter “/System/Library/CoreServices/” (without the quotes) in the dialog that opens. Finally click the “Go” button, and in the file list you’ll find “Screen Sharing” (or “Screen Sharing.app”). Double click the app and a window will open, asking for an IP Address:
Screen Sharing app asking for an IP Address
Enter the IP Address of the VNC Server and click Connect and the screen of the remote computer will be shown and can be controlled right from your desktop. When connecting to another Mac, you will most likely be asked for a password.
Tip : You could of course make an alias of the “Screen Sharing” app and copy the alias into your utilities folder (“Applications” “Utilities“).
Location of Screen Sharing.app changed as of Mojave
Thanks to Alan: The location of the Screen Sharing app seems to have changed as of MacOS X Mojave to the following locations (still valid under Catalina!):
Remote Control through the Internet
It is possible to use VNC remotely – meaning for example while traveling control your computer at home, or control the computer of your mom helping her with her computer. Like I said: it is possible … but I wouldn’t recommend going through the hassle when you can use easier, free and much more secure services like LogMeIn and Team Viewer. No need for Port Forwading or putzing with your firewalls.
Personally I prefer LogMeIn, as it seems less complicated to get started. But once you’re familiar with it, Team Viewer offers a very good service as well. I would recommend Team Viewer for those of you who use remote control to assist others frequently. LogMeIn however, I would recommend if you more often remotely control your own computers.
Both LogMeIn and Team Viewer have clients for mobile devices as well, like for the iPhone, iPad and Android devices – allowing you to remotely control your home computer from your phone or tablet. Obviously this is great when traveling. Controlling your remote computer takes a little getting used to, but it most certainly works.