What we're going to be doing is setting up a Linux server using DigitalOcean to set up a VPN service. I know that might sound intimidating, especially when you hear that word "Linux," but you don't need to worry because DigitalOcean has already done 90% of the work and I've already done most of the remaining 10%. You can just follow my instructions and it'll be as easy as making a peanut butter and jelly sandwich.
DigitalOcean is a very well-respected organization, so we can rest easy knowing that we didn't get out of the frying pan and into the fire by using a VPN service that just harvests our data anyway. In fact, the reason why I wanted to do this is because I was looking through VPN services that I had never heard of and I had no idea if they were trustworthy, and it's not a whole lot of extra effort to just set up my own VPN service.
For the record, you could also set up a VPN service in your own home using your own hardware, but it's more difficult and kind of pain to maintain it. That's why I prefer to use an off-site service like DigitalOcean and go ahead and pay them $5 a month.
So, that brings me to this-- If you follow my instructions, it will not be free. DO is crazy cheap, but it's not free. There are multiple options that you can use, but I always use the cheapest one, $5 a month. You can always upgrade later.
Most of the work is done via two scripts that I wrote myself to automate what DigitalOcean's tutorials said to do. Otherwise, it would be too overwhelming for newbies and those unfamiliar with Linux. As I said, I want to make this as easy as humanly possible. Unfortunately, I wasn't able to automate 100% of the work, so there's still some kind of tedium involved, but it's been minimized.
Here are a link to the two scripts that will be used:
They are also available on github for slightly easier viewing: