Как настроить AdGuard VPN для Linux на роутере Asuswrt-Merlin
- Для работы AdGuard VPN CLI требуется не менее 22 МБ свободного места на диске вашего роутера или внешнем USB-накопителе после установки необходимых пакетов.
- Прошивка Asuswrt-Merlin: убедитесь, что на вашем роутере установлена прошивка Asuswrt-Merlin.
- USB-накопитель: USB-накопитель, отформатированный в файловой системе Linux (ext2, ext3 или ext4). В этом руководстве мы рассмотрим процесс форматирования.
1. Определите IP-адрес вашего роутера
IP-адрес по умолчанию для большинства роутеров — 192.168.1.1
или 192.168.0.1
. Если вы изменили IP-адрес или не уверены, его можно найти, проверив конфигурацию IP-адреса на подключенном устройстве.
На Windows
Откройте командную строку:
ipconfig
Найдите Шлюз по умолчанию в активном сетевом подключении. Это IP-адрес вашего роутера.
На Mac/Linux
Откройте Терминал и выполните эту команду на Linux:
ip route | grep default
Или эту на Mac:
route -n get default
Найдите запись default. Рядом с ней находится IP-адрес вашего роутера.
2) Убедитесь, что на роутере включены пользовательские скрипты SSH и JFFS
Сначала убедитесь, что на вашем роутере включён доступ к SSH. Эта настройка обычно находится в веб-интерфейсе роутера. Для установки правил маршрутизации будут использоваться пользовательские скрипты JFFS.
Войдите в веб-интерфейс. Как правило, он доступен через веб-браузер по адресу
http://192.168.1.1
. В противном случае замените192.168.1.1
на IP-адрес вашего роутера.Прокрутите вниз до Дополнительных настроек, Администрирование → Система.
Перейдите к разделу Сервис, нажмите Включить SSH → LAN.
Выберите 22 в Порт и Да в Разрешить вход по паролю.
Перейдите к разделу Постоянный раздел JFFS2 и включите Настраиваемые скрипты и конфигурации JFFS.
Нажмите Применить внизу страницы.
3) Используйте SSH-клиент для подключения к роутеру
Вам понадобится SSH-клиент. Большинство систем на Linux и macOS поставляются с предустановленным SSH-клиентом. Для Windows вы можете использовать PowerShell, встроенный SSH-клиент в Windows 10/11 или стороннее приложение, например PuTTY.
Встроенный SSH-клиент (для Linux, macOS и Windows 10/11)
Откройте Терминал или PowerShell.
Выполните команду SSH:
ssh admin@192.168.1.1
Замените
192.168.1.1
на IP-адрес вашего роутера иadmin
— на имя пользователя администратора.Если вы впервые подключаетесь к роутеру через 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.Введите пароль от роутера, когда появится соответствующий запрос. Имя пользователя и пароль SSH совпадают с учётными данными администратора.
PuTTY (Windows ниже 10)
- Скачайте и установите PuTTY с официального сайта.
- Откройте PuTTY.
- В поле Имя хоста (или IP-адрес) введите IP вашего роутера (например,
192.168.1.1
). - Убедитесь, что для параметра Тип соединения установлено значение SSH.
- Нажмите Открыть.
- Когда откроется окно Терминала, введите учётные данные роутера. Имя пользователя и пароль 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
Войдите в аккаунт
Чтобы использовать AdGuard VPN для Linux, вам понадобится аккаунт AdGuard.
Вы можете зарегистрироваться или войти в аккаунт на нашем сайте или в Терминале.
Чтобы зарегистрироваться или войти, введите:
adguardvpn-cli login
Подключитесь к VPN
Выберите локацию VPN-сервера, которая лучше всего соответствует вашим потребностям.
Как правило, чем ближе сервер, тем быстрее соединение.
Чтобы посмотреть доступные локации, введите:
adguardvpn-cli list-locations
Чтобы подключиться к определённой локации, введите:
adguardvpn-cli connect -l 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-туннелирования.
Настройте VPN
Получите список всех доступных команд AdGuard VPN и настройте VPN-клиент под свои нужды.
Чтобы просмотреть все команды, введите:
adguardvpn-cli --help-all
7) Настройте правила фаервола и автоматический запуск AdGuard VPN
На этом шаге настраиваются правила фаервола на роутере Asuswrt-Merlin для маршрутизации трафика через AdGuard VPN.
Создайте новый скрипт, выполнив следующую команду:
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 автоматически подключится к последней использованной локации.
Перезагрузите роутер, чтобы завершить настройку.
Готово! Теперь у вас есть роутер, защищённый с помощью AdGuard VPN.
Если вы хотите снова подключиться к роутеру по SSH, чтобы отправлять команды в AdGuard VPN, сначала выполните следующее:
export SSL_CERT_FILE=/opt/etc/ssl/certs/ca-certificates.crt
export HOME=/opt/home/admin
modprobe tun