Не обошлось и без взлома. После взлома она будет такой же, как и любая другая система Unix / BSD. Полагаю, я этого раньше не делал.
Jasarien
1
Представьте, может ли какое-либо приложение изменить связь между именами хостов и их законными IP-адресами.
Яно
2
@jano Предположительно эта проблема теперь существует с приложениями в Mac App Store. С этим справляется OSX, требующая пароля перед редактированием файла hosts, а также, предположительно, процедура проверки приложений Apple.
Даньял Айтекин
3
@Jano: Microsoft Windows теперь позволяет это, и это не вызывает проблем. Вам просто нужно иметь права администратора. И есть законные причины для желания изменить файл hosts (все они связаны с доступом к материалам без DNS-сервера или решением проблем с VPN).
Джош Муч
Ответы:
46
Нет. Приложения могут изменять файлы только в каталоге документов, в своей изолированной программной среде. Это сделано для безопасности и простоты установки / удаления. Таким образом, вы могли сделать это только на взломанном устройстве.
Только в песочнице, но не только в каталоге документов (см. Руководство по программированию приложений iOS> Время выполнения приложения> Файловая система).
Яно
55
Предыдущий ответ верен, но если желаемый эффект заключается в перенаправлении HTTP-трафика для домена на другой IP-адрес, способ есть.
Поскольку технически он не отвечает на ваш вопрос, я задал вопрос и ответил на него здесь:
Это не отвечает на вопрос ... но это отличное, легко реализуемое и легко переключаемое решение для тех целей, для которых большинство людей хотели бы редактировать файл 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) в хост-системе, чтобы указать на ваш тестовый сайт.
Мне нужна была такая же функциональность, а делать побег из тюрьмы - нет-нет. Одним из решений является размещение собственного 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находится.
каждый ответ здесь предполагает, что OP хочет обнюхивать HTTP-трафик, в то время как это единственный реальный ответ, который сосредоточен на подделке разрешения DNS (как изменение файла hosts)
Филипе Пина
5
Да, вы можете редактировать файл хостов iPad, но вам необходимо выполнить джейлбрейк. Как только вы это сделаете, загрузите Cydia (магазин приложений) и получите iFile. Файл hosts находится в "/ etc / hosts".
Я знаю, что это было давно, но с iOS 7.1 кое-что изменилось.
Пока что, если вы разрабатываете приложение, вы ДОЛЖНЫ иметь действующий сертификат SSL, признанный Apple, в противном случае вы получите сообщение об ошибке на вашем iDevice. Больше никаких самозаверяющих сертификатов. Смотрите здесь список:
Кроме того, если вы здесь, это означает, что вы пытаетесь заставить 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 для разрешения адреса.
Просто введите apn вашего оператора связи (с именем пользователя и паролем apn, если необходимо) и прокси-сервер, через который вы хотите пройти, и нажмите «Создать».
ВНИМАНИЕ ЧИТАТЕЛЕЙ : веб-сайт в этом ответе указан как вредоносное ПО многими корпоративными решениями межсетевого экрана Интернета. Отправляя весь свой трафик через ненадежный прокси-сервер, вы раскрываете всю переданную информацию. Вы действительно доверяете iphonesettings.net?
ErikE
-2
Вам нужен доступ, /private/etc/так что нет. ты не можешь.
@OmG, вопрос был "возможно ли это вообще", и его / ее комментарий действительно точно отвечает на вопрос. Прекратите копировать / вставлять комментарии, чтобы повысить свою репутацию.
Дэниел Смит
-6
Лучший ответ: просто добавьте http или https в свой браузер, IP-адрес, двоеточие и номер порта. Пример: https://123.23.145.67:80
Ответы:
Нет. Приложения могут изменять файлы только в каталоге документов, в своей изолированной программной среде. Это сделано для безопасности и простоты установки / удаления. Таким образом, вы могли сделать это только на взломанном устройстве.
источник
Предыдущий ответ верен, но если желаемый эффект заключается в перенаправлении HTTP-трафика для домена на другой IP-адрес, способ есть.
Поскольку технически он не отвечает на ваш вопрос, я задал вопрос и ответил на него здесь:
Как я могу перенаправить HTTP-запросы, сделанные с iPad?
источник
Нет, вы не можете изменить хост-файл iPad (без взлома), но можете решить эту проблему.
Вот мой сценарий:
192.168.2.1
, с запущенным веб-приложениемЯ собираюсь протестировать веб-приложение, работающее на моем Mac через iPad, но у меня нет доступа к нему напрямую.
Решение работает для меня:
Port
(в основном8888
) и переключитеEnable transparent HTTP proxying
.Теперь вы можете посещать свое веб-приложение на iPad.
Конечно, вы можете использовать другие прокси-инструменты, такие как Squid или Varnish в Linux, или скрипач в Wondows.
источник
NodeJs
модулем filternetСамый простой способ сделать это - запустить имитатор iPad с помощью XCode, а затем добавить запись в файл hosts (/ etc / hosts) в хост-системе, чтобы указать на ваш тестовый сайт.
источник
Мне нужна была такая же функциональность, а делать побег из тюрьмы - нет-нет. Одним из решений является размещение собственного 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) Работает!
источник
Да, вы можете редактировать файл хостов iPad, но вам необходимо выполнить джейлбрейк. Как только вы это сделаете, загрузите Cydia (магазин приложений) и получите iFile. Файл hosts находится в "/ etc / hosts".
источник
Я полагаю, вы могли бы сделать это, настроив прозрачный прокси, используя что-то вроде charles и перенаправив трафик таким образом
источник
Вариант, который я использую в целях разработки:
источник
Я знаю, что это было давно, но с 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).
Теперь моя напыщенная речь: чертов яблоко. Обеспечение безопасности устройства не должно включать кастрацию операционной системы или разработчиков.
источник
Если у вас есть свобода выбора имени хоста, вы можете просто добавить свой хост в динамическую службу DNS, например dyndns.org. Тогда вы можете полагаться на обычные механизмы разрешения IPad для разрешения адреса.
источник
Вы также можете использовать прокси-сервер на своем iPhone или iPade через мобильный Интернет (3G) с помощью генератора мобильных прокси iPhone:
http://iphonesettings.net/mobileproxygenerator.php
Просто введите apn вашего оператора связи (с именем пользователя и паролем apn, если необходимо) и прокси-сервер, через который вы хотите пройти, и нажмите «Создать».
источник
iphonesettings.net
?Вам нужен доступ,
/private/etc/
так что нет. ты не можешь.источник
Лучший ответ: просто добавьте http или https в свой браузер, IP-адрес, двоеточие и номер порта. Пример: https://123.23.145.67:80
источник