Чи можу я відредагувати хост-файл iPad?


87

Я сумніваюся, що це можливо без великої в'язниці, але чи можливо взагалі редагувати файл хостів iPad (або будь-якого пристрою iOS)?


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

1
Уявіть, якщо будь-яка програма може змінити зв'язок між іменами хостів та їх законними IP-адресами.
Яно

2
@jano Імовірно, ця проблема зараз існує з програмами в магазині Mac App Store. Це вирішується OSX, який вимагає пароль, перш ніж ви зможете редагувати файл хостів, а також, мабуть, процедурою перевірки програм Apple.
Даніал Айтекін

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

Відповіді:


46

Ні. Додатки можуть змінювати файли лише в каталозі документів у власній пісочниці. Це для безпеки та простоти встановлення / видалення. Отже, це можна було зробити лише на зламаному пристрої.


1
Лише в пісочниці, але не тільки в каталозі документів (див. Посібник із програмування додатків iOS> Час роботи програми> Файлова система).
Яно

55

Попередня відповідь є правильною, але якщо результатом, який ви шукаєте, є перенаправлення HTTP-трафіку для домену на іншу IP-адресу, є спосіб.

Оскільки технічно це не відповідає на ваше запитання, я задав і відповів на запитання тут:

Як я можу перенаправити запити HTTP, зроблені з iPad?


47

Ні, ви не можете змінити хост-файл iPad (без джейлбрейка), але можете обійти.

Ось мій сценарій:

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

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

Рішення працює для мене:

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

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


  • Налаштування налаштування проксі-сервера в iPad.

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

Тепер ви можете відвідати свій веб-додаток на iPad.

Звичайно, ви можете використовувати інші проксі-інструменти, такі як Squid або Varnish в Linux, або скрипка в Wondows.


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

Чудове рішення! Чистий та простий у реалізації. Я використовую Linux як свою ОС для своєї робочої станції, тому я використовував tinyproxy, і проксі чудово працює з моїм iPhone. Дякую людино!
Еденшоу,

Це не працює на новішій версії iOS через проблеми безпеки, можливо, це може бути простіше за допомогою NodeJsмодуля filternet
vanduc1102

1
"Тепер ви можете відвідати свій веб-додаток на iPad" - але як? Якщо моя програма працює лише на "myapp.dev.domain.com", як Ipad визначає ім'я. Тут надходить хост-файл, і я підозрюю суть питання
Грег Вудс

@GregWoods У мене схожа конфігурація, і це спрацювало для мене, відвідавши веб-сайт "myapp.env.domain.com", але лише після декількох
Renaissance

6

Найпростіший спосіб зробити це - запустити симулятор iPad за допомогою XCode, а потім додати запис у файл hosts (/ etc / hosts) в хост-системі, щоб вказати на ваш тестовий сайт.


6
Питання в пристрої, а не в симуляторі.
Janak Nirmal

5
@JanakNirmal Проте корисна відповідь.
Саймон

6

Мені потрібна була та сама функціональність, і робити джейлбрейк - ні-ні. Одне з рішень - розмістити собі DNS-сервер ( MaraDNS ), перейти до налаштувань Wi-Fi у ipad / phone та додати туди свій власний 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 (як модифікації файлу хостів)
Філіпе Піна,

5

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


4

Я думаю, ви можете зробити це, налаштувавши прозорий проксі-сервер, використовуючи щось на зразок Чарльза і перенаправляючи трафік таким чином


3

Workarond, який я використовую для цілей розробки:

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

Приємне просте рішення!
Адам Фрімен,

3

Я знаю, що це було вже давно опубліковано, але з iOS 7.1 кілька речей змінилося.

Наразі, якщо ви розробляєте програму, у вас ПОВИНЕН бути дійсний сертифікат SSL, визнаний Apple, інакше ви отримаєте повідомлення про помилку на своєму iDevice. Більше немає самопідписаних сертифікатів. Дивіться тут список:

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

Крім того, якщо ви знаходитесь тут, це означає, що ви намагаєтеся змусити iDevice вирішити ім'я (на ваш https-сервер) у тестовому середовищі або середовищі розробки.

Замість того, щоб використовувати squid, який є чудовим додатком, ви можете просто запустити такий базовий DNS-сервер, як dnsmasq. Він використовуватиме файл ваших хостів як перший рядок дозволу імен, тому ви можете в основному обдурити свій iDevice там, сказавши, що www.blah.com - це 192.168.10.10.

Файл конфігурації простий від 3 до 4 рядків, і ви навіть можете налаштувати його внутрішній DHCP-сервер, якщо хочете.

Ось мій:

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

потрібен домен

підставний

no-dhcp-interface = eth0

local = / 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 (
codeslapper

2

Якщо у вас є свобода вибору імені хосту, ви можете просто додати свого хоста до динамічної служби DNS, наприклад dyndns.org. Тоді ви можете покладатися на звичайні механізми роздільної здатності iPad, щоб визначити адресу.


2

Ви також можете використовувати проксі-сервер на своєму iPhone або iPade через мобільний Інтернет (3G), використовуючи генератор проксі-сервісів iPhone Mobile:

http://iphonesettings.net/mobileproxygenerator.php

Просто введіть apn вашого оператора (з іменем користувача / паролем apn, якщо потрібно) та проксі-сервер, через який ви хочете пройти, і натисніть Створити


2
ОСТОРОЖНО ОСТОРОЖНО : веб-сайт у цій відповіді вказаний як шкідливе програмне забезпечення багатьма корпоративними рішеннями брандмауера в Інтернеті. Надсилаючи весь свій трафік через ненадійний проксі-сервер, ви відкриваєте всю передану інформацію. Ви справді довіряєте iphonesettings.net?
ErikE

-2

Вам потрібен доступ до /private/etc/так, ні. ти не можеш.


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

-6

Найкраща відповідь: Просто додайте http або https у своєму браузері, IP-адресу, двокрапку та номер порту. Приклад: https://123.23.145.67:80

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.