Могу ли я редактировать хост-файл iPad?


87

Я сомневаюсь, что это возможно без серьезного взлома, но возможно ли вообще редактировать файл hosts на iPad (или любом устройстве iOS)?


1
Не обошлось и без взлома. После взлома она будет такой же, как и любая другая система Unix / BSD. Полагаю, я этого раньше не делал.
Jasarien

1
Представьте, может ли какое-либо приложение изменить связь между именами хостов и их законными IP-адресами.
Яно

2
@jano Предположительно эта проблема теперь существует с приложениями в Mac App Store. С этим справляется OSX, требующая пароля перед редактированием файла hosts, а также, предположительно, процедура проверки приложений Apple.
Даньял Айтекин

3
@Jano: Microsoft Windows теперь позволяет это, и это не вызывает проблем. Вам просто нужно иметь права администратора. И есть законные причины для желания изменить файл hosts (все они связаны с доступом к материалам без DNS-сервера или решением проблем с VPN).
Джош Муч

Ответы:


46

Нет. Приложения могут изменять файлы только в каталоге документов, в своей изолированной программной среде. Это сделано для безопасности и простоты установки / удаления. Таким образом, вы могли сделать это только на взломанном устройстве.


1
Только в песочнице, но не только в каталоге документов (см. Руководство по программированию приложений iOS> Время выполнения приложения> Файловая система).
Яно

55

Предыдущий ответ верен, но если желаемый эффект заключается в перенаправлении HTTP-трафика для домена на другой IP-адрес, способ есть.

Поскольку технически он не отвечает на ваш вопрос, я задал вопрос и ответил на него здесь:

Как я могу перенаправить HTTP-запросы, сделанные с iPad?


47

Нет, вы не можете изменить хост-файл iPad (без взлома), но можете решить эту проблему.

Вот мой сценарий:

  • Mac OS X, с IP 192.168.2.1, с запущенным веб-приложением
  • iPad, устройство, на котором вы хотите протестировать веб-приложение
  • Charles (для Mac), включает HTTP-прокси для вашего iPad.

Я собираюсь протестировать веб-приложение, работающее на моем Mac через iPad, но у меня нет доступа к нему напрямую.

Решение работает для меня:

  • Во-первых, убедитесь, что ваш сервер и iPad находятся в одной локальной сети.
  • Затем настройте прокси Charles в меню «Прокси> Настройки прокси ...», заполните Port(в основном 8888) и переключите Enable transparent HTTP proxying.

введите описание изображения здесь


  • Настройте прокси-сервер в iPad.

введите описание изображения здесь

Теперь вы можете посещать свое веб-приложение на iPad.

Конечно, вы можете использовать другие прокси-инструменты, такие как Squid или Varnish в Linux, или скрипач в Wondows.


1
Это не отвечает на вопрос ... но это отличное, легко реализуемое и легко переключаемое решение для тех целей, для которых большинство людей хотели бы редактировать файл hosts.
Мэтт Кенефик,

Замечательное решение! Чисто и легко реализовать. Я использую Linux в качестве ОС для моей рабочей станции, поэтому я использовал tinyproxy, и этот прокси отлично работает с моим iPhone. Спасибо чувак!
Edenshaw

Он не работает на более новой версии iOS из-за проблем с безопасностью, может быть, это будет проще с NodeJsмодулем filternet
vanduc1102

1
«Теперь вы можете посещать свое веб-приложение на iPad» - но как? Если мое приложение работает только на «myapp.dev.domain.com», как Ipad разрешает имя? Именно здесь на помощь приходит файл хоста, и я подозреваю, что суть вопроса
Грег Вудс,

@GregWoods, у меня аналогичная конфигурация, и это сработало для меня, посетив myapp.env.domain.com, но только после нескольких
RenaissanceProgrammer

6

Самый простой способ сделать это - запустить имитатор iPad с помощью XCode, а затем добавить запись в файл hosts (/ etc / hosts) в хост-системе, чтобы указать на ваш тестовый сайт.


6
Вопрос в устройстве, а не в симуляторе.
Janak Nirmal

5
@JanakNirmal Тем не менее, полезный ответ.
Саймон

6

Мне нужна была такая же функциональность, а делать побег из тюрьмы - нет-нет. Одним из решений является размещение собственного DNS-сервера ( MaraDNS ), перейти к настройкам Wi-Fi на ipad / телефоне и добавить туда свой собственный DNS-сервер.

Весь процесс занял у меня всего 10 минут, и это работает!

1) Скачать MaraDNS

2) Запускаем mkSecretTxt.exeот имени администратора

3) Измените mararcфайл, мой:

ipv4_bind_addresses = "put your public IP Here"
timestamp_type = 2
random_seed_file = "secret.txt"

csv2 = {}
csv2["Simple.Example.com."] = "example.configuration"

Добавьте файл " example.configuration" в ту же папку, где run_maradns.batнаходится.

