Как установить AdGuard VPN CLI на роутеры MikroTik с RouterOS
- RouterOS 7.6+ с функцией Container и поддержкой запуска при загрузке
- SSH-доступ к роутеру
В этом руководстве объясняется, как установить и запустить Docker-контейнер AdGuard VPN CLI на роутерах MikroTik на базе RouterOS.
Эти настройки были протестированы на RouterOS 7.22. Рекомендуется использовать последнюю стабильную версию RouterOS для лучшей совместимости.
Конфигурация RouterOS
1. Подключитесь к роутеру через SSH
ssh admin@192.168.1.1
Замените IP на адрес вашего роутера
2. Проверьте, установлен ли пакет контейнера
/system/package/print
Найдите пакет container в списке. Если его там нет, установите его:
Установка пакета контейнера
-
Скачайте файл
.npkдля вашей архитектуры и версии ОС с официального сайта -
Загрузите файл
.npkна роутер:scp container-7.X-platform.npk admin@192.168.1.1:Замените IP на адрес вашего роутера.
-
Убедитесь, что файл загружен:
/file/printВы должны увидеть файл
container-X.XX.npk. -
Перезагрузите роутер:
/system/rebootПосле перезагрузки файл
.npkисчезнет. Это поведение ожидаемо. Оно означает, что пакет был успешно установлен. -
Проверьте:
/system/package/printПакет
containerдолжен появиться в списке.
3) Включите режим Container
Включите режим контейнера и следуйте указаниям команды. Для подтверждения изменения режима работы устройства потребуется выполнить холодную перезагрузку (физически отключить и снова подключить питание).
/system/device-mode/update container=yes
Не закрывайте терминал и не прерывайте выполнение команды до отключения питания — это приведет к отмене операции.
4. Убедитесь, что режим контейнера активен
/system/device-mode/print
Должно отобразиться container: yes
5. Настройте сеть для контейнера
Как это работает
В этой настройке:
- Контейнер выступает в качестве VPN-шлюза
- RouterOS направляет выбранный трафик через отдельную таблицу маршрутизации (
via_vpn) - Трафик перенаправляется в контейнер, а затем туннелируется через AdGuard VPN
Поток:
LAN → RouterOS → Правило маршрутизации → Контейнер → VPN → Интернет
Эта настройка направляет весь LAN-трафик через VPN-контейнер. Неправильная конфигурация может привести к нарушению сетевого соединения или потере доступа в интернет.
Создайте интерфейс veth:
/interface/veth/add name=veth1 address=172.17.0.2/24 gateway=172.17.0.1
Создайте мост:
/interface/bridge/add name=docker
Добавьте veth в мост:
/interface/bridge/port/add bridge=docker interface=veth1
Назначьте мосту IP-адрес:
/ip/address/add address=172.17.0.1/24 interface=docker
Настройте NAT для доступа контейнера к интернету:
/ip/firewall/nat/add chain=srcnat src-address=172.17.0.0/24 out-interface=ether1 action=masquerade
Замените ether1 на имя вашего WAN-интерфейса (например, ether3, ether5). Чтобы найти его:
- Выполните
/ip/route/printи найдите маршрут по умолчанию (0.0.0.0/0, routing-table=main) — запишите IP-адрес шлюза - В том же выводе найдите подключённый маршрут ('DAc'), который покрывает IP-адрес этого шлюза. Указанный там интерфейс — это ваш WAN-интерфейс
Создайте таблицу маршрутизации для VPN
/routing/table/add name=via_vpn fib
Добавьте маршрут по умолчанию через контейнер
/ip/route/add dst-address=0.0.0.0/0 gateway=172.17.0.2@main routing-table=via_vpn distance=1 check-gateway=ping
Добавьте правило маршрутизации
/routing/rule/add src-address=192.168.88.0/24 action=lookup table=via_vpn
Замените IP на адрес вашей локальной сети
Настройте DNS-серверы для клиентов локальной сети на общедоступные DNS-серверы
/ip/dhcp-server/network/set [find address="192.168.88.0/24"] dns-server=1.1.1.1,8.8.8.8
Запуск контейнера
Загрузите образ напрямую из Docker Hub
1. Настройте реестр контейнеров
Задайте URL-адрес Docker Hub и временную директорию для извлечения образа
/container/config/set registry-url=https://registry-1.docker.io tmpdir=disk1/tmp
Замените disk1 на имя конкретного диска, с которым вы хотите работать. Выберите его из списка, отображённого в выводе команды /disk/print.
Это также относится к следующей команде.
2. Добавьте контейнер и загрузите образ
/container/add name=adguardvpn-cli remote-image=adguard/adguardvpn-cli:latest interface=veth1 root-dir=disk1/adguardvpn-cli start-on-boot=yes logging=yes
Доступные теги:
adguard/adguardvpn-cli:latest— последняя стабильная версияadguard/adguardvpn-cli:nightly— последняя nightly-сборкаadguard/adguardvpn-cli:beta— последняя бета-версияadguard/adguardvpn-cli:1.7.6-nightly— конкретная версия
Параметры:
name=adguardvpn-cli— имя контейнераremote-image— имя образа Docker Hubinterface=veth1— сетевой интерфейс для контейнераroot-dir=disk1/adguardvpn-cli— каталог для файлов контейнераstart-on-boot=yes— авто-старт при перезагрузке роутераlogging=yes— включить логирование
3. Проверьте статус загрузки
/container/print
Образ будет автоматически загружен и извлечён. Дождитесь завершения загрузки (статус изменится на «остановлено»).
4. Запустите контейнер
/container/start adguardvpn-cli
Проверьте состояние контейнера
/container/print
В первом столбце контейнера должен быть установлен флаг R (RUNNING).
Начальная настройка и авторизация в AdGuard VPN CLI
При первом запуске контейнер не сможет подключиться к VPN, так как требуется аутентификация.
1. Откройте оболочку внутри контейнера
/container/shell adguardvpn-cli
2. Настройте AdGuard VPN CLI
-
Войдите в аккаунт
Чтобы использовать AdGuard VPN для Linux, вам понадобится аккаунт AdGuard.
Вы можете зарегистрироваться или войти на нашем сайте или в Терминале.
Чтобы зарегистрироваться или войти, введите:
adguardvpn-cli loginПримечание: если связать бинарный файл с
/usr/local/binне удалось, используйте полный путь к файлу для выполнения всех команд. Например,/opt/adguardvpn_cli/adguardvpn-cli login -
Подключитесь к VPN
Выберите локацию VPN-сервера, которая лучше всего соответствует вашим потребностям.
Как правило, чем ближе к вам сервер, тем быстрее соединение.
Чтобы посмотреть доступные локации, введите:
adguardvpn-cli list-locationsЧтобы подключиться к определённой локации, введите:
adguardvpn-cli connect -l LOCATION_NAMEЗамените LOCATION_NAME на город, страну или ISO-код локации на английском, к которой хотите подключиться.
Для быстрого подключения введите:
adguardvpn-cli connectAdGuard VPN выберет самую быструю локацию и запомнит её для будущих быстрых подключений.
-
Отрегулируйте настройки
Получите список всех доступных команд AdGuard VPN и настройте VPN-клиент под свои нужды.
Чтобы просмотреть все команды, введите:
adguardvpn-cli --help-allAdGuard VPN CLI создаст интерфейс tun0 для VPN-туннелирования.
3) Выйдите из оболочки
exit
4. Перезапустите контейнер
/container/stop adguardvpn-cli
/container/start adguardvpn-cli
После перезапуска контейнер автоматически подключится к VPN.
Проверьте, что VPN работает
1. Войдите в оболочку контейнера
/container/shell adguardvpn-cli
2. Проверьте статус VPN
adguardvpn-cli status
Больше информации о конфигурации контейнера, сети и альтернативных методах установки — в официальной документации MikroTik Container