iPhone: добавить запись в / etc / hosts без джейлбрейка - PullRequest
14 голосов
/ 19 сентября 2011

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

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

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

Ответы [ 4 ]

17 голосов
/ 17 декабря 2013

РЕДАКТИРОВАТЬ : Если вы хотите приобрести небольшую лицензию, я рекомендую использовать Charles Proxy , прокси-инструмент для отладки в Интернете.Он также будет разрешать домены из вашего локального / etc / hosts, и он дает множество дополнительных функций (т. Е. Проверяет запросы / ответы и скорость сети).Я только наткнулся на этот инструмент из видео WWDC, и я не связан с продуктом вообще.Я рекомендую прочитать учебник Криса Чинга для iPhone и Charles Proxy , чтобы начать работу.


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

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

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

Некоторые вопросы, которые необходимо учитывать:

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

Sources

8 голосов
/ 19 сентября 2011

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

3 голосов
/ 07 мая 2012

Вы также можете настроить 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 

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

0 голосов
/ 18 декабря 2017

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...