Why you might WANT to do this
Virtual Private Networks (VPNs) are very useful, whether you’re traveling the world or just using public Wi-Fi at a coffee shop in your hometown. But you don’t necessarily have to pay for a VPN service—you could host your own VPN server at home.
Your home Internet connection’s upload speed will really matter here. If you don’t have much upload bandwidth, you may just want to use a paid VPN service. Internet service providers usually offer much less upload bandwidth than they do download bandwidth. Still, if you do have the bandwidth, setting up a VPN server at home might be just the right thing for you.
A home VPN gives you an encrypted tunnel to use when on public Wi-Fi, and can even allow you to access country-specific services from outside the country—even from an Android, iOS device, or a Chromebook. The VPN would provide secure access to your home network from anywhere. You could even allow access to other people, making it easy to give them access to servers you’re hosting on your home network. This would allow you to play PC games designed for a LAN over the Internet, too—although there are easier ways to set up a temporary network for PC gaming.
VPNs are also useful for connecting to services when traveling. For example, you could use the US version of Netflix or other streaming sites when traveling outside the US.
Why You Might Not Want to Do This
If you’re like the vast majority of home internet users, you’ve got extremely limited and possibly slow upload bandwidth, and you might even have bandwidth limits or caps—unless you’ve got gigabit fiber at home, setting up your own VPN server is going to be the slowest option you can choose.
The other problem is that some of the biggest reasons to use a VPN are to shift your geographic location to somewhere else to bypass geographical locks on websites or streaming services or mask your location for privacy reasons—and a home VPN server isn’t going to really help you with either one of these scenarios if you’re connecting from your home area.
Using a real VPN service is going to give you the fastest speeds, geo-shifting, and location masking, without any of the trouble of setting up and maintaining a server for yourself. The only downside of a real VPN service is that it’ll cost you a few dollars a month.
It’s also worth mentioning that if you setup a VPN server at home instead of using a third-party VPN service, you should make sure that it’s always patched at all times for security holes.
Option One: Get a Router With VPN Capabilities
Rather than attempting to do this yourself, you can buy a pre-built VPN solution. Higher-end home routers often come with built-in VPN servers—just look for a wireless router that advertises VPN server support. You can then use your router’s web interface to activate and configure the VPN server. Be sure to do some research and pick a router that supports the type of VPN you want to use.
Option Two: Get a Router That Supports DD-WRT or Other Third-Party Firmware
Custom router firmware is basically a new operating system you can flash onto your router, replacing the router’s standard operating system with something new. DD-WRT is a popular one, and OpenWrt also works well.
If you have a router that supports DD-WRT, OpenWrt, or another third-party router firmware, you can flash it with that firmware to get more features. DD-WRT and similar router firmware include built-in VPN server support, so you can host a VPN server even on routers that don’t come with VPN server software.
Be sure to pick up a supported router—or check your current router to see if it’s supported by DD-WRT. Flash the third-party firmware and enable the VPN server.
Option Three: Make Your Own Dedicated VPN Server
You could also just use VPN server software on one of your own computers. You’ll want to use a computer or device that’s on all the time, though—not a desktop PC you turn off when you leave home.
Windows offers a built-in way to host VPNs, and Apple’s Server app also allows you to set up a VPN server. These aren’t the most powerful (or secure) options around, though, and they can be a bit finicky to set up and get working right.
You can also install a third-party VPN server—like OpenVPN. VPN servers are available for every operating system, from Windows to Mac to Linux. You’ll just need to forward the appropriate ports from your router to the computer running the server software.
There’s also the option of rolling your own dedicated VPN device. You could take a Raspberry Pi and install OpenVPN server software, turning it into a lightweight, low-power VPN server. You could even install other server software on it and use it as a multi-purpose server.
Bonus: Host Your Own VPN Server Elsewhere
There’s one more do-it-yourself option that’s halfway between hosting your own VPN server on your own hardware versus paying a VPN provider to provide you with VPN service and a convenient app.
You could host your own VPN server with a web hosting provider, and this may actually be a few bucks cheaper a month than going with a dedicated VPN provider. You’ll pay the hosting provider for server hosting, and then install a VPN server on the server they’ve provided to you.
Depending on the hosting provider you’ve chosen, this can be a quick point-and-click process where you add the VPN server software and get a control panel to manage it, or it may require pulling up a command-line to install and configure everything from scratch.
When doing setting up a VPN at home, you’ll probably want to set up dynamic DNS on your router. This will give you an easy address you can access your VPN at, even if your home Internet connection’s IP address changes.
Be sure to configure your VPN server securely. You’ll want strong security so no one else can connect to your VPN. Even a strong password might not be ideal — an OpenVPN server with a key file you need to connect would be strong authentication, for example