2021-03-09 18:48:59 +03:00
# Amnezia VPN
2024-12-08 05:34:18 +02:00
### _The best client for self-hosted VPN_
2020-12-04 00:45:21 +03:00
2023-05-22 13:30:03 +03:00
[](https://github.com/amnezia-vpn/amnezia-client/actions/workflows/deploy.yml?query=branch:dev)
2023-05-20 17:55:19 +03:00
[](https://gitpod.io/#https://github .com/amnezia-vpn/amnezia-client)
2021-03-09 18:48:59 +03:00
2024-12-08 05:34:18 +02:00
### [English]([https://github.com/amnezia-vpn/amnezia-client/blob/dev/README_RU.md](https://github.com/amnezia-vpn/amnezia-client/tree/dev?tab=readme-ov-file#)) | [Русский](https://github.com/amnezia-vpn/amnezia-client/blob/dev/README_RU.md)
2025-08-04 21:35:45 +03:00
[Amnezia ](https://amnezia.org?utm_source=github&utm_campaign=amnezia_website-readme-en ) is an open-source VPN client, with a key feature that enables you to deploy your own VPN server on your server.
2021-03-09 18:48:59 +03:00
2024-11-25 19:51:46 +03:00
[](https://amnezia.org)
2024-07-16 14:56:52 +03:00
2025-08-04 21:35:45 +03:00
### [Website](https://amnezia.org?utm_source=github&utm_campaign=amnezia_website-readme-en) | [Alt website link](https://storage.googleapis.com/amnezia/amnezia.org?utm_source=github&utm_campaign=amnezia_website-readme-en-mirror) | [Documentation](https://docs.amnezia.org) | [Troubleshooting](https://docs.amnezia.org/troubleshooting)
2024-07-16 14:56:52 +03:00
2024-11-25 19:51:46 +03:00
> [!TIP]
2025-08-04 21:35:45 +03:00
> If the [Amnezia website](https://amnezia.org?utm_source=github&utm_campaign=amnezia_website-readme-en) is blocked in your region, you can use an [Alternative website link](https://storage.googleapis.com/amnezia/amnezia.org?utm_source=github&utm_campaign=amnezia_website-readme-en-mirror).
2024-07-16 14:56:52 +03:00
2025-08-04 21:35:45 +03:00
<a href="https://amnezia.org/en/downloads?utm_source=github&utm_campaign=amnezia_button-readme-en"><img src="https://github.com/amnezia-vpn/amnezia-client/blob/dev/metadata/img-readme/download-website.svg" width="150" style="max-width: 100%; margin-right: 10px"></a>
<a href="https://storage.googleapis.com/amnezia/amnezia.org?m-path=/en/downloads&utm_source=github&utm_campaign=amnezia_button-readme-en-mirrow"><img src="https://github.com/amnezia-vpn/amnezia-client/blob/dev/metadata/img-readme/download-alt.svg" width="150" style="max-width: 100%;"></a>
2024-07-16 14:56:52 +03:00
[All releases ](https://github.com/amnezia-vpn/amnezia-client/releases )
2024-11-25 19:51:46 +03:00
<br/>
2024-07-16 14:56:52 +03:00
2024-10-24 22:27:53 +03:00
<a href="https://www.testiny.io"><img src="https://github.com/amnezia-vpn/amnezia-client/blob/dev/metadata/img-readme/testiny.png" height="28px"></a>
2024-07-16 14:56:52 +03:00
2021-03-09 18:48:59 +03:00
## Features
2024-02-29 00:14:09 +00:00
2024-08-21 15:25:47 +00:00
- 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.
- Classic VPN-protocols: OpenVPN, WireGuard and IKEv2 protocols.
- Protocols with traffic Masking (Obfuscation): OpenVPN over [Cloak ](https://github.com/cbeuw/Cloak ) plugin, Shadowsocks (OpenVPN over Shadowsocks), [AmneziaWG ](https://docs.amnezia.org/documentation/amnezia-wg/ ) and XRay.
- Split tunneling support - add any sites to the client to enable VPN only for them or add Apps (only for Android and Desktop).
2023-05-16 07:34:06 +07:00
- Windows, MacOS, Linux, Android, iOS releases.
2024-08-21 15:25:47 +00:00
- Support for AmneziaWG protocol configuration on [Keenetic beta firmware ](https://docs.keenetic.com/ua/air/kn-1611/en/6319-latest-development-release.html#UUID-186c4108-5afd-c10b-f38a-cdff6c17fab3_section-idm33192196168192-improved ).
2021-03-09 18:48:59 +03:00
2023-06-20 17:26:55 +01:00
## Links
2024-02-29 00:14:09 +00:00
2024-11-25 19:51:46 +03:00
- [https://amnezia.org ](https://amnezia.org ) - Project website | [Alternative link (mirror) ](https://storage.googleapis.com/kldscp/amnezia.org )
- [https://docs.amnezia.org ](https://docs.amnezia.org ) - Documentation
2024-07-22 02:42:56 +03:00
- [https://www.reddit.com/r/AmneziaVPN ](https://www.reddit.com/r/AmneziaVPN ) - Reddit
- [https://t.me/amnezia_vpn_en ](https://t.me/amnezia_vpn_en ) - Telegram support channel (English)
- [https://t.me/amnezia_vpn_ir ](https://t.me/amnezia_vpn_ir ) - Telegram support channel (Farsi)
- [https://t.me/amnezia_vpn_mm ](https://t.me/amnezia_vpn_mm ) - Telegram support channel (Myanmar)
2024-08-21 15:25:47 +00:00
- [https://t.me/amnezia_vpn ](https://t.me/amnezia_vpn ) - Telegram support channel (Russian)
- [https://vpnpay.io/en/amnezia-premium/ ](https://vpnpay.io/en/amnezia-premium/ ) - Amnezia Premium
2023-06-20 17:26:55 +01:00
2021-03-09 18:48:59 +03:00
## Tech
2024-02-29 00:14:09 +00:00
AmneziaVPN uses several open-source projects to work:
2021-03-09 18:48:59 +03:00
- [OpenSSL ](https://www.openssl.org/ )
- [OpenVPN ](https://openvpn.net/ )
- [Qt ](https://www.qt.io/ )
2026-05-04 16:59:24 +02:00
- [LibSsh ](https://libssh.org )
- [WireGuard ](https://www.wireguard.com/ )
- [Xray-core ](https://xtls.github.io/en/ )
- [Conan ](https://conan.io/ )
2021-03-09 18:48:59 +03:00
- and more...
2026-05-04 16:59:24 +02:00
## Help us with translations
2024-07-04 18:57:05 +03:00
Download the most actual translation files.
Go to ["Actions" tab ](https://github.com/amnezia-vpn/amnezia-client/actions?query=is%3Asuccess+branch%3Adev ), 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.
2026-05-04 16:59:24 +02:00
## Checking out the source code
2022-04-29 13:44:46 +04:00
2026-05-04 16:59:24 +02:00
Make sure to pull all submodules after checking out the repo.
2023-05-16 07:34:06 +07:00
2022-04-29 13:44:46 +04:00
```bash
2026-05-04 16:59:24 +02:00
git submodule update --init --recursive
2022-04-29 13:44:46 +04:00
```
2026-05-04 16:59:24 +02:00
## Hacking guide
2023-05-16 07:34:06 +07:00
2026-05-04 16:59:24 +02:00
Want to contribute? Welcome!
2022-04-29 13:44:46 +04:00
2026-05-04 16:59:24 +02:00
### Build requirements
* [`CMake` ](https://cmake.org/download/ )
* Compiler and underlying build system, depending on the target:
- [Linux] Any of `make` and `gcc`
- [Apple] [`Xcode` ](https://developer.apple.com/xcode/ ) or [`Xcode command line tools` ](https://developer.apple.com/xcode/ )
- [Windows] [`Visual Studio 2022` ](https://aka.ms/vs/17/release/vs_community.exe ) or [`VS 2022 Build Tools` ](https://aka.ms/vs/17/release/vs_buildtools.exe )
- [Android] [`Android SDK` ](#installing-android-sdk ) and [`Ninja` ](https://ninja-build.org/ )
* [`Qt 6.10+` ](https://www.qt.io/download-open-source ) with the following modules:
- Core module for targeting platform (Desktop/Android/iOS)
- Qt 5 Compatibility module
- Qt Remote Objects
* [`Conan` ](https://conan.io/downloads ) package manager
- On MacOS is enough just to use `homebrew` or install it in `.venv` in project root
- Other systems must have it in `PATH`
* (Optional) Installer dependencies:
- [Windows/Linux] [`Qt Installer Framework` ](https://www.qt.io/download-open-source )
- [Windows] [`WIX toolset` ](https://github.com/wixtoolset/wix/releases )
### Building the project using scripts
* Run scripts located in `deploy` directory
* 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:
2022-04-29 13:44:46 +04:00
```bash
2026-05-04 16:59:24 +02:00
# Build executables for the host platform
deploy/build.sh
2022-04-29 13:44:46 +04:00
2026-05-04 16:59:24 +02:00
# Or just
deploy/build.sh
2022-04-29 13:44:46 +04:00
2026-05-04 16:59:24 +02:00
# Build executables and installers for the host platform
deploy/build.sh --installer all
2022-04-29 13:44:46 +04:00
2026-05-04 16:59:24 +02:00
# Build Android APK and AAB
deploy/build.sh -t android --aab
2022-12-12 16:16:12 +04:00
2026-05-04 16:59:24 +02:00
# Call for help
deploy/build.sh -h
```
2022-04-29 13:44:46 +04:00
2026-05-04 16:59:24 +02:00
Windows:
```batch
:: Build executables for Windows
deploy/build.bat
2024-02-29 00:14:09 +00:00
2026-05-04 16:59:24 +02:00
:: Build executables with IFW installer for Windows
deploy/build.bat --installer ifw
2023-03-26 13:47:25 +02:00
2026-05-04 16:59:24 +02:00
:: Build executables with IFW and WIX installer for Windows
deploy/build.bat --installer ifw --installer wix
2023-03-26 13:47:25 +02:00
2026-05-04 16:59:24 +02:00
:: Or just
deploy/build.bat --installer all
```
2024-08-03 13:19:17 +03:00
2026-05-04 16:59:24 +02:00
### Developing the project in IDEs
2023-03-26 13:47:25 +02:00
2026-05-04 16:59:24 +02:00
* 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
2023-03-26 13:47:25 +02:00
2026-05-04 16:59:24 +02:00
* 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
2023-03-26 13:47:25 +02:00
2026-05-04 16:59:24 +02:00
* `Android studio` could be used in the same way - just configure the project by using `cmake` manually or by using `Qt Creator` . Open `<build-dir>/client/android-build` in `Android studio` then. Do not forget to copy the changes - everything you do is saved under the build directory actually.
2023-03-26 13:47:25 +02:00
2026-05-04 16:59:24 +02:00
### Installing Android SDK
2024-02-29 00:14:09 +00:00
2026-05-04 16:59:24 +02:00
* 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 ](https://developer.android.com/tools ) page for details
2022-04-29 13:44:46 +04:00
2021-03-09 18:48:59 +03:00
## License
2024-02-29 00:14:09 +00:00
2026-03-20 20:04:13 +07:00
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).
2021-03-09 18:48:59 +03:00
2021-06-06 16:25:22 +03:00
## Donate
2024-02-29 00:14:09 +00:00
2024-07-04 21:04:56 +01:00
Patreon: [https://www.patreon.com/amneziavpn ](https://www.patreon.com/amneziavpn )
2024-07-16 14:56:52 +03:00
2025-01-14 17:15:01 +00:00
Bitcoin: bc1qmhtgcf9637rl3kqyy22r2a8wa8laka4t9rx2mf <br>
2024-07-16 14:56:52 +03:00
USDT BEP20: 0x6abD576765a826f87D1D95183438f9408C901bE4 <br>
USDT TRC20: TELAitazF1MZGmiNjTcnxDjEiH5oe7LC9d <br>
2024-11-29 22:10:35 +00:00
XMR: 48spms39jt1L2L5vyw2RQW6CXD6odUd4jFu19GZcDyKKQV9U88wsJVjSbL4CfRys37jVMdoaWVPSvezCQPhHXUW5UKLqUp3 <br>
TON: UQDpU1CyKRmg7L8mNScKk9FRc2SlESuI7N-Hby4nX-CcVmns
2024-02-29 00:14:09 +00:00
## Acknowledgments
2023-07-18 20:28:07 +01:00
This project is tested with BrowserStack.
We express our gratitude to [BrowserStack ](https://www.browserstack.com ) for supporting our project.