4) Отредактируйте файл example.configuration:

Simple.Example.com. 10.10.13.13 ~

5) Отключить все межсетевые экраны (удобство)

6) Запустить файл " run_maradns.bat"

7) Ошибок быть не должно.

8) Добавьте свой DNS-сервер в список, как показано здесь: http://www.iphonehacks.com/2014/08/change-dns-iphone-ipad.html

9) Работает!


1
каждый ответ здесь предполагает, что OP хочет обнюхивать HTTP-трафик, в то время как это единственный реальный ответ, который сосредоточен на подделке разрешения DNS (как изменение файла hosts)
Филипе Пина

5

Да, вы можете редактировать файл хостов iPad, но вам необходимо выполнить джейлбрейк. Как только вы это сделаете, загрузите Cydia (магазин приложений) и получите iFile. Файл hosts находится в "/ etc / hosts".


4

Я полагаю, вы могли бы сделать это, настроив прозрачный прокси, используя что-то вроде charles и перенаправив трафик таким образом


3

Вариант, который я использую в целях разработки:

  1. Создайте свой собственный прокси-сервер (один из вариантов: Squid в Linux).
  2. Установите файл hosts с вашими доменами.
  3. Установите прокси-сервер на IPAD / IPHONE, и вы можете использовать его со своими хостами.

Хорошее простое решение!
Адам Фриман,

3

Я знаю, что это было давно, но с iOS 7.1 кое-что изменилось.

Пока что, если вы разрабатываете приложение, вы ДОЛЖНЫ иметь действующий сертификат SSL, признанный Apple, в противном случае вы получите сообщение об ошибке на вашем iDevice. Больше никаких самозаверяющих сертификатов. Смотрите здесь список:

http://support.apple.com/kb/ht5012

Кроме того, если вы здесь, это означает, что вы пытаетесь заставить iDevice разрешать имя (на ваш https-сервер) в среде тестирования или разработки.

Вместо использования squid, который является отличным приложением, вы можете просто запустить очень простой DNS-сервер, например dnsmasq. Он будет использовать ваш файл hosts в качестве первой строки разрешения имен, поэтому вы можете обмануть свой iDevice там, сказав, что www.blah.com - это 192.168.10.10.

Файл конфигурации состоит из 3–4 строк, и вы даже можете настроить его внутренний DHCP-сервер, если хотите.

Вот мой:

адрес прослушивания = 192.168.10.35

требуется домен

подделка

no-dhcp-interface = eth0

местный = / localnet /

Конечно, вам нужно настроить сеть на своем iDevice для использования этого DNS (192.168.10.35 в моем случае) или просто начать использовать DHCP с этого сервера после правильной настройки.

Кроме того, если dnsmasq не может разрешить имя внутренне, он использует ваш обычный DNS-сервер (например, 8.8.8.8), чтобы разрешить его за вас. ОЧЕНЬ просто, элегантно и решило мои проблемы с установкой приложения iDevice на месте.

Кстати, решает многие проблемы с разрешением имен и с обычными Mac (OS X).

Теперь моя напыщенная речь: чертов яблоко. Обеспечение безопасности устройства не должно включать кастрацию операционной системы или разработчиков.


Спасибо, Карлос. Проблема заключается в том, что мы используем продукт для мобильных vpn от Pulse Secure, чтобы добраться до тестовых серверов. Они недоступны снаружи. Итак, если мы хотим протестировать новый сертификат PROD, нам нужно, чтобы iPad перешел на тестовый сервер (где установлен сертификат PROD); но использовать URL-адрес www.prod ...... com. пока решения для этого сценария не найдено. : 0 (
codelapper

2

Если у вас есть свобода выбора имени хоста, вы можете просто добавить свой хост в динамическую службу DNS, например dyndns.org. Тогда вы можете полагаться на обычные механизмы разрешения IPad для разрешения адреса.


2

Вы также можете использовать прокси-сервер на своем iPhone или iPade через мобильный Интернет (3G) с помощью генератора мобильных прокси iPhone:

http://iphonesettings.net/mobileproxygenerator.php

Просто введите apn вашего оператора связи (с именем пользователя и паролем apn, если необходимо) и прокси-сервер, через который вы хотите пройти, и нажмите «Создать».


2
ВНИМАНИЕ ЧИТАТЕЛЕЙ : веб-сайт в этом ответе указан как вредоносное ПО многими корпоративными решениями межсетевого экрана Интернета. Отправляя весь свой трафик через ненадежный прокси-сервер, вы раскрываете всю переданную информацию. Вы действительно доверяете iphonesettings.net?
ErikE

-2

Вам нужен доступ, /private/etc/так что нет. ты не можешь.


@OmG, вопрос был "возможно ли это вообще", и его / ее комментарий действительно точно отвечает на вопрос. Прекратите копировать / вставлять комментарии, чтобы повысить свою репутацию.
Дэниел Смит

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.