Изменить DNS для мобильных данных без использования приложения

19

(Мой телефон рутирован и работает под управлением Android 5.1)

Как можно изменить DNS-адреса мобильных данных (и постоянно, если это возможно) без необходимости приложения?

şaloma
источник
Как изменить DNS мобильных подключений на Android KitKat? Есть несколько ответов на этот вопрос - разные подходы, по крайней мере 2 из них не требуют приложения.
Иззи

Ответы:

16

Я не нашел способа надежно сделать это без приложения.

Я часто использую OpenDNS Family Shield , но иногда мне мешает посетить какой-то конкретный сайт хакеров, и тогда мне нужно быстро и легко сменить DNS-серверы.

Раньше я использовал Set DNS, но он перестал работать в Android 4.3 и далее, поэтому я создал Override DNS , новое приложение, которое имитирует поведение Set DNS, но оно обновлено, чтобы работать даже в Lollipop. У него есть и другие полезные функции, такие как защита PIN-кодом и фильтр SSID Wi-Fi.

Единственный способ сделать это без приложения - это что-то вроде iptablesправила перенаправления любого трафика, идущего в udp / 53, на другой ip. Аналогичная процедура показана в потоке XDA .

Я вставляю сюда iptablesправила полноты (я их не проверял)

$IPTABLES -t nat -D OUTPUT -p tcp --dport 53 -j DNAT --to-destination 208.67.222.222:53 || true
$IPTABLES -t nat -D OUTPUT -p udp --dport 53 -j DNAT --to-destination 208.67.222.222:53 || true
$IPTABLES -t nat -I OUTPUT -p tcp --dport 53 -j DNAT --to-destination 208.67.222.222:53
$IPTABLES -t nat -I OUTPUT -p udp --dport 53 -j DNAT --to-destination 208.67.222.222:53

Все, что направлено с устройства Android на любой IP, порт UDP и TCP 53 перенаправляется на 208.67.222.222один из DNS-серверов OpenDNS.

Эти команды должны быть помещены в скрипт, который запускается при каждой загрузке устройства. Эта функциональность зависит от вашего конкретного ROM. Я не знаю, можно ли сделать что-то подобное в стандартном ПЗУ без использования приложения. Переопределение DNS также решает эту проблему.

MaxChinni
источник
1
Особенность, которая мне здесь понравилась, заключается в том, что помимо демонстрации возможностей вашего приложения (которые, как я видел, многие разработчики / маркетологи, я видел это здесь), вы сосредоточились непосредственно на вопросе и попытались предоставить альтернативу для самого приложения. , Хорошо!
Повелитель огня
2
@Firelord да ... бесстыдная вилка, но с некоторым стилем :)
MaxChinni
Я пытаюсь использовать эти настройки, но получаю сообщение об ошибке «Bad IP Address». Я пытаюсь использовать Google DNS 8.8.8.8 и 8.8.4.4
Кристофер
Многие приложения утверждают, что дают такую ​​же возможность без рута. Есть ли какая-то «зацепка» в этих приложениях?
Майкл Креншоу
@ mac9416 Я не знаю какого-либо конкретного поведения, связанного с этими приложениями (все они создают ложную локальную VPN), но первоначальный вопрос заключался в том, чтобы добиться этого без какого-либо конкретного приложения, поэтому я думаю, что мы идем ОТ.
MaxChinni
3

Эта информация с 2014 года. Но она все еще может работать. Я не в состоянии проверить это в данный момент, но так как вы укоренились. Вы можете попробовать добавить настройки dns в файл build.prop и посмотреть, прилипнет ли он. Добавление следующего в файл build.prop должно добавить Google в качестве вашего DNS-сервера.

net.rmnet0.dns1=8.8.8.8
net.rmnet0.dns2=8.8.4.4
net.dns1=8.8.8.8
net.dns2=8.8.4.4

Взято из этого поста на форумах Nexus 5 на XDA. Этот пост можно найти здесь. Пункт № 21 - это настройки DNS.

jer3my
источник
Я попробовал это для удовольствия на моем Lenovo P2 под управлением Android 7.0, и это не сработало
user1151923
1

Это невозможно без приложения, оно должно быть с приложением. Во-вторых, вам нужен root-доступ для возможности смены DNS 1G / 2G / 3G / 4G. Попробуйте установить DNS .

user119443
источник
« Это невозможно без приложения, оно должно быть с приложением » - есть веская причина?
Повелитель огня
2
Потому что Android не поддерживает его по умолчанию, поэтому вам нужно специальное приложение, чтобы связываться с ним
user119443
3
Android поддерживает редактирование build.prop, вам нужен только файловый менеджер с правами root.
Дэн Браун
@DanB +1, собирался прокомментировать это, говоря это. Смотрите мой ответ для метода build.prop. Если интересно.
Jer3my
@ jer3my Великие умы думают одинаково? Я посмотрю на ваш ответ :)
Дэн Браун