ForestVPN на MikroTik с папкой flash
Установите контейнер ForestVPN на hAP ac² или другую плату MikroTik на 16 МБ, чтобы ключ переживал перезагрузку, а образ загружался заново при старте.
Обновлено 8 октября 2026 г.
Пока не проверено на реальном оборудовании. Поведение при перезагрузке проверено на лабораторном роутере, где вместо оперативной корневой папки платы использовался RAM-диск; запуск загрузочного скрипта при настоящей загрузке не проверялся.
Что вы получите
Контейнер ForestVPN, который сохраняет свою идентичность после перезагрузок на MikroTik с папкой flash. На таких платах после перезагрузки остаётся только flash; всё остальное — RAM-диск.
Перед началом
- Устройство: MikroTik с папкой
flashв/file. Это платы на 16 МБ, например hAP ac². - Прошивка: RouterOS 7.21 или новее, с установленным пакетом
containerи включённым режимом контейнеров (MikroTik требует для этого физического доступа к роутеру). - Время: около десяти минут.
- Что может пойти не так: образ не помещается во flash, поэтому при каждой загрузке он снова скачивается с Docker Hub (около 3,6 МиБ). Интернет на роутере должен работать при загрузке, и пока загрузка образа не закончилась, туннеля нет.
- Старая установка: если вы устанавливали до версии 0.3.14, не вставляйте команду установки поверх неё. Сначала прочитайте раздел «Если что-то не так».
Шаги
-
Убедитесь, что на плате есть папка
flash. Если ничего не выведено, этот рецепт не для вашей платы; используйте стандартную настройку.Проверяет наличие папки flash
/file/print where name="flash" -
Вставьте команду установки со страницы Получить приложение, Роутер. Она сама определяет папку: помещает состояние во flash, отправляет журнал в память контейнера, отключает автозапуск и добавляет загрузочный скрипт, который скачивает образ и запускает контейнер, когда появляется интернет. Ничего редактировать не нужно.
-
Прочитайте, что она сделала. Источник монтирования должен находиться во flash.
Показывает, где хранится ключ
/container/mounts/print -
Убедитесь, что загрузочный скрипт существует.
Показывает загрузочный планировщик
/system/scheduler/print where name="forestvpn-repull"
Проверка, что всё сработало
Перезагрузите роутер, подождите три минуты, затем посмотрите на контейнер и его журнал.
Перезагружает роутер
/system/rebootПоказывает, что контейнер работает и не просит привязки заново
/container/print
/log print where message~"ForestVPN"Вы должны увидеть работающий контейнер и ни одного нового кода привязки в журнале. Новый код привязки означает, что ключ потерян и это новое устройство.
Отмена
Это удаляет контейнер и загрузочный скрипт. Папка состояния на flash остаётся, поэтому при повторной установке устройство будет тем же.
Удаляет загрузочный скрипт и контейнер
/system/scheduler/remove [find name="forestvpn-repull"]
/system/script/remove [find name="forestvpn-repull"]
/container/remove [find name="fvpn"]Если что-то не так
| Симптом | Причина | Что делать |
|---|---|---|
В журнале execvp /mikrotik.sh: No such file or directory | Корень контейнера или ключ лежали на RAM-диске, как в установках до 0.3.14 | Скопируйте ключ на flash до следующей перезагрузки, затем удалите контейнер и снова запустите команду установки. Шаги описаны в заметках MIGRATION в конце скрипта установки. |
| Контейнер остаётся остановленным после перезагрузки | Нет загрузочного скрипта или интернет ещё не работал | Проверьте шаг 4. Скрипт повторяет загрузку до 60 раз. |
Загрузка завершается с resolving error | Интернет на роутере не был готов при загрузке | Подождите; скрипт пробует снова каждую минуту. |
| Появляется новый код привязки | Ключа не было на flash | Теперь роутер — новое устройство. Не привязывайте его, удалите и установите заново. |
Ограничения
- Пока образ не загружен при старте, туннеля нет, поэтому у роутера, загрузившегося без интернета, его не будет.
- Flash на таких платах мал. Заполненный flash мешает RouterOS сохранять собственную конфигурацию, поэтому журнал остаётся в памяти.
- Папка состояния занимает около 5 КБ. В ней хранится идентичность устройства: если её удалить, это станет новым устройством, которого нет в вашем аккаунте.