Приватний DNS в Android чи DoH-застосунок

Приватний DNS в Android шифрує запити через DNS over TLS без застосунку. Коли DoH-застосунок кращий, як вони конфліктують і чого не виправить жоден.

Якщо ви шукали «зашифрований DNS на Android», то, мабуть, натрапили на дві відповіді. Одна каже: застосунок не потрібен, просто ввімкніть приватний DNS. Друга каже: встановіть застосунок, що працює через DNS over HTTPS. Обидві слушні. Вони розв’язують ту саму проблему по-різному і дають збій у різних місцях. Цей посібник пояснює, як працює кожен варіант, де кожен має труднощі і як вибрати. Ми розробляємо GreenTunnel, який містить DoH-клієнт, тож читайте з урахуванням цього.

Що насправді таке приватний DNS

Google додав приватний DNS в Android 9. Зазвичай він розташований у Налаштування → Мережа й Інтернет → Приватний DNS-сервер, хоча точний шлях різниться в різних виробників телефонів. Є три варіанти:

  • Вимкнено: запити йдуть відкритим текстом до DNS-сервера, який видає поточна мережа.
  • Автоматично: типовий варіант. Android пробує DNS over TLS з власним DNS-сервером мережі і використовує його, якщо сервер це підтримує. Якщо ні, запити залишаються відкритим текстом. Це часто називають опортуністичним режимом, і в більшості домашніх і мобільних мереж це означає повну відсутність шифрування.
  • Ім’я хоста постачальника приватного DNS: ви вводите ім’я хоста постачальника, наприклад dns.google для Google Public DNS. Тоді Android наполягає саме на цьому сервері. Якщо не може до нього дістатися, він не переходить непомітно на звичайний DNS. Згідно з оголошенням Google, Android натомість позначає мережу як таку, що не має доступу до інтернету.

DNS over TLS стандартизовано в RFC 7858, і він використовує власний порт 853. Цей окремий порт водночас і сила, і слабкість: усе чисто й просто, але мережі також легко його розпізнати й заблокувати.

А як щодо DNS over HTTPS в Android?

Є нюанс, який пропускають багато посібників. У липні 2022 року Google оголосив, що через системне оновлення Google Play пристрої з Android 11 і новішими використовують DNS over HTTP/3 замість DNS over TLS для відомих DNS-серверів, які це підтримують. На старті це стосувалося Google і Cloudflare. Публікація Google наголошує, що DNS-сервіс, яким ви користуєтеся, не змінюється, змінюється лише транспорт. Ви так само вводите ім’я хоста в те саме поле приватного DNS. Поля для довільної адреси DoH немає, а для інших постачальників приватний DNS залишається DNS over TLS.

Що DoH-застосунок робить інакше

DoH-застосунок або VPN-застосунок із DoH-клієнтом бере на себе DNS усього пристрою через слот VPN в Android. Кожен запит іде всередині HTTPS до DoH-сервера, наприклад https://cloudflare-dns.com/dns-query, як визначено в RFC 8484.

  • Він використовує порт 443. Для мережі він дуже схожий на будь-яке інше HTTPS-з’єднання. Мережа, що блокує порт 853, аби зупинити DNS over TLS, зазвичай його не чіпає.
  • Сервер і протокол обираєте ви. Застосунки можуть пропонувати постачальників DoH і DoT поруч і перемикатися між ними.
  • Він може повністю обходити резолвер мережі. Добрий клієнт підключається до DoH-сервера за фіксованими початковими (bootstrap) IP-адресами, тож навіть пошук самого DNS-сервера не залежить від DNS мережі.
  • Він займає слот VPN. Android дозволяє лише один VPN одночасно. DoH-застосунок не може працювати разом з іншим VPN-застосунком.

Порівняння

Приватний DNS (ім’я хоста)DoH-застосунок
Потрібен додатковий застосунокНіТак
ПротоколDNS over TLS або DNS over HTTP/3 для деяких відомих постачальників в Android 11+DNS over HTTPS (деякі застосунки також пропонують DoT)
Порт853 для DoT443
Якщо сервер заблокованоМережа показує відсутність інтернету, доки ви не зміните налаштуванняЗалежить від застосунку. Деякі перемикаються на іншого постачальника
Використовує слот VPNНіТак
Працює з іншим VPN-застосункомТак, з конфліктами, описаними нижчеНі, лише один VPN одночасно
Допомагає проти фільтрування за назвою в HTTPSНіЛише якщо застосунок це теж уміє

Де приватний DNS має труднощі

  • Мережі, що блокують порт 853. Деякі робочі місця, школи й публічні Wi-Fi його блокують. У режимі імені хоста мережа тоді виглядає зламаною. Як це проявляється, дивіться в статті Сайт відкривається через мобільний інтернет, але не через Wi-Fi?
  • Особливості окремих мереж. Налаштування глобальне, а мережі — ні. Ім’я хоста, що працює в мобільній мережі, може не працювати в якомусь конкретному Wi-Fi.
  • Сторінки входу в публічному Wi-Fi. Мережі готелів і кав’ярень зі сторінкою входу можуть поводитися дивно з фіксованим ім’ям хоста, доки ви не завершите вхід. Зазвичай допомагає ненадовго перемкнутися на «Автоматично».
  • «Автоматично» часто означає без шифрування. Власні DNS-сервери більшості провайдерів не пропонують DNS over TLS, тож «Автоматично» непомітно залишається на звичайному DNS.

