E.T. Print Home: Remote Printing with Windows XP
Imagine being at work or away from your home computer. You would like to print a document to your remote printer but you can't, because, well, you aren't there! To be able to print remotely, you might think you need a machine running a server-flavored version of Windows, like Windows 2003 Server or something that is way beyond your budget. Contrary to popular belief, you can set up Windows XP as a VPN server, thereby giving you access to your printers back home. In this article, I'll show you how to do just that.
Creating Your Windows XP VPN Server
You'll start out by preparing your home Windows XP machine to act as a VPN server.
Since you're trying to share your printer over the Internet, we need to make sure it's shared. If you don't already have a printer shared on your home network, go to your Control Panel and double-click on the Printers and Faxes icon. In the subsequent Printers and Faxes folder, right-click on the icon for the printer that you want to share over the Internet through your VPN. Choose the "Sharing..." context option. Then, click on the Sharing tab and choose the "Share this printer" option. Finally, provide a Share name for your printer. The Share name represents the name you want displayed on other computers in your network. Go ahead and click OK to finish up the sharing process.
At this point, the printer resource you decided to share should be shown in your Printers and Faxes folder with a hand holding the printer resource. Before trying to share your printer through your VPN though, I would suggest that you make sure that your printer is shared properly in your local network, by first sharing it with another machine in your local network. Before I move forward, I'll take it for granted that you have this done.
I am also going to assume that you have a static broadband connection at home and that your broadband service provides you with a static IP address. If you don't have a static IP address, you might want to consider using a dynamic DNS service like the one offered by ZoneEdit.com.
I am going to also assume that you're familiar with how to forward ports on your broadband router, if you use one.
To connect to the VPN server from the internet, you will need to forward port 1723 to the static IP address of your Windows XP machine. Some routers show a setting called PPTP Pass Through, and if your router has such an option, you must enable it. If you're running Windows XP Service Pack 2, you'll also need to make sure that the Windows Firewall allows for an Incoming Connection VPN (PPTP) on port 1723.
To prepare your Windows XP machine as a VPN server, double-click on the Network Connections icon in your Control Panel. From there, choose the File-->New Connection... option. In the subsequent New Connection Wizard (shown in Figure 1), click Next.
Figure 1 Launching the New Connection Wizard
In the next screen, specify that you want to set up an advanced connection (as shown in Figure 2).
Figure 2 Setting up an Advanced Connection
Next, specify the "Accept incoming connections" option (as shown in Figure 3). This option will enable your remote workstation to connect to your VPN server, thereby allowing you to have access to our home printer.
Figure 3 Opting to Accept Incoming Connections
Next, when the Wizard asks you which devices you want to use for your incoming connections, don't check anything and click Next, as shown in Figure 4.
Figure 4 Skipping over the Devices for Incoming Connections Screen
In the subsequent screen, you need to specify the "Allow virtual private connections" option. Doing so will tell Windows to modify the Internet Connection Firewall on the machine to allow for an incoming VPN connection, thereby allowing your remote box to tunnel into your home machine.
Figure 5 Virtual Private Connections
In the following User Permissions screen, you need to pick the user accounts that you want to be able to use with your home network resources (for example, your home printer) over the Internet. It's important to remember here that you need to make sure that the user account you'll be using on your remote workstation is given the permission to connect to your VPN server. If you need to, at this point you can use the Add button to Add another account. In Figure 6, I specified that I want the user Bicky to be able to connect to my VPN server.
Figure 6 Specifying Users which Can Connect via your VPN Connection
In the subsequent Networking Software screen, make sure the "File and Printer Sharing for Microsoft Networks" option is checked. This is because you need for the Printer sharing to be enabled to access your printer through your VPN. Next, choose the Internet Protocol (TCP/IP) option and click on Properties.
Figure 7 Making Sure the File and Printer Sharing for Microsoft Networks is Checked and Opening the TCP/IP Properties
Check to see that the "Allow callers to access my local network" option is checked and that the "Specify TCP/IP addresses" option is chosen under the "TCIP/IP address assignment" area. You'll also need to specify a range of IP addresses for incoming VPN connections. An easy way to figure out a valid range of TCP/IP addresses is to use the IPCONFIG utility of DOS and see the IP address that your router assigns to your machine. For example, my router gives my networked machines a 192.168.0.Y address. Accordingly, I went ahead and specified a range of 192.168.0.200 to 192.168.0.210, thereby allowing for 11 possible incoming VPN connections, as shown in Figure 8.
Figure 8 Specifying a Range of TCP/IP Addresses for Incoming Connections
Click the Next button, when you get back to the Networking Software window, and then click the Finish button (see Figure 9), in order to complete your VPN connection creation.
Figure 9 Completing the New Connection Wizard
A subsequent visit to the Control Panel's Network Connections screen should show you an Incoming Connections icon, as shown in Figure 10.
Figure 10 Seeing Your New Incoming Connection
At this point we are finished configuring our VPN server. We are now ready to move on to our client workstation.