Puis-je modifier le fichier hôte d'un iPad?


87

Je doute que cela soit possible sans une rupture de prison étendue, mais est-il possible de modifier le fichier d'hôtes de l'iPad (ou de tout appareil iOS)?


1
Pas sans jailbreak. Une fois jailbreaké, ce sera le même que n'importe quel autre système Unix / BSD. Je suppose que je ne l'ai jamais fait auparavant.
Jasarien

1
Imaginez si une application pouvait modifier l'association entre les noms d'hôtes et leurs adresses IP légitimes.
Jano

2
@jano Ce problème existe probablement maintenant avec les applications sur le Mac App Store. Il est traité par OSX nécessitant un mot de passe avant de pouvoir modifier le fichier d'hôtes, et probablement aussi par la procédure de vérification des applications d'Apple.
Danyal Aytekin

3
@Jano: Microsoft Windows le permet maintenant, et cela ne pose aucun problème. Vous avez juste besoin des autorisations d'administrateur. Et il y a des raisons légitimes de vouloir modifier un fichier d'hôtes (toutes liées à l'accès à des choses sans serveur DNS ou à la gestion de problèmes VPN).
Josh Mouch

Réponses:


46

Non. Les applications ne peuvent modifier les fichiers que dans le répertoire des documents, dans leur propre sandbox. C'est pour la sécurité et la facilité d'installation / désinstallation. Vous ne pouvez donc le faire que sur un appareil jailbreaké.


1
Uniquement dans le bac à sable, mais pas uniquement dans le répertoire des documents (voir Guide de programmation d'application iOS> Runtime d'application> Système de fichiers).
Jano


47

Non, vous ne pouvez pas modifier le fichier hôte de l'iPad (sans jailbreak), mais vous pouvez contourner le problème.

Voici mon scénario:

  • Mac OS X, avec IP 192.168.2.1, exécutant une application Web
  • iPad, l'appareil sur lequel vous souhaitez tester l'application Web
  • Charles (pour Mac), active le proxy HTTP pour votre iPad

Je vais tester l'application Web exécutée sur mon Mac via iPad, mais je ne peux pas y accéder directement.

La solution fonctionne pour moi:

  • Tout d'abord, assurez-vous que votre serveur et votre iPad sont sur le même réseau local.
  • Ensuite, configurez le proxy Charles, dans le menu "Proxy> Proxy Settings ...", remplissez Port(principalement 8888) et basculez Enable transparent HTTP proxying.

entrez la description de l'image ici


  • Configurer les paramètres de proxy sur iPad.

entrez la description de l'image ici

Vous pouvez maintenant visiter votre application Web sur iPad.

Bien sûr , vous pouvez utiliser d' autres outils de proxy comme Squid ou Varnish sous Linux, ou Fiddler dans wondows.


1
Cela ne répond pas à la question ... mais c'est une excellente solution, facile à mettre en œuvre et à basculer facilement pour les fins pour lesquelles la plupart des gens voudraient modifier le fichier hosts.
Matt Kenefick

Solution géniale! Propre et facile à mettre en œuvre. J'utilise Linux comme système d'exploitation pour mon poste de travail, j'ai donc utilisé tinyproxy et le proxy fonctionne très bien avec mon iPhone. Merci mec!
Edenshaw

Cela ne fonctionne pas sur la nouvelle version d'iOS en raison de problèmes de sécurité peut-être, cela peut être plus facile avec un NodeJsmodule filternet
vanduc1102

1
"Vous pouvez maintenant visiter votre application Web sur iPad" - mais comment? Si mon application ne fonctionne que sur "myapp.dev.domain.com", comment l'Ipad résout-il le nom. C'est là que le fichier hôte entre en jeu, et je soupçonne le point de la question
Greg Woods

@GregWoods j'ai une configuration similaire et cela a fonctionné pour moi en visitant 'myapp.env.domain.com' mais seulement après quelques essais
RenaissanceProgrammer

6

Le moyen le plus simple de le faire est d'exécuter un simulateur iPad à l'aide de XCode, puis d'ajouter une entrée dans le fichier hosts (/ etc / hosts) sur le système hôte pour pointer vers votre site de test.


6
La question concerne l'appareil et non le simulateur.
Janak Nirmal

5
@JanakNirmal Encore une réponse utile cependant.
Simon

6

J'avais besoin de la même fonctionnalité, et faire du jailbreak est non-non. Une solution consiste à vous héberger un serveur DNS ( MaraDNS ), à accéder à vos paramètres wifi dans ipad / téléphone et à y ajouter votre serveur DNS personnalisé.

L'ensemble du processus ne m'a pris que 10 minutes et ça marche!

1) Téléchargez MaraDNS

2) Exécuter en mkSecretTxt.exetant qu'administrateur

3) Modifier le mararcfichier, le mien est:

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

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

Ajoutez le fichier appelé " example.configuration" dans le même dossier où se run_maradns.battrouve.

4) Modifiez votre fichier example.configuration:

Simple.Example.com. 10.10.13.13 ~

5) Désactivez tous les pare-feu (commodité)

