Czy mogę edytować plik hosta iPada?

87

Wątpię, czy jest to możliwe bez rozległego łamania więzień, ale czy w ogóle jest możliwa edycja pliku hostów iPada (lub dowolnego urządzenia iOS)?

Ahmed Nuaman
źródło
1
Nie bez jailbreakingu. Po jailbreaku będzie taki sam jak każdy inny system Unix / BSD. Zakładam, że wcześniej tego nie robiłem.
Jasarien
1
Wyobraź sobie, że jakakolwiek aplikacja mogłaby zmienić powiązanie między nazwami hostów i ich prawowitymi adresami IP.
Jano
2
@jano Przypuszczalnie ten problem występuje teraz w przypadku aplikacji w Mac App Store. Zajmuje się tym OSX, który wymaga podania hasła przed edycją pliku hosts, a także prawdopodobnie przez procedurę weryfikacji aplikacji Apple.
Danyal Aytekin
3
@Jano: Microsoft Windows pozwala na to teraz i powoduje 0 problemów. Musisz tylko mieć uprawnienia administratora. Istnieją uzasadnione powody, dla których warto zmodyfikować plik hosts (wszystkie związane z dostępem do rzeczy bez serwera DNS lub innymi problemami z VPN).
Josh Mouch

Odpowiedzi:

46

Nie. Aplikacje mogą modyfikować pliki tylko w katalogu dokumentów, w swojej własnej piaskownicy. Ma to na celu bezpieczeństwo i łatwość instalacji / deinstalacji. Możesz więc to zrobić tylko na urządzeniu po jailbreaku.

Jonathan.
źródło
1
Tylko w piaskownicy, ale nie tylko w katalogu dokumentów (zobacz Podręcznik programowania aplikacji dla systemu iOS> Środowisko wykonawcze aplikacji> System plików).
Jano
55

Poprzednia odpowiedź jest poprawna, ale jeśli efektem, którego szukasz, jest przekierowanie ruchu HTTP dla domeny na inny adres IP, jest na to sposób.

Ponieważ technicznie nie odpowiada to na twoje pytanie, zadałem i odpowiedziałem na pytanie tutaj:

Jak mogę przekierować żądania HTTP wysyłane z iPada?

tremoloqui
źródło
47

Nie, nie możesz zmienić pliku hosta iPada (bez jailbreak), ale możesz obejść ten problem.

Oto mój scenariusz:

  • Mac OS X z IP 192.168.2.1, uruchomiona aplikacja internetowa
  • iPad, urządzenie, na którym chcesz przetestować aplikację internetową
  • Charles (dla komputerów Mac), włącza serwer proxy HTTP dla iPada

Mam zamiar przetestować aplikację internetową działającą na moim Macu za pośrednictwem iPada, ale nie mam do niej bezpośredniego dostępu.

Rozwiązanie działa u mnie:

  • Po pierwsze, upewnij się, że serwer i iPad znajdują się w tej samej sieci lokalnej.
  • Następnie skonfiguruj Charles proxy, w menu „Proxy> Proxy Settings…”, wypełnij Port(głównie 8888) i przełącz Enable transparent HTTP proxying.

wprowadź opis obrazu tutaj


  • Skonfiguruj ustawienia proxy na iPadzie.

wprowadź opis obrazu tutaj

Teraz możesz odwiedzić swoją aplikację internetową na iPadzie.

Oczywiście możesz użyć innych narzędzi proxy, takich jak Squid lub Varnish w Linuksie lub Fiddler w Wondows.

