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?
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.
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:
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.
Richten Sie die Proxy-Einstellung im iPad 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.
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.
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:
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".
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
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:
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.
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:
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
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
-6
Beste Antwort: Fügen Sie einfach http oder https in Ihrem Browser, die IP-Adresse, den Doppelpunkt und die Portnummer hinzu. Beispiel: https://123.23.145.67:80
Antworten:
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.
quelle
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?
quelle
Nein, Sie können die iPad-Hostdatei nicht ändern (ohne Jailbreak), können dies jedoch umgehen.
Hier ist mein Szenario:
192.168.2.1
führt eine Web-App ausIch 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:
Port
(meistens8888
) aus und schalten Sie umEnable transparent HTTP proxying
.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.
quelle
NodeJs
Modul- FilternetDer 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.
quelle
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.exe
Als Administrator ausführen3)
mararc
Datei ändern , meine ist:Fügen Sie die Datei "
example.configuration
" in denselben Ordner ein, in dem sich der Ordnerrun_maradns.bat
befindet.4) Bearbeiten Sie Ihre example.configuration-Datei:
5) Deaktivieren Sie alle Firewalls (Komfort)
6) Führen Sie die Datei "
run_maradns.bat
" aus7) 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!
quelle
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".
quelle
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
quelle
Workarond, den ich für Entwicklungszwecke verwende:
quelle
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.
quelle
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.
quelle
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
quelle
iphonesettings.net
?Sie benötigen Zugriff auf
/private/etc/
so, nein. du kannst nicht.quelle
Beste Antwort: Fügen Sie einfach http oder https in Ihrem Browser, die IP-Adresse, den Doppelpunkt und die Portnummer hinzu. Beispiel: https://123.23.145.67:80
quelle