Posso modificare il file host di un iPad?


87

Dubito che ciò sia possibile senza un ampio jailbreak, ma è possibile modificare il file host dell'iPad (o di qualsiasi dispositivo iOS)?


1
Non senza jailbreak. Una volta eseguito il jailbreak, sarà uguale a qualsiasi altro sistema Unix / BSD. Presumo, non l'ho fatto prima.
Jasarien

1
Immagina se qualsiasi app potesse modificare l'associazione tra i nomi host e i loro IP legittimi.
Jano

2
@jano Presumibilmente questo problema ora esiste con le app sul Mac App Store. Viene gestito da OSX che richiede una password prima di poter modificare il file hosts, e presumibilmente anche dalla procedura di verifica delle app di Apple.
Danyal Aytekin,

3
@Jano: Microsoft Windows lo consente ora e causa 0 problemi. Devi solo disporre delle autorizzazioni di amministratore. E ci sono motivi legittimi per voler modificare un file host (tutti relativi all'accesso a cose senza un server DNS o alla gestione di problemi VPN).
Josh Mouch

Risposte:


46

No. Le app possono modificare solo i file all'interno della directory dei documenti, all'interno della propria sandbox. Questo è per sicurezza e facilità di installazione / disinstallazione. Quindi puoi farlo solo su un dispositivo jailbroken.


1
Solo nella sandbox, ma non solo nella directory dei documenti (vedere Guida alla programmazione dell'applicazione iOS> Runtime dell'applicazione> File system).
Jano


47

No, non puoi modificare il file host di iPad (senza jailbreak), ma puoi risolvere il problema.

Ecco il mio scenario:

  • Mac OS X, con IP 192.168.2.1, che esegue un'app Web
  • iPad, il dispositivo su cui desideri testare l'app Web
  • Charles (per Mac), abilita il proxy HTTP per il tuo iPad

Proverò l'app Web in esecuzione sul mio Mac tramite iPad, ma non posso accedervi direttamente.

La soluzione funziona per me:

  • Innanzitutto, assicurati che il tuo server e l'iPad siano nella stessa rete locale.
  • Quindi, configura il proxy Charles, nel menu "Proxy> Impostazioni proxy ...", compila Port(principalmente 8888) e attiva Enable transparent HTTP proxying.

inserisci qui la descrizione dell'immagine


  • Configura l'impostazione proxy in iPad.

inserisci qui la descrizione dell'immagine

Ora puoi visitare la tua app web su iPad.

Ovviamente puoi usare altri strumenti proxy come Squid o Varnish in Linux o fiddler in Wondows.


1
Non risponde alla domanda ... ma questa è una soluzione eccellente, facile da implementare e facilmente attivabile per gli scopi per cui la maggior parte delle persone vorrebbe modificare il file hosts.
Matt Kenefick

Ottima soluzione! Pulito e facile da implementare. Uso Linux come sistema operativo per la mia workstation, quindi ho usato tinyproxy e il proxy funziona alla grande con il mio iPhone. Grazie uomo!
Edenshaw

Non funziona sulla versione più recente di iOS a causa di problemi di sicurezza, forse, può essere più facile con un NodeJsmodulo filternet
vanduc1102

1
"Ora puoi visitare la tua app web su iPad", ma come? Se la mia app funziona solo su "miaapp.dev.domain.com", come fa l'iPad a risolvere il nome. È qui che entra in gioco il file host e sospetto il punto della domanda
Greg Woods

@GregWoods ho una configurazione simile e questo ha funzionato per me visitando 'myapp.env.domain.com' ma solo dopo aver provato alcune volte
RenaissanceProgrammer

6

Il modo più semplice per farlo è eseguire un simulatore di iPad utilizzando XCode e quindi aggiungere una voce nel file hosts (/ etc / hosts) sul sistema host per puntare al tuo sito di test.


6
La domanda riguarda il dispositivo, non il simulatore.
Janak Nirmal

5
@JanakNirmal Ancora una risposta utile però.
Simon

6

Avevo bisogno della stessa funzionalità e fare il jailbreak è no-no. Una soluzione è ospitare da soli il server DNS ( MaraDNS ), andare alle impostazioni - su ipad / telefono e aggiungere lì il tuo server DNS personalizzato.

L'intero processo mi ha richiesto solo 10 minuti e funziona!

1) Scarica MaraDNS

2) Esegui mkSecretTxt.execome amministratore

3) Modifica mararcfile, il mio è:

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

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

Aggiungi il file chiamato " example.configuration" nella stessa cartella in cui si run_maradns.battrova.

4) Modifica il tuo file example.configuration:

Simple.Example.com. 10.10.13.13 ~

5) Disabilita tutti i firewall (comodità)

6) Esegui il file " run_maradns.bat"