Holys
źródło
1
Nie odpowiada na pytanie ... ale jest to doskonałe, łatwe do wdrożenia, łatwo przełączalne rozwiązanie do celów, dla których większość ludzi chciałaby edytować plik hosts.
Matt Kenefick
Świetne rozwiązanie! Czyste i łatwe do wykonania. Używam linuxa jako mojego systemu operacyjnego dla mojej stacji roboczej, więc użyłem tinyproxy, a proxy działa świetnie z moim iPhonem. Dzięki stary!
Edenshaw
Nie działa na nowszej wersji iOS, być może ze względu na problemy z bezpieczeństwem, może być łatwiej z NodeJsmodułem filternet
vanduc1102
1
„Teraz możesz odwiedzić swoją aplikację internetową na iPadzie” - ale jak? Jeśli moja aplikacja działa tylko w witrynie „myapp.dev.domain.com”, w jaki sposób Ipad rozpoznaje tę nazwę. W tym miejscu pojawia się plik hosta i podejrzewam, że o co chodzi
Greg Woods
@GregWoods mam podobną konfigurację i to zadziałało dla mnie, odwiedzając „myapp.env.domain.com”, ale dopiero po kilku próbach
RenaissanceProgrammer
6

Najłatwiej to zrobić, uruchamiając symulator iPada za pomocą XCode, a następnie dodając wpis w pliku hosts (/ etc / hosts) w systemie hosta, aby wskazywał na twoją witrynę testową.

Payson Welch
źródło
6
Pytanie dotyczy urządzenia, a nie symulatora.
Janak Nirmal
5
@JanakNirmal Jednak nadal pomocna odpowiedź.
Simon
6

Potrzebowałem tej samej funkcjonalności, a robienie jailbreak jest nie-nie. Jednym z rozwiązań jest hostowanie własnego serwera DNS ( MaraDNS ), przejście do ustawień Wi-Fi na iPadzie / telefonie i dodanie tam niestandardowego serwera DNS.

Cały proces zajął mi tylko 10 minut i działa!

1) Pobierz MaraDNS

2) Uruchom mkSecretTxt.exejako administrator

3) Zmodyfikuj mararcplik, mój to:

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

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

Dodaj plik o nazwie „ example.configuration” do tego samego folderu, w którym run_maradns.batjest.

4) Edytuj plik example.configuration:

Simple.Example.com. 10.10.13.13 ~

5) Wyłącz wszystkie zapory (wygoda)

6) Uruchom plik „ run_maradns.bat

7) Nie powinno być żadnych błędów.

8) Dodaj swój serwer DNS do listy, jak pokazano tutaj: http://www.iphonehacks.com/2014/08/change-dns-iphone-ipad.html

9) Działa!

Erti-Chris Eelmaa
źródło
1
każda odpowiedź zakłada, że ​​OP chce podsłuchiwać ruch HTTP, podczas gdy jest to jedyna rzeczywista odpowiedź, która koncentruje się na sfałszowaniu rozpoznawania nazw DNS (jako modyfikujący plik hostów)
Filipe Pina
5

Tak, możesz edytować plik hostów iPada, ale musisz mieć jailbreak. Gdy to zrobisz, pobierz Cydia (rynek aplikacji) i pobierz iFile. Plik hosts znajduje się w „/ etc / hosts”.

Apollo Clark
źródło
4

Wyobrażam sobie, że możesz to zrobić, konfigurując przezroczyste proxy, używając czegoś takiego jak Charles i przekierowując w ten sposób ruch

CosmicChild
źródło
3

Workarond, którego używam do celów programistycznych:

  1. Stwórz swój własny serwer proxy (jedną z opcji będzie: Squid w systemie Linux).
  2. Ustaw plik hosts ze swoimi domenami.
  3. Ustaw serwer proxy na IPAD / IPHONE i możesz używać go ze swoimi hostami.
tauanz
źródło
Niezłe proste rozwiązanie!
Adam Freeman,
3

Wiem, że już dawno to zostało opublikowane, ale w iOS 7.1 kilka rzeczy się zmieniło.

Do tej pory, jeśli tworzysz aplikację, MUSISZ mieć ważny certyfikat SSL rozpoznawany przez Apple, w przeciwnym razie otrzymasz komunikat o błędzie na iDevice. Nigdy więcej certyfikatów z podpisem własnym. Zobacz listę:

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

