One of the most-used programs on my Mac is the Cisco VPN Client, which is what I use to connect to Macworld’s VPN when posting articles such as this one. (OS X’s built-in VPN client also works, but it also logs me out of and then back into iChat every time I connect or disconnect from the VPN. The Cisco VPN Client doesn’t have this annoying problem, so I use it instead.)
While the Cisco VPN Client works well most of the time, sometimes when I try to launch the application, I’m greeted with this error message in place of the usual connection dialog:
Error 51: Unable to communicate with the VPN subsystem. Please make sure that you have at least one network interface that is currently active and has an IP address and start this application again.
The error is clearly incorrect, because my machine’s networking capabilities are otherwise fine—I can browse the net, send and receive e-mail, and connect to other machines in the house. I don’t get the error message all the time, and I don’t really know what causes it. It does seem to happen more often if I’ve slept and woke the machine, or moved it from one defined location to another, but even then, it’s not predictable. All I know for sure is that it’s annoying, because (until recently) the only fix I was aware of was to reboot the machine.
One day, after probably the second or third time I’d restarted my machine, I decided there must be a better solution, so I went digging to see if anyone else had already found one—and they had. As detailed on the linked site, the solution is a relatively simple command that you execute in Terminal (found in Applications -> Utilities). After discussing the Terminal command with a friend, he came up with an even simpler version that works just as well:
sudo SystemStarter restart CiscoVPN
You’ll need to be an administrative user to run this command, and provide your admin password when asked. You won’t see any output from the command; the Terminal prompt will return when it’s done. After using the above command, the Cisco VPN Client should run without any problems—at least until the next time the problem occurs.