Setting Up a VPN Service from Scratch

VPNs are extremely useful, and they make the web a much better place.

But you’ve probably asked yourself at one point – why pay for a VPN when I can set up my own?

Well, if you’re curious if it’s worth it or not, and what it takes to run your own VPN, keep reading.

How to Run Your Own VPN Service

The whole process can be a bit complex, and I can’t exactly offer you a “complete” tutorial since the setup process is different depending on which hosting option you use, and what type of VPN software you want.

So, I’ll try to break down the most common stages into easy-to-digest info instead:

First, Get a Server

I’m not talking about buying your own physical server. 

Sure, you can do that if you really want to, but it’s gonna cost you – up to $1,000 if not more!

Instead, you’re better off just renting a server from a data center. You can rent a physical one, but a VPS (Virtual Private Server) works well too. 

In fact, a VPS is usually cheaper since it tends to go around $5 to $100 per month depending on your needs compared to $100 to $300 (if not more) per month for physical servers.

There are tons of VPS providers to choose from, but if you don’t have time to look them up you can check out or DigitalOcean.

Yes, Microsoft and Apple allow you to host servers on your device if you want to, but I wouldn’t really recommend them. You’re using a VPN to protect your privacy, and Microsoft and Apple are part of the NSA’s PRISM surveillance program.

That doesn’t necessarily mean the hosting options they offer are 100% flawed or weakened on purpose, but it’s hard to trust those tech giants.

Another alternative to renting a VPS is just using a dedicated device. It can be a computer that runs 24/7, but a better option is to just get a Raspberry Pi and install VPN software on it to have it act like a dedicated VPN server.

Next, Get an SSH Client (Optional)

Why optional? You’ll see when we discuss the installation process.

Now, if you’re not familiar with SSH, it stands for the Secure Shell Protocol which encrypts connections to remote devices. An SSH client is software that allows you to use that protocol to communicate with the VPN server.

One of the most popular Windows SSH clients is PuTTY. macOS and Linux have their own built-in SSH clients, but there are ports of PuTTY for these operating systems too (link for macOS and for Linux).

There are other SSH clients, of course, but getting into them would take way too long. Here’s a quick and useful guide if you want additional info.

Once you found the SSH client you want to use, download and install it on your device.

Lastly, Install the VPN Software on the Server

Really, the easiest way to do this is to use Algo VPN. 


Because Algo VPN automates the installation process. You don’t really need to do much. What’s more, Algo VPN is open-source, and can use the IKEv2 protocol which is both fast and secure. It also uses WireGuard, but that protocol is still in development for now.

Here’s the GitHub page with all the instructions. 

Basically, you just have to use the commands on that page to install the Algo VPN dependencies on the server. If you use DigitalOcean as your VPS provider, things get even simpler since Algo VPN is optimized for it – it can even create and configure a server for you since it uses DigitalOcean’s API.

If, for any reason, you’d rather not use Algo VPN, then the SSH client I mentioned above will be necessary since you’ll be using it to install and interact with other VPN software options like SoftEther and OpenVPN.

For OpenVPN, you’re going to need OpenVPN Access Server which will cost you $15/year (or less if you get a multi-year license).

Then, you’ll have to use the SSH client to install the software on your server. When you’re done, you’ll need to install the OpenVPN client to connect to the server. OpenVPN Connect is a popular choice. While it’s advertised for Windows mostly, it also works on Linux and macOS.

For SoftEther, just download the server software from here. It’s free to do so – just make sure you pick the right platform. With SoftEther, you might not necessarily need an SSH client since you can use the SoftEther VPN Server Manager to communicate with the server.

As for the client, SoftEther has its own software for that. Just install it, and you’re good to go.

Are There Any Drawbacks to Setting Up Your Own VPN?


The most obvious one is the difficulty. The rundown I gave you is just a brief overview. Setting up a VPN can be pretty difficult – at least if you’re not using the Algo VPN method.

Other than that, there is also the cost. Depending on what type of VPS you need, it might be much cheaper to just buy a VPN subscription.

Also, you’ll only have one server. So, you’ll only manage to unblock content from one specific country. If you want to access websites from other countries, you’ll need more servers – which will cost you more, of course.

Lastly, you might not be able to torrent on your own server depending on the VPS provider’s ToS. If they’re not okay with torrenting, they’ll shut down your account the moment they receive a DMCA notice.

Want a More Detailed Approach to Running Your Own VPN?

Then here’s an in-depth guide to creating your own server that has everything you need to know.  It’s a step-by-step tutorial on how to set up an OpenVPN server which has useful screenshots and also gives you all the information you need.

Start the discussion at

Read more