Надежная библиотека клиента на Node.js для взаимодействия с API WireGuard, разработанная для серверов WG-Easy
Мощные инструменты для управления вашим WireGuard VPN
Автоматически обрабатывает повторные попытки при ошибках 401
Полная реализация конечных точек WG-Easy
Поддержка аутентификации через пароль и куки
Подробные ответы об ошибках для легкой отладки
Включены полные определения типов
Начните работу с WireGuard API Клиентом
npm install wg-easy-api
node-fetch
(^3.3.2) - Включено как зависимостьУзнайте, как использовать 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();
try {
const clients = await api.getClients();
} catch (error) {
const err = JSON.parse(error.message);
console.error(err.error, err.statusCode);
}
Полная документация по всем методам
{ status: 'success', data: any }
{ status: 'error', error: string, statusCode: number, details: any }
Вход на сервер WG-Easy с паролем. Автоматически обновляет куки.
Параметр | Тип | Обязательно | Описание |
---|---|---|---|
password | string | Да | Пароль WG-Easy |
await api.initSession({ password: 'мойПароль' }); // { status: 'success', data: { success: true } }
Проверяет статус текущей сессии.
await api.getSession(); // { status: 'success', data: { authenticated: true } }
Создает новую сессию без автоматического обновления куки.
Параметр | Тип | Обязательно | Описание |
---|---|---|---|
password | string | Да | Пароль WG-Easy |
await api.createSession({ password: 'мойПароль' });
Выход из системы путем удаления сессии.
await api.deleteSession(); // { status: 'success', data: null }
Список всех клиентов WireGuard с преобразованием временных меток в объекты Date.
await api.getClients(); // { status: 'success', data: [{ id: 'abc', name: 'Клиент1' }] }
Добавляет нового клиента с указанным именем.
Параметр | Тип | Обязательно | Описание |
---|---|---|---|
name | string | Да | Имя клиента |
await api.createClient({ name: 'МойНоутбук' });
Удаляет клиента по идентификатору.
Параметр | Тип | Обязательно | Описание |
---|---|---|---|
clientId | string | Да | Идентификатор клиента |
await api.deleteClient({ clientId: 'abc' });
Включает клиента для подключения.
Параметр | Тип | Обязательно | Описание |
---|---|---|---|
clientId | string | Да | Идентификатор клиента |
await api.enableClient({ clientId: 'abc' });
Отключает клиента.
Параметр | Тип | Обязательно | Описание |
---|---|---|---|
clientId | string | Да | Идентификатор клиента |
await api.disableClient({ clientId: 'abc' });
Изменяет имя клиента.
Параметр | Тип | Обязательно | Описание |
---|---|---|---|
clientId | string | Да | Идентификатор клиента |
name | string | Да | Новое имя |
await api.updateClientName({ clientId: 'abc', name: 'НовоеИмя' });
Обновляет IP-адрес клиента.
Параметр | Тип | Обязательно | Описание |
---|---|---|---|
clientId | string | Да | Идентификатор клиента |
address | string | Да | Новый IP-адрес |
await api.updateClientAddress({ clientId: 'abc', address: '10.0.0.3' });
Получает файл конфигурации клиента (.conf) в виде текста.
Параметр | Тип | Обязательно | Описание |
---|---|---|---|
clientId | string | Да | Идентификатор клиента |
await api.getClientConfig({ clientId: 'abc' }); // { status: 'success', data: '[Interface]...' }
Получает конфигурацию клиента в виде SVG QR-кода.
Параметр | Тип | Обязательно | Описание |
---|---|---|---|
clientId | string | Да | Идентификатор клиента |
await api.getClientQRCode({ clientId: 'abc' }); // { status: 'success', data: '
Восстанавливает конфигурацию сервера из строки.
Параметр | Тип | Обязательно | Описание |
---|---|---|---|
file | string | Да | Содержимое файла конфигурации |
await api.restoreConfiguration('[Interface]...');
Получает версию WG-Easy.
await api.getRelease(); // { status: 'success', data: { version: '7' } }
Получает язык интерфейса.
await api.getLang(); // { status: 'success', data: { lang: 'ru' } }
Получает статистику трафика.
await api.getUITrafficStats(); // { status: 'success', data: { bytesSent: 12345 } }
Получает тип диаграммы интерфейса.
await api.getChartType(); // { status: 'success', data: { type: 'line' } }
protocol
, ip
, port
в конструкторе.api.cookies
после initSession
.curl
для проверки ответов сервера.