Подтвердить что ты не робот

IPhone: добавьте запись в /etc/hosts без джейлбрейка

Для моего процесса разработки мне нужно получить доступ к веб-серверу, который находится за VPN, и не имеет записи DNS. То, что я делал в 4.x, - это отредактировать /etc/hosts на iPhone и добавить его в файл hosts.

Теперь я на бета-версии 5.0 и не хочу делать джейлбрейк сейчас только для этой цели.

Есть ли способ добавить строку в /etc/hosts, только для целей разработки (окончательное приложение распространения не нуждается в этом взломе), без джейлбрейка? Могу ли я использовать другие средства (например, объявить поддельную запись DNS некоторыми неизвестными средствами при запуске приложения)?

4b9b3361

Ответ 1

Настройте реальную запись DNS, либо настроив локальный DNS-сервер в беспроводной сети, либо используя динамическую службу DNS, либо добавив запись A в домен, для которого вы управляете DNS.

Ответ 2

EDIT. Если вы хотите приобрести небольшую лицензию, я рекомендую использовать Charles Proxy, веб-отладочный прокси-инструмент. Он также будет разрешать домены с вашего локального /etc/hosts, и он дает много бонусных функций (то есть проверяет запросы/ответы и скорость передачи газа). Я только наткнулся на этот инструмент из видео WWDC, и я вообще не связан с этим продуктом. Я рекомендую прочитать учебник Chris Ching для iPhone и Charles Proxy, чтобы вы начали.


Чтобы добавить к ответ Ramon, можно настроить локальный компьютер как DNS-сервер и указать свой iPhone на свой компьютер в качестве DNS-сервера. Это также будет работать и на устройствах Android.

Инструкции для Mac OSX через Homebrew:

  • brew install dnsmasq
    • dnsmasq - это легкий сервер dns, который будет возвращаться к исходному DNS-серверу, когда он встречает неизвестный домен
  • Добавьте строку address=/.your.domain.com/10.0.0.5 в файл /usr/local/etc/dnsmasq.conf
    • IP-адрес 10.0.0.5 - это любой IP-адрес, назначенный вашему локальному компьютеру вашим маршрутизатором. Вы можете найти это через Network Utility (если вы хотите быть фантазией, вы можете назначить статический IP-адрес вашему локальному компьютеру в своем маршрутизаторе)
  • sudo dnsmasq
    • Это запускает процесс dnsmasq, и он будет прослушивать порты DNS
  • Назначьте свой локальный компьютер и маршрутизатор в качестве DNS-серверов для вашего компьютера с помощью системных настроек → Сеть → Дополнительно → вкладка DNS
    • У вас будет две записи: одна для вашего локального компьютера (127.0.0.1) и одна для вашего маршрутизатора. Причина, по которой вы включаете IP-адрес маршрутизатора, - dnsmasq, будет выполнять неизвестные записи через другие известные DNS-серверы. Без входа в маршрутизатор вы подключаетесь к любым устройствам, подключенным к вам. dnsmasq не будет знать, как подключиться к Интернету.
  • Задайте свой IP-адрес локального компьютера как ваш DNS-сервер на вашем iPhone, перейдите в Настройки → Wi-Fi → значок Info для вашего подключенного маршрутизатора → DNS

Некоторые вещи, которые следует учитывать:

  • Если вы выключите свой компьютер, ваш iPhone больше не будет подключаться к Интернету. Убедитесь, что reset ваш DNS-сервер iPhone на маршрутизаторе IP
  • По умолчанию dnsmasq будет смотреть ваш /etc/hosts, поэтому, если вы указали your.domain.com на 127.0.0.1, ваш iPhone разрешит your.domain.com до 127.0.0.1, что означает, что вы не будете подключаться к что-нибудь. Чтобы изменить это поведение, отредактируйте uncomment строку #no-hosts в конфигурации dnsmasq.

Источники

Ответ 3

Вы также можете настроить dnsmasq (доступный из macports/ brew), он действует как переадресатор DNS, который позволяет вам устанавливать все виды альтернативных записей.

Затем вы можете настроить DNS на iphone/ipad, чтобы указать на поле, использующее DNSmasq, и сначала будет возвращен любой хост на /etc/hosts в поле dnsmasq. Если не найден, dnsmasq отправит запрос в восходящий DNS.

Также вы можете добавить записи SRV в файл dnsmasq.conf:

srv-host=_sip._udp.devel.foo.com,devel.foo.com,5070 

И многие другие тонкости.

Ответ 4

На самом деле вы можете изменить файл hosts без джейлбрейка, используя стороннее приложение FilzaJailed из Tweakbox. Просто перейдите в /etc/hosts, затем щелкните по нему и откройте его с помощью текстового редактора