Де DoH-застосунок має труднощі

  • Він мусить постійно працювати. Якщо Android зупинить застосунок, щоб заощадити заряд, захист DNS теж зупиниться. Дивіться статтю Як не дати Android вимикати VPN.
  • Він блокує інші VPN. Його не можна поєднати з робочим VPN на тому самому телефоні.
  • Його сервер можуть заблокувати за IP-адресою. Порт 443 не допоможе, якщо мережа блокує адресу DoH-сервера. Клієнти, що вміють переходити на іншого постачальника, справляються з цим краще.

Конфлікт: приватний DNS плюс VPN-застосунок

Починаючи з Android 10, ім’я хоста приватного DNS діє й тоді, коли працює VPN-застосунок. Інструкції самого Google Public DNS зазначають, що в Android 9 VPN перекривав приватний DNS і що в Android 10 це виправили. На практиці це означає: якщо ви задали ім’я хоста, а потім увімкнули VPN-застосунок із власним DNS, Android надсилатиме запити вашому постачальнику приватного DNS. Зашифрований DNS і список блокування VPN ці імена так і не побачать. Якщо цей постачальник заблокований у поточній мережі, не відкриватиметься жоден сайт.

Користуючись GreenTunnel, установіть для приватного DNS Вимкнено або Автоматично. Це одна з перших перевірок у статті Сайт усе ще заблоковано?

Як GreenTunnel працює з DNS

GreenTunnel — локальний VPN із вбудованим клієнтом зашифрованого DNS. У Налаштування → DNS ви вибираєте одного з трьох постачальників або Автоматично:

  • Cloudflare, DoH, https://cloudflare-dns.com/dns-query
  • Google, DoH, https://dns.google/dns-query
  • Quad9, DoT, dns.quad9.net:853

Режим «Автоматично» пробує Cloudflare, потім Google, потім Quad9 і далі використовує того, хто відповів. До кожного постачальника звертаються через вбудовані початкові IP-адреси, тож DNS вашого провайдера ніколи не запитується. DoQ не підтримується. Повний розбір у статті Пояснення DoH і DoT.

Відмінність від застосунку, що працює лише з DNS, у тому, що відбувається після запиту. GreenTunnel також змінює форму першого пакета HTTPS-з’єднань, щоб обійти просте фільтрування за назвою, показує з’єднання за застосунками в Requester і може перевірити сайт за допомогою Перевірки URL. Ми ніколи не збираємо домени, які ви запитуєте.

Чесні обмеження зашифрованого DNS

Зашифрований DNS, хоч би як ви його отримали, виправляє один тип блокування: мережу, що підробляє або відкидає відповіді DNS. Він не заважає мережі читати назву сайту під час HTTPS-рукостискання, для цього потрібна зміна форми пакетів або ECH. Він не обходить блокування за IP. Він не приховує вашу IP-адресу, і провайдер усе одно бачить, з якими адресами ви з’єднуєтеся. Ваші запити бачить обраний постачальник DNS замість провайдера, тож вибирайте того, чиїй політиці довіряєте. GreenTunnel теж не є інструментом анонімності.

Що вибрати?

  • Просто хочете шифрувати запити в мережах, які поводяться нормально? Приватний DNS з ім’ям хоста постачальника — це просто і не потребує застосунку.
  • Ваша мережа блокує порт 853, підробляє DNS або фільтрує назви сайтів? Краще підійде DoH-застосунок, бажано такий, що також справляється з фільтруванням за назвою. Установіть для приватного DNS «Вимкнено» або «Автоматично».
  • Ви вже користуєтеся робочим VPN? Залишайтеся з приватним DNS, бо працювати може лише один VPN-застосунок.

GreenTunnel безкоштовний на Android та iPhone, з необов’язковим Premium. Подивіться, як він працює, на головній сторінці.

Поширені запитання

Приватний DNS в Android використовує DoH чи DoT?

DNS over TLS на порту 853. Після системного оновлення Google Play у 2022 році Android 11 і новіші натомість використовують DNS over HTTP/3 для деяких відомих постачальників, що це підтримують, починаючи з Google і Cloudflare. Ввести власну адресу DoH не можна.

Чи залишати приватний DNS увімкненим, користуючись GreenTunnel?

Установіть «Вимкнено» або «Автоматично». Ім’я хоста постачальника змушує Android надсилати запити безпосередньо цьому постачальнику, тож зашифрований DNS GreenTunnel і ваш список блокування оминаються.

DoH приватніший за DoT?

Обидва однаково добре шифрують запит. Різниця в тому, наскільки легко його помітити й заблокувати. DoT використовує окремий порт, а DoH зливається з HTTPS на порту 443.

Чи розблокує зашифрований DNS будь-який сайт?

Ні. Він виправляє лише блокування через DNS. Сайтам, заблокованим фільтруванням за назвою, потрібно більше, а сайтам, заблокованим за IP-адресою, потрібен зовсім інший маршрут.

Джерела

← Усі статті