WireGuard API Клиент

Надежная библиотека клиента на Node.js для взаимодействия с API WireGuard, разработанная для серверов WG-Easy

Версия npm Лицензия GitHub Проблемы GitHub Загрузки
Начать Посмотреть на GitHub

Русский | English

Логотип WireGuard

Функции

Мощные инструменты для управления вашим WireGuard VPN

Автоматическое управление сессиями

Автоматически обрабатывает повторные попытки при ошибках 401

Полное покрытие API

Полная реализация конечных точек WG-Easy

Гибкая аутентификация

Поддержка аутентификации через пароль и куки

Структурированная обработка ошибок

Подробные ответы об ошибках для легкой отладки

Поддержка TypeScript

Включены полные определения типов

Установка и требования

Начните работу с WireGuard API Клиентом

npm install wg-easy-api
  • Node.js 12.x или выше
  • node-fetch (^3.3.2) - Включено как зависимость
  • Запущенный сервер WG-Easy (обычно на порту 51821)

Примеры использования

Узнайте, как использовать WireGuard API Клиент

const WireGuardAPI = require('wg-easy-api');

async function example() {
    const api = new WireGuardAPI('https', 'example.com', 51821, 'ваш-пароль');
    try {
        const auth = await api.initSession({ password: 'ваш-пароль' });
        console.log(auth);
        const clients = await api.getClients();
        console.log('Клиенты:', JSON.stringify(clients, null, 2));
    } catch (error) {
        console.error('Ошибка:', JSON.parse(error.message));
    }
}

example();
const api = new WireGuardAPI('https', 'example.com', 51821, undefined, 'connect.sid=s%3A...');
const clients = await api.getClients();
console.log(clients);
try {
    const clients = await api.getClients();
} catch (error) {
    const err = JSON.parse(error.message);
    console.error(err.error, err.statusCode);
}

Справочник API

Полная документация по всем методам

Формат ответа

Управление сессиями

POST /api/session

Вход на сервер WG-Easy с паролем. Автоматически обновляет куки.

Параметр Тип Обязательно Описание
password string Да Пароль WG-Easy
await api.initSession({ password: 'мойПароль' }); // { status: 'success', data: { success: true } }
GET /api/session

Проверяет статус текущей сессии.

await api.getSession(); // { status: 'success', data: { authenticated: true } }
POST /api/session

Создает новую сессию без автоматического обновления куки.

Параметр Тип Обязательно Описание
password string Да Пароль WG-Easy
await api.createSession({ password: 'мойПароль' });
DELETE /api/session

Выход из системы путем удаления сессии.

await api.deleteSession(); // { status: 'success', data: null }

Операции с клиентами

GET /api/wireguard/client

Список всех клиентов WireGuard с преобразованием временных меток в объекты Date.

await api.getClients(); // { status: 'success', data: [{ id: 'abc', name: 'Клиент1' }] }
POST /api/wireguard/client

Добавляет нового клиента с указанным именем.

Параметр Тип Обязательно Описание
name string Да Имя клиента
await api.createClient({ name: 'МойНоутбук' });
DELETE /api/wireguard/client/{clientId}

Удаляет клиента по идентификатору.

Параметр Тип Обязательно Описание
clientId string Да Идентификатор клиента
await api.deleteClient({ clientId: 'abc' });
POST /api/wireguard/client/{clientId}/enable

Включает клиента для подключения.

Параметр Тип Обязательно Описание
clientId string Да Идентификатор клиента
await api.enableClient({ clientId: 'abc' });
POST /api/wireguard/client/{clientId}/disable

Отключает клиента.

Параметр Тип Обязательно Описание
clientId string Да Идентификатор клиента
await api.disableClient({ clientId: 'abc' });
PUT /api/wireguard/client/{clientId}/name

Изменяет имя клиента.

Параметр Тип Обязательно Описание
clientId string Да Идентификатор клиента
name string Да Новое имя
await api.updateClientName({ clientId: 'abc', name: 'НовоеИмя' });
PUT /api/wireguard/client/{clientId}/address

Обновляет IP-адрес клиента.

Параметр Тип Обязательно Описание
clientId string Да Идентификатор клиента
address string Да Новый IP-адрес
await api.updateClientAddress({ clientId: 'abc', address: '10.0.0.3' });

Конфигурация и QR-код

GET /api/wireguard/client/{clientId}/configuration

Получает файл конфигурации клиента (.conf) в виде текста.

Параметр Тип Обязательно Описание
clientId string Да Идентификатор клиента
await api.getClientConfig({ clientId: 'abc' }); // { status: 'success', data: '[Interface]...' }
GET /api/wireguard/client/{clientId}/qrcode.svg

Получает конфигурацию клиента в виде SVG QR-кода.

Параметр Тип Обязательно Описание
clientId string Да Идентификатор клиента
await api.getClientQRCode({ clientId: 'abc' }); // { status: 'success', data: '...' }
PUT /api/wireguard/restore

Восстанавливает конфигурацию сервера из строки.

Параметр Тип Обязательно Описание
file string Да Содержимое файла конфигурации
await api.restoreConfiguration('[Interface]...');

Разное

GET /api/release

Получает версию WG-Easy.

await api.getRelease(); // { status: 'success', data: { version: '7' } }
GET /api/lang

Получает язык интерфейса.

await api.getLang(); // { status: 'success', data: { lang: 'ru' } }
GET /api/ui-traffic-stats

Получает статистику трафика.

await api.getUITrafficStats(); // { status: 'success', data: { bytesSent: 12345 } }
GET /api/ui-chart-type

Получает тип диаграммы интерфейса.

await api.getChartType(); // { status: 'success', data: { type: 'line' } }

Советы по отладке

Скопировано в буфер обмена!