Dodatkowo, jeśli tu jesteś, oznacza to, że próbujesz zmusić iDevice do rozwiązania nazwy (na Twój serwer https) w środowisku testowym lub programistycznym.

Zamiast używać squid, która jest świetną aplikacją, możesz po prostu uruchomić bardzo podstawowy serwer DNS, taki jak dnsmasq. Użyje twojego pliku hosts jako pierwszej linii rozpoznawania nazwy, więc możesz w zasadzie oszukać tam swój iDevice, mówiąc, że www.blah.com to 192.168.10.10.

Plik konfiguracyjny ma od 3 do 4 wierszy, a jeśli chcesz, możesz nawet skonfigurować jego wewnętrzny serwer DHCP.

Tu jest moje:

nasłuchuj adres = 192.168.10.35

potrzebne domeny

fałszywe-priv

no-dhcp-interface = eth0

local = / localnet /

Oczywiście musisz skonfigurować sieć na swoim iDevice, aby używać tego DNS (192.168.10.35 w moim przypadku) lub po prostu zacząć korzystać z DHCP z tego serwera, po prawidłowym skonfigurowaniu.

Ponadto, jeśli dnsmasq nie może rozwiązać nazwy wewnętrznie, używa Twojego zwykłego serwera DNS (np. 8.8.8.8), aby rozwiązać ją za Ciebie. BARDZO prosty, elegancki i rozwiązał moje problemy z instalacją aplikacji iDevice we własnym zakresie.

Nawiasem mówiąc, rozwiązuje również wiele problemów z rozpoznawaniem nazw na zwykłych komputerach Mac (OS X).

Teraz moja rant: cholerne jabłko. Zabezpieczanie urządzenia nie powinno obejmować kastrowania systemu operacyjnego ani programistów.

Carlos Cap
źródło
Dziękuję Carlos. Problem polega na tym, że używamy mobilnego produktu VPN firmy Pulse Secure, aby dostać się do serwerów testowych. Nie są one dostępne na zewnątrz. Tak więc, jeśli chcemy przetestować nowy certyfikat PROD, potrzebujemy iPada, aby przejść na serwer testowy (gdzie jest zainstalowany certyfikat PROD); ale użyć adresu URL www.prod ...... com. jak dotąd nie znaleziono rozwiązania tego scenariusza. : 0 (
codelapper,
2

Jeśli masz swobodę wyboru nazwy hosta, możesz po prostu dodać swojego hosta do usługi dynanmic DNS, takiej jak dyndns.org. Następnie możesz polegać na normalnych mechanizmach rozdzielczości iPada, aby rozwiązać adres.

jonseymour
źródło
2

Możesz również skorzystać z serwera proxy na swoim iPhonie lub iPade za pośrednictwem mobilnego internetu (3G), używając generatora iPhone Mobile proxy:

http://iphonesettings.net/mobileproxygenerator.php

Po prostu wprowadź apn swojego operatora (w razie potrzeby z nazwą użytkownika / hasłem apn) i serwer proxy, przez który chcesz przejść, i dotknij Generuj

Savas
źródło
2
OSTRZEŻENIE CZYTELNIKA : witryna w tej odpowiedzi jest wymieniana jako szkodliwe oprogramowanie przez wiele firmowych rozwiązań zapory internetowej. Wysyłając cały ruch przez niezaufany serwer proxy, ujawniasz wszystkie przesyłane informacje. Czy naprawdę ufasz iphonesettings.net?
ErikE
-2

Potrzebujesz dostępu, /private/etc/więc nie. nie możesz.

user8853097
źródło
@OmG, Pytanie brzmiało „czy to w ogóle możliwe”, a jego komentarz właściwie dokładnie odpowiada na to pytanie. Przestań kopiować / wklejać komentarze, aby poprawić swoją reputację.
Daniel Smith