A virtual private network (VPN) helps you protect your browsing data from internet service providers (ISPs). It can also help you disguise your IP address from sites you visit, as well as unblock websites and circumvent content restrictions based on your location.
A VPN is not very difficult to set up. The costs and technical requirements will depend on what you want to use the VPN for. It also depends on whether you can trust your home ISP and whether you can find a data center you trust.
In general, a VPN is an encrypted tunnel between your device and a remote server. This makes your device appear to the sites you visit as if you are on the same network as your remote server. Entities such as local governments and ISPs will no longer be able to see your online activity. But the ISP of the remote server will.
How to make a VPN
If you travel a lot and want to use the internet as if you were at home, you should set up a VPN between your mobile devices and a machine you have at home. You can use an old laptop or a Raspberry Pi as your server, and plug it into your router at home. You install the VPN server software on this machine and install the VPN client software on your phone and laptop. Whenever you are outside your home network, you can turn on your own VPN and browse the internet as if you were at home. You can stream video and access all services as you normally would. Your home ISP can see your activity, but the places you visit, including foreign governments and unsecured Wi-Fi access points or ISPs, cannot.
How to set up your own VPN on a remote server
If you cannot trust your home ISP, if you need to hide your online activity from your local government, or if internet access at home is blocked, you can set up a VPN on a remote server, typically a virtual private server in the cloud. You will need to trust not only the ISP of this server farm but also the operator of the farm with your browsing data. If you are able to anonymously rent a server by paying with Bitcoin and properly secure your server, you might be able to achieve a good degree of anonymity online. You can connect to this server when you are at home or traveling, effectively hiding your location from the sites you visit. You no longer need to trust your ISP at home with your browsing data.
How to create a VPN server
Setting up your own VPN might take some technical knowledge and experience in configuring servers and networks. If you are setting up a VPN at home, you will also need to know how to set up the physical machine acting as the VPN server, as well as configure your home router.
Luckily, there are tools available that make this as easy as possible for you.
Shadowsocks
Shadowsocks is not a full-fledged VPN but rather an HTTP proxy. If all you need to route or uncensor is your browser and a handful of compatible apps, Shadowsocks will reward you with an easy installation procedure. On your laptop or phone, you can install special software or configure your network settings. Apps are available in the Play Store and App Store.
OpenVPN
OpenVPN is one of the more powerful and comprehensive open-source tools. It is far more difficult to install and configure than Shadowsocks, but is also far more customizable. Apps are available in the App Store and Play Store.
Wireguard
Wireguard is a newer protocol that while still in its early beta stage is already showing great promise. Don’t use it to attempt to overthrow a government, as there might still be some bugs and security holes, but it combines the ease of use of Shadowsocks with the features of OpenVPN for home use.
SSH
If you are trying to avoid lengthy setups or configurations, one easy solution is to simply set up or rent any server that you have SSH access to. You can then piggyback your traffic through this SSH tunnel with a client like sshuttle.
The costs of running your VPN
There are always costs to running your own VPN server, though they range widely based on what you are trying to achieve. If you are running a VPN at home, assuming you already have a high-speed internet connection, your only additional cost will be the device that the VPN runs on. This can be as low as 20 USD. If you have an unused computer at home, you may be able to repurpose that.
If you are renting a VPS in the cloud, you will pay between 3 USD and 10 USD for a decent server, similar to the cost of paid VPN providers.
Commercial VPNs
A commercial VPN provider like ExpressVPN will provide you with proprietary software in exchange for a monthly subscription. They relieve you from the difficulties of configuring your own server and client, as well as provide you with 24/7 customer support. You also benefit from hundreds of servers in scores of countries that you can switch between seamlessly. These servers are optimized for streaming and downloading content. You have to trust your paid VPN provider, and should carefully check their privacy policy, in particular regarding their logging practices.