This document provides a guide on how to accelerate VPN connections to supported VPN providers. The guide is written in a simple and easy-to-follow format, and it is intended for users who are not familiar with VPN technology.
- Introduction
- Overview
- How It Works
- Security and Privacy Considerations
- Supported VPN Providers
- Contributing
- Credits
- References
VPNs can be very useful for protecting privacy and security. However, they can also slow down the user's Internet connection. This is because all of the user's traffic is being routed through the VPN server, which adds additional overhead.
This document provides explanation about the VPN technology and how to accelerate VPN connections to supported VPN providers.
A virtual private network (VPN) is a mechanism for creating a secure connection between a computing device and a computer network, or between two networks, using an insecure communication medium such as the public Internet.
A VPN can extend a private network (one that disallows or restricts public access), in such a way that it enables users of that network to send and receive data across public networks as if the public networks' devices were directly connected to the private network. The benefits of a VPN include security, reduced costs for dedicated communication lines, and greater flexibility for remote workers. VPNs are also used to bypass internet censorship. Encryption is common, although not an inherent part of a VPN connection.
A VPN is created by establishing a virtual point-to-point connection through the use of tunneling protocols over existing networks. A VPN available from the public Internet can provide some of the benefits of a wide area network (WAN). From a user perspective, the resources available within the private network can be accessed remotely.
VPN technology was first used in 1996 when a Microsoft employee developed the PPTP. The protocol created a more secure private connection between a user device and the internet. In 1999, the specification was published.
In the early 2000s, VPNs were mostly associated with and used by businesses. The technology wasn't quite used by average online users. At this time, VPNs were being used by businesses to access private business networks. In this use case, organizations were able to access company data from anywhere while looking as if they were in the office. Secure file sharing between different offices became possible.
After this, encryption standards started to become more powerful, and new tunneling protocols were developed. As individuals started to learn about potential online threats and privacy issues, VPN use expanded to individual, at-home users. Privacy scandals, such as WikiLeaks or the separate security leaks by Edward Snowden, were injected into the modern zeitgeist. Around 2017, internet users in the United States learned that ISPs could collect and sell their browsing history, and net neutrality became a concept citizens had to fight for — and effectively lost. A bill was passed by the U.S. House of Representatives in 2019 to bring back net neutrality, but was ultimately blocked by the Senate. Since then, different states have enacted versions of net neutrality laws. With this knowledge, the use of VPNs became a more legitimate need for individuals.
There are a number of factors that can contribute to slow VPN connections, including:
- Routing
- Network Setup
- VPN Protocol
- Server Location
- Encryption Strength
- Server Bandwidth
- CPU/RAM
- Overall Internet Speed
You could browse the Internet to get a better understanding of each one of them. Before making the assumption on what has caused your VPN connection to be slow, you should consider some of those factors.
This guide provides explanation on how to accelerate VPN connections to supported VPN providers, written in a simple and easy-to-follow format (a.k.a. "Keep It Simple, Stupid."), and is intended for users who are not familiar with VPN technology.
The implementation used in this guide is inspired by a term Dynamic Content Acceleration which is commonly known as something provided by CDN providers.
It is important to note that the methods described in this guide can have some security and privacy implications. This section will explain some of them to not cause a confusion.
Modern VPNs use strong encryption algorithms so your data between you and your VPN provider will be encrypted and safe.
Encryption is a technique used to transform information from its original form, called plaintext, into an encrypted form, known as ciphertext. It aims to protect the confidentiality and integrity of your online information. You might already heard of the term Advanced Encryption Standard (AES), which is a widely trusted encryption algorithm by the United States government, military and other organizations.
Encryption ensures that only authorized individuals with the appropriate decryption key can decode the ciphertext and access the original plaintext.
ℹ️ Note that an encryption/decryption key is a sequence of characters (usually numbers and letters) used to transform plaintext into ciphertext (encryption) and vice versa (decryption). In other words, it’s a code that enables data to be encrypted so that it can only be read by someone with the corresponding key to decrypt it.
There are some protocols commonly used by VPNs, including:
- SSL/TLS
- PPTP
- L2TP/IPsec
- OpenVPN
- WireGuard
This guide explains mostly about the WireGuard protocol because it is a modern protocol which is secure, really fast, and used by many VPN providers as of now.
OpenVPN is open-source, which means its codebase is publicly available for inspection. Researchers can test for vulnerabilities, substantiate security claims, and refine the product. It uses TLS protocols and the OpenSSL library in combination with a range of other tools to create a reliable and secure VPN connection. Custom OpenVPN applications are available from commercial VPN providers, but the primary source code is created and developed by the OpenVPN Project.
WireGuard is a relatively new tunnelling protocol that seeks to offer better performance and faster speeds than OpenVPN.
The protocol is designed to resolve some of the negative issues commonly associated with IPsec and OpenVPN: frequent disconnections, complex setup for users looking to manually configure, extended reconnection times, and heavy codebases which can make it difficult for researchers to spot bugs.
WireGuard aims to surpass traditional protocols by using more modern ciphers. It’s codebase is only 4000 lines – around 1% of OpenVPN’s and IPsec’s.
Endpoint
is used by the WireGuard configuration file to specify which server it is connecting to. Normally, the endpoint will be automatically set to the one used by your VPN provider. To achieve the goal of accelerating your VPN connection, this guide will instruct you to use an endpoint provided by us.
No matter what endpoint you are using, your data can only be decrypted by your VPN provider. The endpoint given in this guide will only be used to route your WireGuard-encrypted traffic through better network paths.
Encryption algorithms used by modern VPN protocols such as OpenVPN or WireGuard can't be cracked easily, even by using supercomputers that big companies have nowadays. This means you can safely assume that your data is safe when routed through our endpoint.
According to the last explanation from the Endpoint section, your privacy will also be guaranteed as long as you trust your VPN provider.
Until now, this guide has been tested only with a very limited number of VPN providers. This may change as the time goes and more people are contributing to improve this guide.
The 1.1.1.1 VPN (a.k.a. WARP) is a service provided by Cloudflare that is by far the best you could get compared to other providers listed here. We measured the quality of the VPN by testing the speed for download/upload, browsing, streaming, and gaming activity.
Before continuing to the next step, you will need to download and/or install these programs:
- Download and install WireGuard client from the official website.
- Make a new folder and name it anything you'd like (e.g.
wgcf
). - Download the latest WGCF from the repository's Releases to the
wgcf
folder, and extract it.
- Rename the
.exe
file towgcf.exe
to make it easier to use. - Open a new Command Prompt terminal in that folder, and type:
wgcf.exe register
- After the
wgcf-account.toml
file has been generated, use the following command:
wgcf.exe generate
- Then, import the
wgcf-profile.conf
to your WireGuard client. - Change the
DNS
andEndpoint
as follows:
[Interface]
...
DNS = <Your Preferred DNS>
[Peer]
...
Endpoint = v.0ms.dev:11111
- Click
Save
to save the new edited config, and then click theActive
button to connect to the server.
As of now, we only support acceleration for a limited number of region(s).
ℹ️ Notes
- (Optional) If you already have a WARP+ license and want to use it, follow the instruction here.
- Custom regions are possible only and if only people make requests for them, and we receive enough financial supports.
- You can send your request to ask@0ms.dev and describe why you need it.
- A request won't be processed if there aren't enough demands for it.
- A request won't be processed if there aren't enough financial supports for it. See the Donation section for the details.
There are some ways you could contribute to this project, which are:
You could help us improving this guide by translating it to your native language (a.k.a. "mother tongue") so that more people from different part of the world could understand it.
It costs us quite a lot to maintain all of our servers, and we use some of them for the purpose of writing this guide. Until now, this guide works best for APAC users, especially Southeast Asia.
Donations make it possible to support more regions, especially the ones in Europe and the US. Donation of any amount will be greatly appreciated!
You could help us improving this guide by testing the implementation when you are playing online games, browsing, and more, and creating new Issues to report your self-tests, and also other problems related to the implementation.
Although we are writing this guide to let people know about our implementation, it was made possible by using other things provided by the developers and/or companies mentioned in this guide.
All credits and copyrights go to the respective owners.
- Virtual private network
- History of VPNs
- AES Explained (Advanced Encryption Standard) - Computerphile
- VPN & Remote Working - Computerphile
- Breaking RSA - Computerphile
- VPN (Virtual Private Network) Explained
- 7 Cryptography Concepts EVERY Developer Should Know
- 8 Factors that Affect the VPN Speed: What Causes VPN to be Slow?
- What is a content delivery network (CDN)? | How do CDNs work?
- Argo Smart Routing
- Cloudflare Spectrum