Перейти к основному содержанию

Как настроить AdGuard VPN для Linux на роутере Asuswrt-Merlin

Системные требования
  1. Для работы AdGuard VPN CLI требуется не менее 22 МБ свободного места на диске вашего роутера или внешнем USB-накопителе после установки необходимых пакетов.
  2. Прошивка Asuswrt-Merlin: убедитесь, что на вашем роутере установлена прошивка Asuswrt-Merlin.
  3. USB-накопитель: USB-накопитель, отформатированный в файловой системе Linux (ext2, ext3 или ext4). В этом руководстве мы рассмотрим процесс форматирования.

1. Определите IP-адрес вашего роутера

IP-адрес по умолчанию для большинства роутеров — 192.168.1.1 или 192.168.0.1. Если вы изменили IP-адрес или не уверены, его можно найти, проверив конфигурацию IP-адреса на подключенном устройстве.

На Windows

  1. Откройте командную строку:

    ipconfig
  2. Найдите Шлюз по умолчанию в активном сетевом подключении. Это IP-адрес вашего роутера.

На Mac/Linux

  1. Откройте Терминал и выполните эту команду на Linux:

    ip route | grep default

    Или эту на Mac:

    route -n get default
  2. Найдите запись default. Рядом с ней находится IP-адрес вашего роутера.

2) Убедитесь, что на роутере включены пользовательские скрипты SSH и JFFS

Сначала убедитесь, что на вашем роутере включён доступ к SSH. Эта настройка обычно находится в веб-интерфейсе роутера. Для установки правил маршрутизации будут использоваться пользовательские скрипты JFFS.

  1. Войдите в веб-интерфейс. Как правило, он доступен через веб-браузер по адресу http://192.168.1.1. В противном случае замените 192.168.1.1 на IP-адрес вашего роутера.

  2. Прокрутите вниз до Дополнительных настроек, АдминистрированиеСистема.

  3. Перейдите к разделу Сервис, нажмите Включить SSHLAN.

  4. Выберите 22 в Порт и Да в Разрешить вход по паролю.

  5. Перейдите к разделу Постоянный раздел JFFS2 и включите Настраиваемые скрипты и конфигурации JFFS.

  6. Нажмите Применить внизу страницы.

3) Используйте SSH-клиент для подключения к роутеру

Вам понадобится SSH-клиент. Большинство систем на Linux и macOS поставляются с предустановленным SSH-клиентом. Для Windows вы можете использовать PowerShell, встроенный SSH-клиент в Windows 10/11 или стороннее приложение, например PuTTY.

Встроенный SSH-клиент (для Linux, macOS и Windows 10/11)

  1. Откройте Терминал или PowerShell.

  2. Выполните команду SSH:

    ssh admin@192.168.1.1

    Замените 192.168.1.1 на IP-адрес вашего роутера и admin — на имя пользователя администратора.

  3. Если вы впервые подключаетесь к роутеру через SSH, вы увидите такое сообщение:

    The authenticity of host '192.168.1.1 (192.168.1.1)' can't be established.
    ECDSA key fingerprint is SHA256:...
    Are you sure you want to continue connecting (yes/no/[fingerprint])?

    Введите yes и нажмите Enter.

  4. Введите пароль от роутера, когда появится соответствующий запрос. Имя пользователя и пароль SSH совпадают с учётными данными администратора.

PuTTY (Windows ниже 10)

  1. Скачайте и установите PuTTY с официального сайта.
  2. Откройте PuTTY.
  3. В поле Имя хоста (или IP-адрес) введите IP вашего роутера (например, 192.168.1.1).
  4. Убедитесь, что для параметра Тип соединения установлено значение SSH.
  5. Нажмите Открыть.
  6. Когда откроется окно Терминала, введите учётные данные роутера. Имя пользователя и пароль SSH совпадают с учётными данными администратора.

4) Установите Entware с помощью SSH

После входа в SSH-клиент вы можете использовать различные команды для взаимодействия с операционной системой роутера на базе Linux. Чтобы продолжить, вам нужно установить Entware OPKG Manager. Он позволяет устанавливать пакеты ПО сторонних производителей для расширения возможностей роутера. Перейдите к следующему шагу, если он уже установлен.

Обратите внимание, что вы не можете одновременно использовать Optware (устаревшую альтернативу) и Entware.

Asus DownloadMaster основан на Optware и поэтому не совместим с Entware. Вам придётся удалить DownloadMaster и рассмотреть альтернативы, предлагаемые Entware.

После удаления убедитесь, что каталог asusware.arm или asusware.* на подключённом разделе диска удалён. В противном случае Entware не будет работать должным образом. После удаления DownloadMaster убедитесь, что роутер перезагружен.

Вам потребуется подключить USB-диск, отформатированный в файловой системе Linux (ext2, ext3 или ext4). Чтобы отформатировать диск, используйте amtm. Вставьте USB-диск в роутер, затем запустите amtm с помощью:

amtm

Используйте эту опцию, чтобы отформатировать диск и подключить его к роутеру:

fd

Пройдите процесс форматирования и выберите рекомендуемые варианты. Все файлы с USB-диска будут удалены. Чтобы эта настройка работала, USB-диск должен быть всегда подключён.

