Termux – мощная среда эмуляции Linux для Android, предоставляющая доступ к широкому спектру инструментов командной строки. Одним из важных аспектов сетевого взаимодействия является разрешение DNS-имен – преобразование понятных человеку доменных имен (например, google.com) в IP-адреса, необходимые для установления соединения. В данной статье мы рассмотрим, как настроить собственный DNS-резолвер в Termux с использованием DNS-over-HTTPS (DoH), что позволит повысить скорость и безопасность этого процесса.
Преимущества использования собственного DNS-резолвера с DoH
- Повышение скорости: Локальный DNS-резолвер кэширует ответы, что сокращает время разрешения имен для часто посещаемых сайтов.
- Улучшенная безопасность: DoH шифрует DNS-запросы, предотвращая перехват и манипуляции с ними.
- Конфиденциальность: Использование стороннего DNS-сервера может позволить ему отслеживать историю ваших запросов. Собственный DNS-резолвер позволяет вам контролировать эту информацию.
- Контроль: Вы сами выбираете DNS-серверы, которым доверяете.
Необходимые инструменты
Для реализации нам понадобятся следующие инструменты, доступные в Termux:
- dnsmasq: Легковесный DNS- и DHCP-сервер.
- curl: Инструмент для отправки HTTP-запросов, необходимый для DoH.
- stubby: (Опционально) Альтернативный DoH-клиент.
Установка необходимых пакетов
Обновите список пакетов и установите необходимые инструменты:
pkg update && pkg upgrade
pkg install dnsmasq curl
(Необязательно) Установка stubby:
pkg install stubby
Настройка dnsmasq
Отредактируйте конфигурационный файл dnsmasq. Сначала создадим резервную копию:
cp /etc/dnsmasq.conf /etc/dnsmasq.conf.bak
Затем откройте файл в текстовом редакторе (например, nano):
nano /etc/dnsmasq.conf
Внесите следующие изменения (или добавьте, если их нет):
no-resolv
server=8.8.8.8
server=8.8.4.4
Замените 8.8.8.8 и 8.8.4.4 на адреса предпочитаемых DNS-серверов. Это будут upstream DNS-серверы, к которым будет обращаться dnsmasq. Вы можете использовать и другие публичные DNS-серверы, например, Cloudflare (1.1.1.1, 1.0.0.1) или Quad9 (9.9.9.9, 149.112.112.112).
Сохраните файл и выйдите из редактора.
Настройка DNS-over-HTTPS с помощью curl
Для использования DoH, dnsmasq необходимо настраивать для отправки запросов через HTTP. Это можно сделать с помощью curl. В конфигурационном файле dnsmasq.conf добавьте (или измените существующую) строку server, указав DoH-сервер:
server=/example.com/dns-query 127.0.0.1#53
Замените /example.com/dns-query на URL DoH-сервера, который вы хотите использовать. Например, для Cloudflare:
server=/https-dns.cloudflare.com/dns-query 127.0.0.1#53
Настройка DNS-over-HTTPS с помощью stubby (альтернативный метод)
Если вы установили stubby, то настройка будет проще. Отредактируйте файл /etc/stubby/stubby.yml и укажите предпочитаемые DoH-серверы.
После настройки запустите stubby:
stubby -i
В dnsmasq.conf укажите 127.0.0.1#53 как DNS-сервер.
Запуск и проверка dnsmasq
Запустите dnsmasq:
dnsmasq
Проверьте, что dnsmasq работает:
ps aux | grep dnsmasq
Проверьте разрешение имен с помощью команды nslookup или dig:
nslookup google.com
Убедитесь, что разрешение происходит через ваш настроенный DNS-сервер. Вы можете проверить это, посмотрев на IP-адрес, возвращенный nslookup, и сравнив его с IP-адресами, возвращаемыми при прямом запросе к вашему upstream DNS-серверу.
Настройка Termux для использования локального DNS-резолвера
Чтобы Termux использовал ваш локальный DNS-резолвер, необходимо изменить настройки сети Termux. Это можно сделать, отредактировав файл /etc/resolv.conf. Важно понимать, что этот файл может перезаписываться при каждом запуске Termux, поэтому для сохранения изменений необходимо использовать специальные методы, например, создание скрипта, который будет запускаться при старте Termux. Альтернативно, можно использовать VPN-подключение для создания локальной сети и настройки DNS-сервера в настройках VPN-клиента. Это наиболее надежный способ гарантировать, что Termux всегда использует ваш локальный DNS-резолвер.
Заключение
В этой статье мы рассмотрели, как настроить собственный DNS-резолвер с поддержкой DNS-over-HTTPS в Termux. Это позволит вам ускорить и обезопасить разрешение DNS-имен, а также получить больше контроля над вашим сетевым трафиком. Если у вас возникли сложности с настройкой или вам требуется помощь в решении других задач, связанных с Termux и Android, обращайтесь в РыбинскЛАБ. Мы предлагаем широкий спектр услуг по настройке, администрированию и обеспечению безопасности мобильных устройств.