Kann ich die Hostdatei eines iPad bearbeiten?


87

Ich bezweifle, dass dies ohne umfangreichen Jailbreak möglich ist, aber ist es überhaupt möglich, die Hosts-Datei des iPad (oder eines iOS-Geräts) zu bearbeiten?


1
Nicht ohne Jailbreak. Sobald es einen Jailbreak hat, ist es dasselbe wie jedes andere Unix / BSD-System. Ich nehme an, ich habe es noch nie gemacht.
Jasarien

1
Stellen Sie sich vor, eine App könnte die Zuordnung zwischen Hostnamen und ihren legitimen IPs ändern.
Jano

2
@jano Vermutlich besteht dieses Problem jetzt bei Apps im Mac App Store. Es wird von OSX behandelt, das ein Kennwort benötigt, bevor Sie die Hosts-Datei bearbeiten können, und vermutlich auch von Apples App-Überprüfungsverfahren.
Danyal Aytekin

3
@Jano: Microsoft Windows erlaubt dies jetzt und verursacht 0 Probleme. Sie benötigen lediglich Administratorrechte. Und es gibt berechtigte Gründe, eine Hosts-Datei ändern zu wollen (alles im Zusammenhang mit dem Zugriff auf Dinge ohne DNS-Server oder mit VPN-Problemen).
Josh Mouch

Antworten:


46

Nein. Apps können nur Dateien im Dokumentenverzeichnis in ihrer eigenen Sandbox ändern. Dies dient der Sicherheit und der einfachen Installation / Deinstallation. Sie können dies also nur auf einem Gerät mit Jailbreak tun.


1
Nur in der Sandbox, aber nicht nur im Dokumentenverzeichnis (siehe Programmierhandbuch für iOS-Anwendungen> Anwendungslaufzeit> Dateisystem).
Jano

55

Die vorherige Antwort ist richtig, aber wenn der gesuchte Effekt darin besteht, den HTTP-Verkehr für eine Domain auf eine andere IP umzuleiten, gibt es eine Möglichkeit.

Da es Ihre Frage technisch nicht beantwortet, habe ich die Frage hier gestellt und beantwortet:

Wie kann ich HTTP-Anfragen von einem iPad umleiten?


47

Nein, Sie können die iPad-Hostdatei nicht ändern (ohne Jailbreak), können dies jedoch umgehen.

Hier ist mein Szenario:

  • Mac OS X mit IP 192.168.2.1führt eine Web-App aus
  • iPad, das Gerät, mit dem Sie die Web-App testen möchten
  • Charles (für Mac) aktiviert den HTTP-Proxy für Ihr iPad

Ich werde die Web-App testen, die auf meinem Mac über das iPad ausgeführt wird, kann jedoch nicht direkt darauf zugreifen.

Die Lösung funktioniert bei mir:

  • Stellen Sie zunächst sicher, dass sich Ihr Server und Ihr iPad im selben lokalen Netzwerk befinden.
  • Richten Sie dann den Charles-Proxy im Menü "Proxy> Proxy-Einstellungen ..." ein, füllen Sie Port(meistens 8888) aus und schalten Sie um Enable transparent HTTP proxying.

Geben Sie hier die Bildbeschreibung ein


  • Richten Sie die Proxy-Einstellung im iPad ein.

Geben Sie hier die Bildbeschreibung ein

Jetzt können Sie Ihre Web-App auf dem iPad besuchen.

Natürlich können Sie auch andere Proxy-Tools wie Squid oder Varnish unter Linux oder Fiddler unter Wondows verwenden.


1
Die Frage wird nicht beantwortet ... aber dies ist eine hervorragende, einfach zu implementierende und leicht umschaltbare Lösung für die Zwecke, für die die meisten Benutzer die Hosts-Datei bearbeiten möchten.
Matt Kenefick

Tolle Lösung! Sauber und einfach zu implementieren. Ich verwende Linux als Betriebssystem für meine Workstation, daher habe ich Tinyproxy verwendet und der Proxy funktioniert hervorragend mit meinem iPhone. Danke, Mann!
Edenshaw

