# wg-bootstrap ```sh █░█░█ █▀▀ ▄▄ █▀ ▀█▀ ▄▀█ █▀█ ▀█▀ ▀▄▀▄▀ █▄█ ░░ ▄█ ░█░ █▀█ █▀▄ ░█░ ``` ### [English lang: README.md](README.md) # Утилита обертка для wg-quick Предоставляет удобный интерфейс командной строки для быстрого создания конфигурационного файла интерфейса WireGuard без необходимости вручную редактировать его текстовым редактором. А так же можно использовать для создания интерфейса и его удаления ## Возможности - Автоматическая проверка прав пользователя на запуск команд - Создание конфигурационного файла интерфейса в интерактивном режиме - Изменение AllowedIPs на лету - Добавление AllowedIPs к уже созданным - Автоматическое размещение конфигурационного файла в /etc/wireguard - Чтение информации в конфигурационном файле - Инициализация разных конфигурационных файлов и их запуск по имени - Удаление конфигурационного файла - Включение и отключение интерфейса с теми же ключами что и wg-quick ## Установка и обновление ### Зависимости - GNU/Linux - python3, желательно ^3.8.1 - wireguard или wireguard-tools - wget для загрузки исполняемого файла ### Установка - Загрузите последнюю версию из ветки main в локальную директорию на пути $PATH ```sh sudo wget https://git.isptech.ru/ISPsystem/wg-bootstrap/raw/branch/main/wg_bootstrap/wg_start.py -O /usr/local/bin/wg-start && sudo chmod 775 /usr/local/bin/wg-start ``` > Не используйте sudo если пользователь является владельцем локальной директории например ~/.local/bin > > При необходимости измените стандартный путь /usr/local/bin/wg-start в двух местах команды выше на тот который нужен именно вам. > > Команда выше добавит флаг исполнения к команде wg-start автоматически ### Обновление - Выполните загрузку повторно > Ссылка всегда ведет на последнюю стабильную версию. > > После тега 0.1.0 ветка main содержит только стабильный релиз ## Использование ### Справка ```sh usage: wg-start [-h] [-v] {init,cat,rm,add,replace,up,down} interface [allowedIPs] CRUD WireGuard config file or UP/DOWN wg-interface positional arguments: {init,cat,rm,add,replace,up,down} Action with interface interface WG interface name (wg0, wg1, wgName etc...) allowedIPs Set AllowedIPs must be a string options: -h, --help show this help message and exit -v, --version show program's version number and exit ``` ### Примеры - Инициализация конфигурационного файла нового интерфейса wg0: ```sh wg-start init wg0 ``` - Инициализация (включение) интерфейса wg0 ```sh wg-start up wg0 ``` - Удаление (отключение) интерфейса wg0 ```sh wg-start up wg0 ``` - Прочитать конфигурационный файл интерфейса wg0 ```sh wg-start cat wg0 ``` - Удалить конфигурационный файл интерфейса wg0 ```sh wg-start rm wg0 ``` - Заменить AllowedIPS на 0.0.0.0/24 в конфигурационном файле интерфейса wg0 ```sh wg-start replace wg0 0.0.0.0/24 ``` - Добавить к AllowedIPS 172.10.10.0/24 в конфигурационном файле интерфейса wg0 ```sh wg-start add wg0 172.10.10.0/24 ``` - Добавить к AllowedIPS несколько IP в конфигурационном файле интерфейса wg0 ```sh wg-start add wg0 "172.10.11.0/24, 10.10.10.1/24, 192.168.1.1" ``` > Имя интерфейса может быть любым wg0 это просто пример, можно дать интерфейсу осмысленное название > > Можно добавлять любое количество интерфейсов, если такой интерфейс уже присутствовал он будет перезаписан! ### Приятного использования, друг и спасибо что дочитал до конца ## License GNU GPL 3.0