7) Non dovrebbero esserci errori.

8) Aggiungi il tuo server DNS all'elenco, come mostrato qui: http://www.iphonehacks.com/2014/08/change-dns-iphone-ipad.html

9) Funziona!


1
ogni risposta qui presuppone che OP voglia rilevare il traffico HTTP mentre questa è l'unica risposta effettiva che si concentra sullo spoofing della risoluzione DNS (come la modifica del file host)
Filipe Pina

5

Sì, puoi modificare il file hosts dell'iPad, ma è necessario eseguire il jailbreak. Dopo averlo fatto, scarica Cydia (mercato delle app) e ottieni iFile. Il file hosts si trova in "/ etc / hosts".


4

Immagino che potresti farlo impostando un proxy trasparente, usando qualcosa come charles e reindirizzando il traffico in questo modo


3

Workarond che utilizzo per scopi di sviluppo:

  1. Crea il tuo server proxy (un'opzione sarebbe: Squid su Linux).
  2. Imposta il tuo file hosts con i tuoi domini.
  3. Imposta il server proxy su IPAD / IPHONE e puoi usarlo con i tuoi host.

Bella soluzione semplice!
Adam Freeman

3

So che è stato pubblicato un po 'di tempo, ma con iOS 7.1 alcune cose sono cambiate.

Finora, se stai sviluppando un'app, DEVI avere un certificato SSL valido riconosciuto da Apple, altrimenti riceverai un messaggio di errore sul tuo iDevice. Niente più certificati autofirmati. Vedi qui un elenco:

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

Inoltre, se sei qui, significa che stai cercando di farti risolvere un nome da iDevice (sul tuo server https), in un ambiente di test o di sviluppo.

Invece di usare squid, che è un'ottima applicazione, potresti semplicemente eseguire un server DNS molto semplice come dnsmasq. Utilizzerà il tuo file hosts come prima riga di risoluzione dei nomi, quindi puoi praticamente ingannare il tuo iDevice lì, dicendo che www.blah.com è 192.168.10.10.

Il file di configurazione è semplice da 3 a 4 righe e, se lo desideri, puoi persino configurare il suo server DHCP interno.

Ecco il mio:

indirizzo-ascolto = 192.168.10.35

dominio necessario

bogus-priv

no-dhcp-interface = eth0

local = / localnet /

Ovviamente devi configurare la rete sul tuo iDevice per utilizzare quel DNS (192.168.10.35 nel mio caso), o semplicemente iniziare a utilizzare DHCP da quel server comunque, dopo aver configurato correttamente.

Inoltre, se dnsmasq non è in grado di risolvere il nome internamente, utilizza il tuo normale server DNS (come 8.8.8.8) per risolverlo per te. MOLTO semplice, elegante e ha risolto i miei problemi con l'installazione dell'app iDevice internamente.

A proposito, risolve molti problemi di risoluzione dei nomi anche con i normali Mac (OS X).

Ora, il mio sproloquio: maledetta mela. Rendere sicuro un dispositivo non dovrebbe includere la castrazione del sistema operativo o degli sviluppatori.


Grazie Carlos. Il problema è che utilizziamo il prodotto VPN mobile di Pulse Secure per testare i server. Questi non sono disponibili all'esterno. Quindi, se vogliamo testare un nuovo certificato PROD, abbiamo bisogno che l'iPad vada al server di test (dove è installato il certificato PROD); ma per utilizzare l'URL www.prod ...... com. finora, nessuna soluzione a questo scenario trovata. : 0 (
codelapper

2

Se hai la libertà di scegliere il nome host, puoi semplicemente aggiungere il tuo host a un servizio DNS dinamico, come dyndns.org. Quindi puoi fare affidamento sui normali meccanismi di risoluzione dell'iPad per risolvere l'indirizzo.


2

Puoi anche utilizzare un server proxy sul tuo iPhone o iPade tramite Internet mobile (3G) utilizzando un generatore di proxy mobile per iPhone:

http://iphonesettings.net/mobileproxygenerator.php

Basta inserire l'apn del tuo operatore (con nome utente / password apn se necessario) e il server proxy che desideri passare e tocca Genera


2
ATTENZIONE AL LETTORE : il sito web in questa risposta è elencato come malware da molte soluzioni di firewall Internet aziendali. Inviando tutto il tuo traffico attraverso un server proxy non affidabile, esponi tutte le informazioni trasmesse. Ti fidi davveroiphonesettings.net ?
ErikE

-2

Hai bisogno di accedere a /private/etc/così, no. non puoi.


@OmG, la domanda era "è possibile?" E il suo commento in effetti risponde accuratamente alla domanda. Smetti di copiare / incollare commenti per aumentare la tua reputazione.
Daniel Smith,

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.