Es funktioniert möglicherweise nicht mit einer neueren Version von iOS aus Sicherheitsgründen. Mit einem NodeJsModul- Filternet
vanduc1102

1
"Jetzt können Sie Ihre Web-App auf dem iPad besuchen" - aber wie? Wenn meine App nur auf "myapp.dev.domain.com" funktioniert, wie löst das Ipad den Namen auf? Hier kommt die Host-Datei ins Spiel, und ich vermute, der Punkt der Frage
Greg Woods

@ GregWoods Ich habe eine ähnliche Konfiguration und dies funktionierte für mich durch den Besuch von 'myapp.env.domain.com', aber erst nach ein paar Versuchen
RenaissanceProgrammer

6

Der einfachste Weg, dies zu tun, besteht darin, einen iPad-Simulator mit XCode auszuführen und dann einen Eintrag in der Hosts-Datei (/ etc / hosts) auf dem Host-System hinzuzufügen, um auf Ihre Test-Site zu verweisen.


6
Frage ist über Gerät nicht Simulator.
Janak Nirmal

5
@ JanakNirmal Trotzdem eine hilfreiche Antwort.
Simon

6

Ich brauchte die gleiche Funktionalität und Jailbreak ist No-No. Eine Lösung besteht darin, sich selbst als DNS-Server ( MaraDNS ) zu hosten , Ihre WLAN-Einstellungen in iPad / Telefon aufzurufen und dort Ihren benutzerdefinierten DNS-Server hinzuzufügen.

Der ganze Vorgang hat nur 10 Minuten gedauert und es funktioniert!

1) Laden Sie MaraDNS herunter

2) mkSecretTxt.exeAls Administrator ausführen

3) mararcDatei ändern , meine ist:

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

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

Fügen Sie die Datei " example.configuration" in denselben Ordner ein, in dem sich der Ordner run_maradns.batbefindet.

4) Bearbeiten Sie Ihre example.configuration-Datei:

Simple.Example.com. 10.10.13.13 ~

5) Deaktivieren Sie alle Firewalls (Komfort)

6) Führen Sie die Datei " run_maradns.bat" aus

7) Es sollten keine Fehler vorliegen.

8) Fügen Sie Ihren DNS-Server zur Liste hinzu, wie hier gezeigt: http://www.iphonehacks.com/2014/08/change-dns-iphone-ipad.html

9) Funktioniert!


1
Bei jeder Antwort hier wird davon ausgegangen, dass OP den HTTP-Verkehr abhören möchte, während dies die einzige tatsächliche Antwort ist, die sich auf das Spoofing der DNS-Auflösung (als Änderung der Hosts-Datei) konzentriert
Filipe Pina

5

Ja, Sie können die iPad-Hosts-Datei bearbeiten, müssen jedoch einen Jailbreak haben. Laden Sie anschließend Cydia (App Market) herunter und holen Sie sich iFile. Die Hosts-Datei befindet sich in "/ etc / hosts".


4

Ich würde mir vorstellen, dass Sie dies tun könnten, indem Sie einen transparenten Proxy einrichten, etwas wie Charles verwenden und den Datenverkehr auf diese Weise umleiten


3

Workarond, den ich für Entwicklungszwecke verwende:

  1. Erstellen Sie Ihren eigenen Proxyserver (Eine Option wäre: Squid unter Linux).
  2. Legen Sie Ihre Hosts-Datei mit Ihren Domains fest.
  3. Stellen Sie den Proxyserver auf dem IPAD / IPHONE ein und Sie können ihn mit Ihren Hosts verwenden.

Schöne einfache Lösung!
Adam Freeman

3

Ich weiß, es ist schon eine Weile her, dass dies veröffentlicht wurde, aber mit iOS 7.1 haben sich einige Dinge geändert.