6) Exécutez le fichier " run_maradns.bat"

7) Il ne devrait y avoir aucune erreur.

8) Ajoutez votre serveur DNS à la liste, comme indiqué ici: http://www.iphonehacks.com/2014/08/change-dns-iphone-ipad.html

9) Fonctionne!


1
chaque réponse ici suppose que OP veut renifler le trafic HTTP alors que c'est la seule réponse réelle qui se concentre sur l'usurpation de la résolution DNS (en tant que modification du fichier d'hôtes)
Filipe Pina

5

Oui, vous pouvez modifier le fichier d'hôtes iPad, mais vous devez être jailbreaké. Une fois que vous avez fait cela, téléchargez Cydia (marché des applications) et obtenez iFile. Le fichier hosts se trouve dans "/ etc / hosts".


4

J'imagine que vous pourriez le faire en configurant un proxy transparent, en utilisant quelque chose comme Charles et en redirigeant le trafic de cette façon


3

Workarond que j'utilise à des fins de développement:

  1. Créez votre propre serveur proxy (une option serait: Squid sous Linux).
  2. Définissez votre fichier d'hôtes avec vos domaines.
  3. Configurez le serveur proxy sur l'IPAD / IPHONE et vous pouvez l'utiliser avec vos hôtes.

Belle solution simple!
Adam Freeman le

3

Je sais que cela fait un moment que cela a été publié, mais avec iOS 7.1, certaines choses ont changé.

Jusqu'à présent, si vous développez une application, vous DEVEZ avoir un certificat SSL valide reconnu par Apple, sinon vous obtiendrez un message d'erreur sur votre iDevice. Plus de certificats auto-signés. Voir ici une liste:

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

De plus, si vous êtes ici, cela signifie que vous essayez de faire en sorte que votre iDevice résolve un nom (sur votre serveur https), sur un environnement de test ou de développement.

Au lieu d'utiliser squid, qui est une excellente application, vous pouvez simplement exécuter un serveur DNS très basique comme dnsmasq. Il utilisera votre fichier hosts comme première ligne de résolution de nom, vous pouvez donc tromper votre iDevice là-bas, en disant que www.blah.com est 192.168.10.10.

Le fichier de configuration est aussi simple que 3 à 4 lignes, et vous pouvez même configurer son serveur DHCP interne si vous le souhaitez.

Voici le mien:

adresse d'écoute = 192.168.10.35

domaine nécessaire

faux-privé

no-dhcp-interface = eth0

local = / localnet /

Bien sûr, vous devez configurer le réseau sur votre iDevice pour utiliser ce DNS (192.168.10.35 dans mon cas), ou simplement commencer à utiliser DHCP à partir de ce serveur de toute façon, après avoir été correctement configuré.

De plus, si dnsmasq ne peut pas résoudre le nom en interne, il utilise votre serveur DNS habituel (comme 8.8.8.8) pour le résoudre pour vous. TRÈS simple, élégant et résolu mes problèmes avec l'installation de l'application iDevice en interne.

Soit dit en passant, résout également de nombreux problèmes de résolution de noms avec les macs classiques (OS X).

Maintenant, ma diatribe: Bloody Apple. Rendre un appareil sûr ne doit pas inclure la castration du système d'exploitation ou des développeurs.


Merci Carlos. Le problème est que nous utilisons le produit VPN mobile de Pulse Secure pour tester les serveurs. Ceux-ci ne sont pas disponibles à l'extérieur. Donc, si nous voulons tester un nouveau certificat PROD, nous avons besoin de l'iPad pour aller au serveur de test (où le certificat PROD est installé); mais pour utiliser l'URL www.prod ...... com. donc, loin, aucune solution à ce scénario trouvée. : 0 (
codeslapper

2

Si vous avez la liberté de choisir le nom d'hôte, vous pouvez simplement ajouter votre hôte à un service DNS dynanmique, comme dyndns.org. Ensuite, vous pouvez vous fier aux mécanismes de résolution normaux de l'iPad pour résoudre l'adresse.


2

Vous pouvez également utiliser un serveur proxy sur votre iPhone ou iPade via Internet mobile (3G) en utilisant un générateur de proxy iPhone Mobile:

http://iphonesettings.net/mobileproxygenerator.php

Entrez simplement l'apn de votre opérateur (avec le nom d'utilisateur / mot de passe apn si nécessaire) et le serveur proxy que vous souhaitez utiliser et appuyez sur Générer


2
ATTENTION AU LECTEUR : le site Web de cette réponse est répertorié comme malware par de nombreuses solutions de pare-feu Internet d'entreprise. En envoyant tout votre trafic via un serveur proxy non approuvé, vous exposez toutes les informations transmises. Avez-vous vraiment confiance iphonesettings.net?
ErikE

-2

Vous devez y avoir accès /private/etc/, non. vous ne pouvez pas.


@OmG, La question était "est-ce possible?" Et son commentaire répond en fait avec précision à la question. Arrêtez de copier / coller des commentaires pour renforcer votre propre réputation.
Daniel Smith

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.