Что такое AdGuard VPN CLI и зачем он нужен
AdGuard VPN CLI — это официальный клиент AdGuard VPN для Linux, который работает через командную строку. До недавнего времени у AdGuard не было нативного VPN-приложения для Linux, и пользователям приходилось использовать сторонние решения или обходные пути. С появлением CLI-версии ситуация изменилась: теперь можно подключаться к VPN-серверам AdGuard прямо из терминала, без графического интерфейса.
CLI-версия особенно полезна для:
- Пользователей серверов и VPS, где нет графической оболочки.
- Владельцев одноплатных компьютеров (Raspberry Pi, Orange Pi и т.п.).
- Пользователей роутеров с OpenWrt или GL.iNet, где CLI — единственный способ запустить VPN.
- Энтузиастов, которые предпочитают управлять системой через терминал.
Важно понимать, что AdGuard VPN использует собственный протокол на основе IPsec/IKEv2, а не OpenVPN или WireGuard. Это означает, что стандартные инструменты для настройки этих протоколов не подойдут, и нужно использовать именно официальный CLI.
Системные требования и подготовка
Перед установкой AdGuard VPN CLI убедитесь, что ваша система соответствует минимальным требованиям:
- Операционная система: Linux (поддерживаются основные дистрибутивы: Ubuntu, Debian, Fedora, Arch и другие).
- Архитектура: x86_64, arm64 или armv7 (проверьте в документации).
- Наличие установленного пакета
curlдля загрузки скрипта установки. - Права суперпользователя (root) или возможность использовать
sudo. - Стабильное интернет-соединение.
Также потребуется активная учётная запись AdGuard VPN. Если у вас ещё нет подписки, её можно оформить на официальном сайте. Обратите внимание, что для работы CLI необходима именно подписка AdGuard VPN, а не просто аккаунт AdGuard.
Перед началом установки рекомендуется обновить список пакетов и установить curl, если он ещё не установлен. В большинстве дистрибутивов это делается командами sudo apt update && sudo apt install curl (для Debian/Ubuntu) или аналогичными для других пакетных менеджеров.
Установка AdGuard VPN CLI
Установка AdGuard VPN CLI выполняется с помощью официального скрипта, который загружается с GitHub. Скрипт автоматически определит архитектуру вашей системы и установит необходимые файлы.
Откройте терминал и выполните следующую команду:
curl -fsSL https://raw.githubusercontent.com/AdguardTeam/AdGuardVPNCLI/master/scripts/release/install.sh | sh -s -- -vФлаг -v включает подробный вывод процесса установки. Если всё прошло успешно, вы увидите сообщение AdGuard VPN has been installed successfully!.
После установки бинарный файл будет находиться в /opt/adguardvpn_cli/adguardvpn-cli. Чтобы использовать команду adguardvpn-cli без указания полного пути, создайте символическую ссылку:
sudo ln -sf /opt/adguardvpn_cli/adguardvpn-cli /usr/local/bin/adguardvpn-cliТеперь можно проверить версию и список доступных команд:
adguardvpn-cli --version
adguardvpn-cli helpАвторизация в аккаунте AdGuard VPN
Перед первым подключением необходимо авторизоваться в своей учётной записи AdGuard VPN. Это обязательный шаг, так как без него клиент не сможет получить доступ к серверам.
Выполните команду:
adguardvpn-cli loginВ терминале появится уникальный URL вида https://auth.adguard.io/device_code?user_code=XXXX-XXXX. Откройте этот URL в браузере на любом устройстве (компьютере, смартфоне) и подтвердите вход, используя данные своей учётной записи AdGuard.
После подтверждения вернитесь в терминал и дождитесь сообщения Successfully Logged in. Обратите внимание, что код устройства действует ограниченное время, поэтому не затягивайте с подтверждением.
Если вы используете роутер или сервер без браузера, можно открыть URL на другом устройстве — это удобно, так как не требует ввода пароля в терминале.
Подключение к VPN-серверу
После авторизации можно подключаться к VPN-серверам. Есть два основных режима:
Быстрое подключение — клиент автоматически выберет самый быстрый сервер:
adguardvpn-cli connectПодключение к конкретной локации — сначала посмотрите список доступных серверов:
adguardvpn-cli list-locationsВы увидите список городов и стран. Для подключения к нужной локации используйте команду:
adguardvpn-cli connect -l ParisВместо названия города можно использовать код страны (например, -l DE для Германии). При первом подключении клиент может спросить, нужно ли настроить DNS и другие параметры — ответьте yes, если не хотите вручную настраивать систему.
После успешного подключения вы увидите сообщение Successfully Connected to <локация>. Проверить статус можно командой:
adguardvpn-cli statusДля отключения используйте:
adguardvpn-cli disconnectНастройка на роутерах GL.iNet
AdGuard VPN CLI можно установить на роутеры GL.iNet с прошивкой OpenWrt. Это позволяет защитить весь домашний трафик, включая устройства, которые не поддерживают VPN (например, Smart TV или игровые консоли).
Процесс установки аналогичен описанному выше, но есть несколько нюансов:
- Подключитесь к роутеру по SSH.
- Обновите список пакетов и установите необходимые зависимости:
opkg update && opkg install curl kmod-tun ca-certificates- Установите AdGuard VPN CLI с помощью того же скрипта.
- Создайте символическую ссылку для удобства.
- Выполните
adguardvpn-cli loginи авторизуйтесь через браузер. - Подключитесь к серверу.
После этого необходимо настроить межсетевой экран, чтобы трафик с LAN-устройств шёл через VPN-туннель. Для этого в SSH выполните следующие команды:
# Добавляем интерфейс tun0
uci set network.tun0='interface'
uci set network.tun0.proto='none'
uci set network.tun0.device='tun0'
uci commit network
/etc/init.d/network reload
# Создаём зону adgvpn
uci add firewall zone
uci set firewall.@zone[-1].name='adgvpn'
uci set firewall.@zone[-1].input='DROP'
uci set firewall.@zone[-1].output='ACCEPT'
uci set firewall.@zone[-1].forward='ACCEPT'
uci add_list firewall.@zone[-1].network='tun0'
# Добавляем правила пересылки
uci add firewall forwarding
uci set firewall.@forwarding[-1].src='lan'
uci set firewall.@forwarding[-1].dest='adgvpn'
uci add firewall forwarding
uci set firewall.@forwarding[-1].src='wan'
uci set firewall.@forwarding[-1].dest='adgvpn'
uci commit firewall
/etc/init.d/firewall reloadЕсли вы хотите, чтобы весь трафик шёл только через VPN (и не было утечек при обрыве), удалите WAN-интерфейсы из основной зоны:
uci del_list firewall.@zone[1].network='wan'
uci del_list firewall.@zone[1].network='wan6'
uci del_list firewall.@zone[1].network='wwan'
uci commit firewall
/etc/init.d/firewall reloadОбратите внимание, что на прошивках GL.iNet v4.8.0 и выше необходимо отключить политику маршрутизации, иначе VPN не будет работать:
uci set route_policy.global.enabled="0"
uci commit route_policy
rtp2.shПосле этого можно настроить автозапуск VPN при перезагрузке роутера (см. следующий раздел).
Автозапуск и управление службой
Чтобы AdGuard VPN автоматически подключался при загрузке системы, создайте systemd-сервис (для обычных Linux-систем) или init-скрипт (для OpenWrt).
Для systemd (Ubuntu, Debian, Fedora):
Создайте файл /etc/systemd/system/adguardvpn.service:
[Unit]
Description=AdGuard VPN CLI
After=network-online.target
Wants=network-online.target
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/usr/local/bin/adguardvpn-cli connect
ExecStop=/usr/local/bin/adguardvpn-cli disconnect
[Install]
WantedBy=multi-user.targetЗатем выполните:
sudo systemctl daemon-reload
sudo systemctl enable adguardvpn.service
sudo systemctl start adguardvpn.serviceДля OpenWrt (GL.iNet):
Создайте файл /etc/init.d/adguardvpn:
#!/bin/sh /etc/rc.common
START=99
STOP=99
start() {
sleep 60
/opt/adguardvpn_cli/adguardvpn-cli connect
}
stop() {
/opt/adguardvpn_cli/adguardvpn-cli disconnect
}Задержка в 60 секунд нужна, чтобы роутер успел подключиться к интернету (особенно если используется режим репитера). Затем:
chmod +x /etc/init.d/adguardvpn
/etc/init.d/adguardvpn enable
/etc/init.d/adguardvpn restartТакже можно добавить запуск в /etc/rc.local, но лучше использовать стандартные механизмы инициализации.
Проверка утечек DNS и IP
После настройки VPN важно убедиться, что ваш реальный IP-адрес и DNS-запросы не утекают. Для этого используйте онлайн-сервисы:
- ipleak.net — показывает ваш IP, DNS и другую информацию.
- dnsleaktest.com — специализированный тест на утечку DNS.
Откройте эти сайты в браузере и убедитесь, что отображается IP-адрес VPN-сервера, а не ваш реальный. DNS-серверы также должны принадлежать AdGuard или VPN-провайдеру.
Если обнаружены утечки, проверьте:
- Настройки DNS в системе. Для роутеров GL.iNet рекомендуется вручную указать DNS-сервер AdGuard (например, 94.140.14.140) в разделе System > DNS.
- Правила межсетевого экрана — убедитесь, что трафик с LAN идёт через туннель.
- Отключите IPv6, если он не поддерживается VPN.
Также можно проверить статус подключения командой adguardvpn-cli status, которая покажет текущий сервер и время работы.
Решение типичных проблем
При использовании AdGuard VPN CLI могут возникать некоторые проблемы. Рассмотрим самые распространённые.
1. Ошибка "System DNS could not be configured"
Это предупреждение появляется, когда клиент не может автоматически изменить системные DNS-настройки. Оно не критично, но может привести к утечке DNS. Решение — вручную настроить DNS-серверы (например, 94.140.14.140) в настройках сети.
2. VPN не подключается после перезагрузки роутера
Если роутер использует режим репитера (повторителя), VPN может не успеть подключиться до установки соединения с Wi-Fi. В этом случае добавьте задержку в init-скрипт (как показано выше) или выполните подключение вручную.
3. Конфликт с другими VPN-клиентами
AdGuard VPN CLI использует туннель tun0. Если у вас уже есть другой VPN (например, WireGuard), возможны конфликты. Отключите другие VPN-клиенты или настройте маршрутизацию.
4. Не удаётся авторизоваться
Убедитесь, что вы используете актуальную версию CLI. Если код устройства истёк, просто выполните adguardvpn-cli login заново.
5. Проблемы с производительностью
Если скорость соединения низкая, попробуйте подключиться к другому серверу. Также проверьте, не используете ли вы одновременно AdGuard CLI (для блокировки рекламы) — это может вызывать конфликты (см. следующий раздел).
Совместная работа с AdGuard CLI (блокировщиком рекламы)
AdGuard также предлагает отдельный CLI-инструмент для блокировки рекламы (AdGuard CLI). Если вы используете оба инструмента одновременно, могут возникнуть конфликты из-за маршрутизации трафика.
AdGuard CLI в автоматическом прокси-режиме перехватывает весь трафик, а AdGuard VPN CLI создаёт туннель. Это приводит к петле маршрутизации, так как трафик AdGuard CLI должен идти через VPN-туннель, но сам туннель не может быть исключён из проксирования.
Есть два решения:
- Переключить AdGuard CLI в ручной прокси-режим. В этом случае приложения, для которых нужна блокировка рекламы, должны быть вручную настроены на использование прокси AdGuard CLI.
- Использовать AdGuard VPN CLI в режиме SOCKS5. Настройте AdGuard CLI на использование SOCKS5-интерфейса AdGuard VPN CLI в качестве исходящего прокси. При этом важно включить опцию
skip_outbound_proxyдля AdGuard VPN CLI в конфигурации AdGuard CLI, чтобы избежать петли. По умолчанию эта опция уже включена для всех приложений сvpnв имени.
Выбор метода зависит от ваших задач. Если вам нужна только блокировка рекламы в браузере, проще использовать ручной прокси-режим. Если нужна защита всего трафика, лучше настроить SOCKS5.
Часто задаваемые вопросы
Вопросы и ответы
Как установить AdGuard VPN CLI на Linux?
Установка выполняется одной командой:
curl -fsSL https://raw.githubusercontent.com/AdguardTeam/AdGuardVPNCLI/master/scripts/release/install.sh | sh -s -- -vПосле установки создайте символическую ссылку для удобного вызова: sudo ln -sf /opt/adguardvpn_cli/adguardvpn-cli /usr/local/bin/adguardvpn-cli.
Нужна ли подписка AdGuard VPN для работы CLI?
Да, для использования AdGuard VPN CLI требуется активная подписка AdGuard VPN. Без неё авторизация не пройдёт, и подключение к серверам будет невозможно.
Как подключиться к конкретному серверу?
Сначала посмотрите список доступных локаций командой adguardvpn-cli list-locations. Затем подключитесь к нужной, указав город или код страны: adguardvpn-cli connect -l Paris или adguardvpn-cli connect -l DE.
Можно ли использовать AdGuard VPN CLI на роутере?
Да, на роутерах с OpenWrt (например, GL.iNet) это возможно. Установите CLI через SSH, настройте межсетевой экран и автозапуск. Подробная инструкция приведена в статье.
Что делать, если VPN не подключается после перезагрузки роутера?
Добавьте задержку перед запуском VPN в init-скрипте (например, sleep 60), чтобы роутер успел подключиться к интернету. Также проверьте, не конфликтует ли AdGuard VPN с другими VPN-клиентами.
Как проверить, что VPN работает и нет утечек?
Используйте сервисы ipleak.net и dnsleaktest.com. Они покажут ваш IP и DNS-серверы. Если они не принадлежат VPN-провайдеру, значит, есть утечка. Также можно выполнить adguardvpn-cli status для проверки состояния подключения.