Привет. Я занимаюсь администрированием корпоративных сетей и уже несколько лет плотно работаю с MikroTik. WireGuard на RouterOS стал для меня основным инструментом организации VPN — он быстрый, простой в понимании и хорошо вписывается в инфраструктуру.
Но каждый раз, когда нужно было поднять новый пул клиентов, я сталкивался с одной и той же головной болью.
Проблема, которую я решал
Настройка WireGuard на MikroTik — это не просто /ip vpn add. Нужно:
- сгенерировать серверную пару ключей
- для каждого клиента сгенерировать приватный ключ, публичный ключ и preshared key
- собрать RouterOS-скрипт с правильными peer-записями
- для каждого клиента собрать отдельный .conf-файл
- не перепутать, какой ключ чей
Если клиентов трое — терпимо. Если десять — уже больно. Если нужно повторить через три месяца — снова вспоминаешь, как это всё работает.
Я смотрел на существующие онлайн-генераторы. Они решают задачу, но у них есть один принципиальный изъян: вы отправляете приватные ключи на чужой сервер. Для домашнего использования — окей. Для корпоративной инфраструктуры — неприемлемо.
Что я сделал
Я написал генератор конфигураций MikroTik WireGuard, который работает полностью в браузере, без серверной части. Один HTML-файл, который можно скачать, положить на флешку, открыть на любом компьютере без интернета — и пользоваться.
Никакие ключи никуда не уходят. Всё происходит локально, в JavaScript, прямо у вас на машине.
Как это работает изнутри
Для генерации ключей я использовал библиотеку TweetNaCl — это проверенная криптографическая библиотека, реализующая Curve25519, на которой и основан WireGuard.
Алгоритм генерации ключей полностью соответствует спецификации WireGuard:
priv[0] &= 248
priv[31] &= 127
priv[31] |= 64
pub = scalarmult.base(priv)
Публичный ключ вычисляется из приватного прямо в браузере. Preshared key — 32 байта случайных данных через nacl.randomBytes(). Всё кодируется в Base64 — именно в том формате, который ожидает RouterOS и стандартный WireGuard-клиент.
Что генерирует инструмент
RouterOS .rsc скрипт, который можно запустить через терминал или Winbox. Он создаёт:
- WireGuard-интерфейс с приватным ключом сервера
- Правила firewall filter (разрешение UDP на порт VPN + DNS от клиентов)
- IP-адрес на интерфейсе
- Записи peers для каждого клиента — с public-key, preshared-key, client-dns, client-keepalive, client-address и client-endpoint
Клиентские .conf-файлы — стандартный формат WireGuard, совместимый с официальным клиентом на Windows, macOS, iOS, Android.
QR-коды для каждого клиента — открываешь приложение WireGuard на телефоне, сканируешь, готово.
ZIP-архив со всем сразу — серверный скрипт + папка с конфигами клиентов.
Параметры, которые задаёшь
- Server / Port — внешний адрес и порт WireGuard
- Interface Name — имя интерфейса в RouterOS (например wg-clients)
- Сеть — подсеть /24 для WireGuard-клиентов (например 10.20.0)
- Первый IP — с какого хоста начинать нумерацию клиентов
- Количество клиентов — таблица генерируется автоматически
- Allowed IPs — что пускать через тоннель: 0.0.0.0/0 для полного туннелирования или конкретные подсети для сплит-тоннеля
- DNS — адрес DNS-сервера для клиентов (можно указать внутренний роутер)
Каждый клиент в таблице — это строка с именем, IP-адресом и приватным ключом. Имена и ключи можно менять вручную, либо перегенерировать одной кнопкой.
Практический пример использования
Мне нужно было поднять WireGuard-сервер на MikroTik для удалённых сотрудников. Подсеть 10.20.0.0/24, интерфейс wg-clients, порт 51821.
Открываю генератор → заполняю поля → жму Generate → копирую RouterOS-скрипт в терминал роутера → отправляю каждому сотруднику его .conf-файл или QR-код. Весь процесс занял минут пять. Без единой ошибки в ключах и без ручной сборки конфигов.
Раньше это занимало полчаса и несколько итераций.
Почему это важно — про безопасность ключей
WireGuard-ключи — это не пароли, которые можно сменить нажатием кнопки. Это криптографические идентификаторы. Если приватный ключ клиента утечёт — злоумышленник может подключиться к вашему VPN, представившись этим клиентом.
Когда вы вводите ключи в онлайн-сервис, вы должны доверять его оператору, его серверам, его логам и его безопасности. Я предпочитаю не доверять никому без необходимости.
Офлайн-инструмент снимает этот вопрос полностью.
Ограничения и планы
Инструмент сейчас покрывает самый распространённый сценарий — /24-подсеть, один сервер, стандартные настройки. Для большинства задач этого достаточно.
Что можно добавить в будущем: поддержка нескольких подсетей, IPv6, импорт существующих конфигов, шаблоны для типовых сценариев (road warrior, site-to-site).
Где взять
Файл генератора я выложу в открытый доступ. Это один .html-файл — скачиваете, открываете в браузере, пользуетесь. Никакой установки, никаких зависимостей, никакого интернета в момент использования.
Если вы администрируете MikroTik и периодически настраиваете WireGuard — попробуйте. Возможно, это сэкономит вам время так же, как сэкономило мне.
Если есть вопросы по настройке WireGuard на MikroTik или пожелания к функциональности — пишите в комментарии. Постараюсь ответить.
ссылка на генератор.