Wenn Sie eine App entwickeln, MÜSSEN Sie ein gültiges SSL-Zertifikat haben, das von Apple erkannt wurde. Andernfalls wird auf Ihrem iDevice eine Fehlermeldung angezeigt. Keine selbstsignierten Zertifikate mehr. Sehen Sie hier eine Liste:

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

Wenn Sie hier sind, bedeutet dies außerdem, dass Sie versuchen, iDevice dazu zu bringen, einen Namen (auf Ihrem https-Server) in einer Test- oder Entwicklungsumgebung aufzulösen.

Anstatt squid zu verwenden, was eine großartige Anwendung ist, können Sie einfach einen sehr einfachen DNS-Server wie dnsmasq ausführen. Es wird Ihre Hosts-Datei als erste Zeile für die Namensauflösung verwenden, sodass Sie Ihr iDevice dort grundsätzlich täuschen können, indem Sie sagen, dass www.blah.com 192.168.10.10 ist.

Die Konfigurationsdatei ist so einfach wie 3 bis 4 Zeilen, und Sie können sogar den internen DHCP-Server konfigurieren, wenn Sie möchten.

Hier ist mein:

Listen-Adresse = 192.168.10.35

Domain benötigt

Scheinpriv

no-dhcp-interface = eth0

local = / localnet /

Natürlich müssen Sie das Netzwerk auf Ihrem iDevice konfigurieren, um dieses DNS zu verwenden (in meinem Fall 192.168.10.35), oder nach ordnungsgemäßer Konfiguration einfach DHCP von diesem Server verwenden.

Wenn dnsmasq den Namen nicht intern auflösen kann, verwendet es Ihren regulären DNS-Server (wie 8.8.8.8), um ihn für Sie aufzulösen. SEHR einfach, elegant und löste meine Probleme mit der internen Installation der iDevice App.

Löst übrigens viele Probleme mit der Namensauflösung auch mit normalen Macs (OS X).

Nun, mein Scherz: verdammter Apfel. Um ein Gerät sicher zu machen, sollte das Betriebssystem oder die Entwickler nicht kastriert werden.


Danke Carlos. Der Kampf besteht darin, dass wir das mobile VPN-Produkt von Pulse Secure verwenden, um Server zu testen. Diese sind außerhalb nicht verfügbar. Wenn wir also ein neues PROD-Zertifikat testen möchten, muss das iPad zum Testserver gehen (auf dem das PROD-Zertifikat installiert ist). aber um die URL www.prod ...... com zu verwenden. Bisher wurde keine Lösung für dieses Szenario gefunden. : 0 (
Codeslapper

2

Wenn Sie die Freiheit haben, den Hostnamen zu wählen, können Sie Ihren Host einfach einem dynanmischen DNS-Dienst wie dyndns.org hinzufügen. Dann können Sie sich auf die normalen Auflösungsmechanismen des iPad verlassen, um die Adresse aufzulösen.


2

Sie können auch einen Proxyserver auf Ihrem iPhone oder iPade über das mobile Internet (3G) verwenden, indem Sie einen iPhone Mobile-Proxy-Generator verwenden:

http://iphonesettings.net/mobileproxygenerator.php

Geben Sie einfach den APN Ihres Netzbetreibers (bei Bedarf mit dem Benutzernamen / Passwort des Apn) und den Proxyserver ein, den Sie durchlaufen möchten, und tippen Sie auf Generieren


2
READER BEWARE : Die Website in dieser Antwort wird von vielen Internet-Firewall-Lösungen von Unternehmen als Malware aufgeführt. Indem Sie Ihren gesamten Datenverkehr über einen nicht vertrauenswürdigen Proxyserver senden, legen Sie alle übertragenen Informationen offen. Haben Sie wirklich vertrauen iphonesettings.net?
ErikE

-2

Sie benötigen Zugriff auf /private/etc/so, nein. du kannst nicht.


@OmG, Die Frage war "ist es überhaupt möglich" und sein / ihr Kommentar beantwortet die Frage tatsächlich genau. Stoppen Sie das Kopieren / Einfügen von Kommentaren, um Ihren eigenen Ruf zu stärken.
Daniel Smith

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.