После подключения USB-накопителя роутер перезагрузится. Чтобы начать установку, сначала повторно подключитесь к роутеру по SSH.

Затем запустите приложение amtm, просто выполнив:

amtm

В меню появится опция ep для начала установки Entware.

Если вы используете версию прошивки старше 384.15 (или 384.13_4 для RT-AC87U и RT-AC3200), то вы можете начать установку, выполнив следующую команду.

entware-setup.sh

Если скрипт entware-setup.sh не найден, загрузите и запустите следующий скрипт для установки Entware:

wget -O - http://bin.entware.net/armv7sf-k3.2/installer/generic.sh | sh

Выйдите из amtm, нажав e.

5. Установите AdGuard VPN

Обновите списки пакетов:

opkg update

Установите необходимые пакеты:

opkg install curl ca-certificates

Перейдите в папку /opt, выполнив cd /opt, и запустите скрипт установки AdGuard VPN CLI:

curl -fsSL https://raw.githubusercontent.com/AdguardTeam/AdGuardVPNCLI/master/scripts/release/install.sh | sh -s -- -v

На вопрос Would you like to link the binary to /usr/local/bin? ответьте y. Если вам не удалось связать двоичный файл, выполните эту строку:

ln -s /opt/adguardvpn_cli/adguardvpn-cli /opt/bin

Импортируйте SSL-сертификат и модуль tun и установите альтернативную папку для директории пользователя. По умолчанию он будет храниться в /tmp, и вы потеряете свои настройки после перезагрузки. Выполняйте это перед каждым новым сеансом.

export SSL_CERT_FILE=/opt/etc/ssl/certs/ca-certificates.crt
export HOME=/opt/home/admin
modprobe tun

6. Настройте AdGuard VPN CLI

  1. Войдите в аккаунт

    Чтобы использовать AdGuard VPN для Linux, вам понадобится аккаунт AdGuard.

    Вы можете зарегистрироваться или войти в аккаунт на нашем сайте или в Терминале.

    Чтобы зарегистрироваться или войти, введите:

    adguardvpn-cli login
  2. Подключитесь к VPN

    Выберите локацию VPN-сервера, которая лучше всего соответствует вашим потребностям.

    Как правило, чем ближе сервер, тем быстрее соединение.

    Чтобы посмотреть доступные локации, введите:

    adguardvpn-cli list-locations

    Чтобы подключиться к определённой локации, введите:

    adguardvpn-cli connect -LOCATION_NAME

    Замените LOCATION_NAME на город, страну или ISO-код локации на английском, к которой хотите подключиться.

    Для быстрого подключения введите:

    adguardvpn-cli connect

    AdGuard VPN выберет самую быструю локацию и запомнит её для будущих быстрых подключений.

    Введите yes на вопрос Would you like to set default routes in TUN mode?

    AdGuard VPN CLI создаст интерфейс tun0 для VPN-туннелирования.

  3. Настройте VPN

    Получите список всех доступных команд AdGuard VPN и настройте VPN-клиент под свои нужды.

    Чтобы просмотреть все команды, введите:

    adguardvpn-cli --help-all

7) Настройте правила фаервола и автоматический запуск AdGuard VPN

На этом шаге настраиваются правила фаервола на роутере Asuswrt-Merlin для маршрутизации трафика через AdGuard VPN.

  1. Создайте новый скрипт, выполнив следующую команду:

    cat << 'EOF' > /jffs/scripts/wan-event
    #!/bin/sh

    if [ "$2" = "connected" ]; then
    export SSL_CERT_FILE=/opt/etc/ssl/certs/ca-certificates.crt
    export HOME=/opt/home/admin
    modprobe tun
    /opt/adguardvpn_cli/adguardvpn-cli connect &
    for ipt in iptables ip6tables; do
    $ipt -D FORWARD -j ADGUARD_FORWARD || true
    $ipt -F ADGUARD_FORWARD || true
    $ipt -X ADGUARD_FORWARD || true
    $ipt -N ADGUARD_FORWARD
    $ipt -I FORWARD -j ADGUARD_FORWARD
    $ipt -A ADGUARD_FORWARD -i br0 -o tun0 -j ACCEPT
    done
    exit 0
    fi
    EOF

    И сделайте её исполняемой:

    chmod a+rx /jffs/scripts/wan-event

    Если у вас больше интерфейсов brX, обязательно включите их в скрипт для маршрутизации их трафика. Или укажите другое правило маршрутизации для этих интерфейсов.

    Этот скрипт гарантирует, что весь трафик проходит через VPN-туннель. После перезагрузки или повторного подключения к интернету AdGuard VPN автоматически подключится к последней использованной локации.

  2. Перезагрузите роутер, чтобы завершить настройку.

    Готово! Теперь у вас есть роутер, защищённый с помощью AdGuard VPN.

    Если вы хотите снова подключиться к роутеру по SSH, чтобы отправлять команды в AdGuard VPN, сначала выполните следующее:

    export SSL_CERT_FILE=/opt/etc/ssl/certs/ca-certificates.crt
    export HOME=/opt/home/admin
    modprobe tun