Amnezia VPN is an open-source VPN client designed to provide secure and private internet access while allowing users to deploy their own VPN server on their preferred hosting environment. The software supports a variety of VPN protocols including OpenVPN, WireGuard, and IKEv2, along with obfuscation methods such as Cloak and Shadowsocks for enhanced privacy in restrictive environments.
Key Features:
Self-Hosted Server Deployment: Amnezia VPN simplifies the process of setting up your own VPN server by automatically installing necessary Docker containers on your designated hosting environment.
Multiple VPN Protocols: Supports OpenVPN, WireGuard, IKEv2, and obfuscated protocols like Cloak and Shadowsocks for secure connectivity in various network conditions.
Split Tunneling: Enables users to specify which websites or applications should use the VPN connection while others bypass it, providing flexibility for selective privacy measures.
Cross-Platform Support: Available on Windows, macOS, Linux, Android, and iOS, ensuring broad accessibility across different devices.
AmneziaWG Protocol Configuration: Offers support for configuring the AmneziaWG protocol on Keenetic routers with beta firmware, enhancing compatibility with popular hardware.
Audience & Benefit:
Ideal for individuals and businesses seeking a customizable VPN solution to enhance online privacy and security. Users benefit from the ability to control their own VPN infrastructure, ensuring data sovereignty and reducing reliance on third-party services. The client’s user-friendly interface simplifies setup and management, making it accessible even for those without extensive technical expertise.
Amnezia VPN can be installed via winget, offering a seamless integration into your existing workflow.
Very easy to use - enter your IP address, SSH login, password and Amnezia will automatically install VPN docker containers to your server and connect to the VPN.
Go to "Actions" tab, click on the first line.
Then scroll down to the "Artifacts" section and download "AmneziaVPN_translations".
Unzip this file.
Each *.ts file contains strings for one corresponding language.
Translate or correct some strings in one or multiple *.ts files and commit them back to this repository into the client/translations folder.
You can do it via a web-interface or any other method you're familiar with.
Checking out the source code
Make sure to pull all submodules after checking out the repo.
Basically, if dependencies are located in default installation paths, the scripts will find them automatically.
If they differ, specify them using the following variables:
QT_INSTALL_DIR - Qt root installation folder
QT_ROOT_PATH - Qt framework root directory
QIF_ROOT_PATH - Qt Installer Framework root path
ANDROID_HOME - Path to Android SDK root folder
and others. Check scripts for more
Unix-like:
# Build executables for the host platform
deploy/build.sh
# Or just
deploy/build.sh
# Build executables and installers for the host platform
deploy/build.sh --installer all
# Build Android APK and AAB
deploy/build.sh -t android --aab
# Call for help
deploy/build.sh -h
Windows:
:: Build executables for Windows
deploy/build.bat
:: Build executables with IFW installer for Windows
deploy/build.bat --installer ifw
:: Build executables with IFW and WIX installer for Windows
deploy/build.bat --installer ifw --installer wix
:: Or just
deploy/build.bat --installer all
Developing the project in IDEs
Basically, you can use any IDE that handles CMake and Qt kits properly to run configure and build steps, and to navigate through the code nicely. For example:
Qt Creator
Visual Studio Code with Qt Extension Pack
and so on
To use Xcode, you have to configure project first by using cmake. The easiest way to do it is to use Qt Creator for configuration. Then open AmneziaVPN.xcodeproj file from the build folder by using Xcode. Note that none of the files changed are saved - the files actually getting changed in build directory. Copy them manually if necessary
Android studio could be used in the same way - just configure the project by using cmake manually or by using Qt Creator. Open /client/android-build in Android studio then. Do not forget to copy the changes - everything you do is saved under the build directory actually.
Installing Android SDK
Android SDK could be installed using the following methods:
Using Qt Creator. Use Preferences->SDKs
Using Android studio. By default it installs necessary SDKs automatically during the installation
Manually by using sdk-manager. Check this page for details
License
This project is licensed under the GNU General Public License v3.0 (see LICENSE) and also includes third-party components distributed under their own terms (see THIRD_PARTY_LICENSES.md).