mirror of
https://github.com/amnezia-vpn/amnezia-client.git
synced 2026-05-08 14:33:23 +00:00
* feat: initial conan support * feat: add awg-go and awg-apple recipes * feat: macos full feature conan build, except ss and cloak * feat: conan android initial support * fix: android libssh fixes * conan: android additional recipes and fixes * feat: openvpn add support android * fix: awg android connection establish * conan: apple full-featured support * chore: bump min macos version * chore: get rid of manual deploy recursive copying * conan: beautify makefile-based recipes * conan: add geosite.dat and geoip.dat * conan: use lib linking instead of QT_EXTRA_LIBS for OVPN * conan: address lack of SONAME of libck-ovpn-plugin.so correctly * conan: windows initial support * conan: make awg-windows and wintun be interpret as exes * conan: fix version for v2ray-rules-dat * feat: conan and platform bootstrap rework in cmake * feat: 16kb support for Android * chore(conan): recipes cleanup * feat: support of drivers for windows * feat: support full-featured cmake install * chore: exclude qtkeychain from the target build * fix: install for apple systems * fix: provide flags for cloak plugin for openvpn-pt-android * chore: bump android deps for 16kb support * feat(conan): patch cloak to properly provide env for golang * chore: remove redundant hint from conan find * feat: linux <-> conan features * feat: linux initial packaging support * feat: linux cpack support * feat: cpack windows full-featured build * feat: productbuild cpack support * feat: rework CI/CD for macos * feat: rework CI/CD for Linux * fix: libncap automake args * fix: CI/CD correct QT paths * fix: windows rework CI/CD * fix: windows artifact upload * chore: remove MacOS-old from build targets * feat: add conan to all mobile and NE builds * feat: support default amnezia conan remote * fix: use Release instead of release on Android * feat: get rid of 3rd-prebuilt * feat: conan CI/CD upload * fix: CI/CD change windows toolset versions * fix: remove MSVC version from CI/CD * feat: conan CI/CD add Release and Debug build types * feat: add multiple xcode versions for conan CI/CD * fix: correct conan CI/CD clang versions * feat: separate prebuilt baking, and add some for NE * feat: rework keychain on ios/macos even more * fix: add desktop Qt for iOS * feat: add QT_HOST_PATH to build.sh * fix: add deploy definition to cmake * fix: android adjustments for toolchains and CI/CD * fix: add needs for Android CI/CD * fix: Android CI/CD use android-28 * fix: modernize translations, and CI/CD fixes * fix: gradle min sdk compilation error * fix: CI/CD add installers to all jobs * fix: parse android platform more precisely * fix: adjust aab path in CI/CD * feat: CI/CD do not execute artifact build if there is nothing changed * fix: CI/CD use common jobs even if previous were failed * fix: Apple CI/CD use set-key-partition-list for keychains * fix: Apple CI/CD do not specify any keychain (use default) * fix: build aab as a different step in build script * chore: beautify build.sh script * feat: CI/CD build separate APKs per ABI * fix: Android CI/CD upload artifact in separate steps * chore: recipes cleanup * feat: add hints for conan on MacOS * fix: add main.cpp and tests back to CMakeLists.txt * chore: xrayProtocol codestyle changes * fix: openssl set proper X509 request version * fix: make openvpn protocol rely only on client while configuring * chore: get rid of old scripts * chore: readme update describing build process more precisely * feat: windows build script add multiprocessing capabilities * chore: bump Qt version in README * feat: add generator option and use Ninja by default in CI/CD for linux/macos --------- Co-authored-by: NickVs2015 <nv@amnezia.org>
181 lines
12 KiB
Markdown
181 lines
12 KiB
Markdown
# Amnezia VPN
|
||
|
||
### _Лучший клиент для создания VPN на собственном сервере_
|
||
|
||
[](https://github.com/amnezia-vpn/amnezia-client/actions/workflows/deploy.yml?query=branch:dev)
|
||
[](https://gitpod.io/#https://github.com/amnezia-vpn/amnezia-client)
|
||
|
||
### [English](https://github.com/amnezia-vpn/amnezia-client/blob/dev/README.md) | Русский
|
||
[AmneziaVPN](https://amnezia.org?utm_source=github&utm_campaign=amnezia_website-readme-ru) — это open source VPN-клиент, ключевая особенность которого заключается в возможности развернуть собственный VPN на вашем сервере.
|
||
|
||
[](https://amnezia.org)
|
||
|
||
### [Сайт](https://amnezia.org?utm_source=github&utm_campaign=amnezia_website-readme-ru) | [Зеркало сайта](https://storage.googleapis.com/amnezia/amnezia.org?utm_source=github&utm_campaign=amnezia_website-readme-ru-mirror) | [Документация](https://docs.amnezia.org) | [Решение проблем](https://docs.amnezia.org/troubleshooting)
|
||
|
||
> [!TIP]
|
||
> Если [сайт Amnezia](https://amnezia.org?utm_source=github&utm_campaign=amnezia_website-readme-ru) заблокирован в вашем регионе, вы можете воспользоваться [ссылкой на зеркало](https://storage.googleapis.com/amnezia/amnezia.org?utm_source=github&utm_campaign=amnezia_website-readme-ru-mirror).
|
||
|
||
<a href="https://storage.googleapis.com/amnezia/amnezia.org?m-path=/ru/downloads&utm_source=github&utm_campaign=amnezia_button-readme-ru-mirror"><img src="https://github.com/amnezia-vpn/amnezia-client/blob/dev/metadata/img-readme/download-website-ru.svg" width="150" style="max-width: 100%; margin-right: 10px"></a>
|
||
|
||
|
||
[Все релизы](https://github.com/amnezia-vpn/amnezia-client/releases)
|
||
|
||
<br/>
|
||
|
||
<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>
|
||
|
||
## Особенности
|
||
|
||
- Простой в использовании — введите IP-адрес, SSH-логин и пароль, и Amnezia автоматически установит VPN-контейнеры Docker на ваш сервер и подключится к VPN.
|
||
- Классические VPN-протоколы: OpenVPN, WireGuard и IKEv2.
|
||
- Протоколы с маскировкой трафика (обфускацией): OpenVPN с плагином [Cloak](https://github.com/cbeuw/Cloak), Shadowsocks (OpenVPN over Shadowsocks), [AmneziaWG](https://docs.amnezia.org/documentation/amnezia-wg/) and XRay.
|
||
- Поддержка Split Tunneling — добавляйте любые сайты или приложения в список, чтобы включить VPN только для них.
|
||
- Поддерживает платформы: Windows, macOS, Linux, Android, iOS.
|
||
- Поддержка конфигурации протокола AmneziaWG на [бета-прошивке Keenetic](https://docs.keenetic.com/ua/air/kn-1611/en/6319-latest-development-release.html#UUID-186c4108-5afd-c10b-f38a-cdff6c17fab3_section-idm33192196168192-improved).
|
||
|
||
## Ссылки
|
||
|
||
- [https://amnezia.org](https://amnezia.org) - Веб-сайт проекта | [Альтернативная ссылка (зеркало)](https://storage.googleapis.com/kldscp/amnezia.org)
|
||
- [https://docs.amnezia.org](https://docs.amnezia.org) - Документация
|
||
- [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 (Английский)
|
||
- [https://t.me/amnezia_vpn_ir](https://t.me/amnezia_vpn_ir) - Канал поддержки в Telegram (Фарси)
|
||
- [https://t.me/amnezia_vpn_mm](https://t.me/amnezia_vpn_mm) - Канал поддержки в Telegram (Мьянма)
|
||
- [https://t.me/amnezia_vpn](https://t.me/amnezia_vpn) - Канал поддержки в Telegram (Русский)
|
||
- [https://vpnpay.io/en/amnezia-premium/](https://vpnpay.io/en/amnezia-premium/) - Amnezia Premium | [Зеркало](https://storage.googleapis.com/kldscp/vpnpay.io/ru/amnezia-premium\)
|
||
|
||
## Технологии
|
||
|
||
AmneziaVPN использует несколько проектов с открытым исходным кодом:
|
||
|
||
- [OpenSSL](https://www.openssl.org/)
|
||
- [OpenVPN](https://openvpn.net/)
|
||
- [Qt](https://www.qt.io/)
|
||
- [LibSsh](https://libssh.org)
|
||
- [WireGuard](https://www.wireguard.com/)
|
||
- [Xray-core](https://xtls.github.io/en/)
|
||
- [Conan](https://conan.io/)
|
||
- и другие...
|
||
|
||
## Помощь с переводами
|
||
|
||
Загрузите самые актуальные файлы перевода.
|
||
|
||
Перейдите на [вкладку "Actions"](https://github.com/amnezia-vpn/amnezia-client/actions?query=is%3Asuccess+branch%3Adev), нажмите на первую строку. Затем прокрутите вниз до раздела "Artifacts" и скачайте "AmneziaVPN_translations".
|
||
|
||
Распакуйте этот файл. Каждый файл с расширением *.ts содержит строки для соответствующего языка.
|
||
|
||
Переведите или исправьте строки в одном или нескольких файлах *.ts и загрузите их обратно в этот репозиторий в папку ``client/translations``. Это можно сделать через веб-интерфейс или любым другим знакомым вам способом.
|
||
|
||
## Проверка исходного кода
|
||
|
||
После клонирования репозитория обязательно загрузите все подмодули.
|
||
|
||
```bash
|
||
git submodule update --init --recursive
|
||
```
|
||
|
||
## Руководство по разработке
|
||
|
||
Хотите внести свой вклад? Добро пожаловать!
|
||
|
||
### Требования для сборки
|
||
|
||
* [`CMake`](https://cmake.org/download/)
|
||
* Компилятор и система сборки, в зависимости от таргета:
|
||
- [Linux] Любые `make` и `gcc`
|
||
- [Apple] [`Xcode`](https://developer.apple.com/xcode/) или [`Xcode command line tools`](https://developer.apple.com/xcode/)
|
||
- [Windows] [`Visual Studio 2022`](https://aka.ms/vs/17/release/vs_community.exe) или [`VS 2022 Build Tools`](https://aka.ms/vs/17/release/vs_buildtools.exe)
|
||
- [Android] [`Android SDK`](#установка-android-sdk) и [`Ninja`](https://ninja-build.org/)
|
||
* [`Qt 6.10+`](https://www.qt.io/download-open-source) со следующими модулями:
|
||
- Основные модули для таргета (Desktop/Android/iOS)
|
||
- Qt 5 Compatibility module
|
||
- Qt Remote Objects
|
||
* Пакетный менеджер [`Conan`](https://conan.io/downloads)
|
||
- На MacOS достаточно использовать `homebrew` или установить в `.venv` в корень проекта
|
||
- Для остальных систем необходимо прописать пути в `PATH`
|
||
* (Необязательно) Заивисимости для установщиков:
|
||
- [Windows/Linux] [`Qt Installer Framework`](https://www.qt.io/download-open-source)
|
||
- [Windows] [`WIX toolset`](https://github.com/wixtoolset/wix/releases)
|
||
|
||
### Сборка проекта через скрипты
|
||
|
||
* Запустите скрипты, находящиеся в папке `deploy`
|
||
* Если все зависимости установлены в стандартных локациях, скрипт найдёт их самостоятельно
|
||
* Если пути отличаются, их нужно явно указать используя:
|
||
- `QT_INSTALL_DIR` - корневая папка установки Qt
|
||
- `QT_ROOT_PATH` - корневая папка Qt Framework
|
||
- `QIF_ROOT_PATH` - корневая папка Qt Installer Framework
|
||
- `ANDROID_HOME` - путь к Android SDK
|
||
- и другие. Их можно получить из вышеуказанных скриптов
|
||
|
||
Unix-like:
|
||
```bash
|
||
# 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:
|
||
```batch
|
||
:: 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
|
||
```
|
||
|
||
### Разработка в IDE
|
||
|
||
* Можно использовать любые IDE которые умеют работать с CMake и находить Qt Kits. Например:
|
||
- `Qt Creator`
|
||
- `Visual Studio Code` with `Qt Extension Pack`
|
||
- и так далее
|
||
|
||
* Для использования `Xcode` нужно сконфигурировать проект с помощью `cmake`. Самый простой способ это сделать - использовать `Qt Creator` для конфигурации. Затем, нужно открыть файл `AmneziaVPN.xcodeproj` из папки сборки с помощью `Xcode`. Учтите, что никакие файлы фактически не сохраняются - они сохраняются в директории сборки. Если требуется, скопируйте файлы вручную
|
||
|
||
* `Android studio` может быть использована подобным вышеуказанному способу - нужно использовать `cmake` вручную или через `Qt Creator` для конфигурации. Далее, откройте `<build-dir>/client/android-build` в `Android studio`. Не забудьте скопировать изменённые файлы в папку с исходным кодом - все файлы, изменённые в IDE, сохраняются фактически в папке сборки.
|
||
|
||
### Установка Android SDK
|
||
|
||
* Android SDK может быть установлен следующими способами:
|
||
- Используя `Qt Creator`, через настройки в пунктах `Preferences`->`SDKs`
|
||
- Используя `Android studio`. По умолчанию необходимые `SDK` устанавливаются автоматически.
|
||
- Вручную, используя `sdk-manager`. Подробности можно найти [здесь](https://developer.android.com/tools)
|
||
|
||
## Лицензия
|
||
|
||
GPL v3.0
|
||
|
||
## Донаты
|
||
|
||
Patreon: [https://www.patreon.com/amneziavpn](https://www.patreon.com/amneziavpn)
|
||
|
||
Bitcoin: bc1qmhtgcf9637rl3kqyy22r2a8wa8laka4t9rx2mf <br>
|
||
USDT BEP20: 0x6abD576765a826f87D1D95183438f9408C901bE4 <br>
|
||
USDT TRC20: TELAitazF1MZGmiNjTcnxDjEiH5oe7LC9d <br>
|
||
XMR: 48spms39jt1L2L5vyw2RQW6CXD6odUd4jFu19GZcDyKKQV9U88wsJVjSbL4CfRys37jVMdoaWVPSvezCQPhHXUW5UKLqUp3 <br>
|
||
TON: UQDpU1CyKRmg7L8mNScKk9FRc2SlESuI7N-Hby4nX-CcVmns
|
||
|
||
## Благодарности
|
||
|
||
Этот проект тестируется с помощью BrowserStack.
|
||
Мы выражаем благодарность [BrowserStack](https://www.browserstack.com) за поддержку нашего проекта.
|