Есть ли способ/приложение для автоматической смены DNS-сервера в зависимости от подключения?

Допустим, на моем домашнем Wi-Fi я хочу использовать DNS-сервер «X», а на рабочем Wi-Fi я хочу использовать другой DNS-сервер: «Y», на сотовом — сервер «Z» и так далее. Возможно ли это сделать автоматически? (Желательно без рута) Кажется, в магазине игр есть множество «DNS-приложений», но я не могу найти ни одного, которое это делает. (не все пробовала)

Если вы отключите функцию «частного DNS» в Android, вы должны автоматически получать соответствующий DNS-сервер для каждого соединения как часть информации IP через DHCP.
Я не понимаю, как это помогает? Я знаю, какие DNS-серверы я хочу использовать.
Таким образом, вам не нужны стандартные DNS-серверы, а используйте специальные другие DNS-серверы, но для каждого соединения разные. Это не было очевидно из вашего вопроса.
Точно.. Я действительно пытался быть как можно более ясным, но, похоже, у меня не получилось.

Ответы (2)

Приведенное ниже решение установит для частного DNS значение «Автоматически» для SSID: «SSID-1» и «SSID-2». Во всех остальных случаях для частного DNS будет установлено имя хоста частного DNS, введенное в настройках.

  1. Установить Таскер.

  2. Настройте Tasker следующим образом : (измените SSID-1/SSID2 на свое имя)

     Profile: AutoPrivateDNS
             State: Wifi Connected [ SSID:SSID-1/SSID-2 MAC:* IP:* Active:Any ]
         Enter: Anon
             A1: Custom Setting [ Type:Global Name:private_dns_mode Value:opportunistic Use Root:Off Read Setting To: ]
         Exit: Anon
             A1: Custom Setting [ Type:Global Name:private_dns_mode Value:hostname Use Root:Off Read Setting To: ]
    
  3. Предоставьте Tasker разрешения WRITE_SECURE_SETTINGS через ADB с помощью следующей команды:

adb shell pm grant net.dinglisch.android.taskerm android.permission.WRITE_SECURE_SETTINGS

  1. Чтобы установить для параметра Private DNS значение Off вместо «Automatic», используйте значение «Off» вместо «opportunistic».
  2. Протестировано с Android 11, Samsung S10E, без рута.

Вы можете настроить профиль Tasker, основанный либо на местоположении, либо на сети Wi-Fi, чтобы запускать задачу. Установите задачу, чтобы изменить пользовательскую настройку для частного DNS с именем хоста, зависящим от того, в какой сети вы находитесь.

Спасибо, это сработало нормально! Я разместил более подробный ответ ниже, как это сделать.