¿Puedo editar el archivo de host de un iPad?

87

Dudo que esto sea posible sin un jailbreak extenso, pero ¿es posible editar el archivo de hosts del iPad (o de cualquier dispositivo iOS)?

Ahmed Nuaman
fuente
1
No sin jailbreak. Una vez liberado, será igual que cualquier otro sistema Unix / BSD. Supongo que no lo he hecho antes.
Jasarien
1
Imagínese si alguna aplicación pudiera cambiar la asociación entre los nombres de host y sus IP legítimas.
Jano
2
@jano Presumiblemente, ese problema ahora existe con las aplicaciones en la Mac App Store. OSX se ocupa de ello y requiere una contraseña antes de poder editar el archivo de hosts, y también, presumiblemente, mediante el procedimiento de verificación de aplicaciones de Apple.
Danyal Aytekin
3
@Jano: Microsoft Windows permite esto ahora y causa 0 problemas. Solo necesita tener permisos de administrador. Y existen razones legítimas para querer modificar un archivo de hosts (todo relacionado con acceder a cosas sin un servidor DNS o lidiar con problemas de VPN).
Josh Mouch

Respuestas:

46

No. Las aplicaciones solo pueden modificar archivos dentro del directorio de documentos, dentro de su propia caja de arena. Esto es por seguridad y facilidad de instalación / desinstalación. Por lo tanto, solo puede hacer esto en un dispositivo con jailbreak.

Jonathan.
fuente
1
Solo en la zona de pruebas, pero no solo dentro del directorio de documentos (consulte Guía de programación de aplicaciones de iOS> Tiempo de ejecución de aplicaciones> Sistema de archivos).
Jano
47

No, no puede cambiar el archivo de host del iPad (sin jailbreak), pero puede solucionarlo.

Aquí está mi escenario:

  • Mac OS X, con IP 192.168.2.1, ejecutando una aplicación web
  • iPad, el dispositivo en el que le gustaría probar la aplicación web
  • Charles (para Mac), habilita el proxy HTTP para su iPad

Voy a probar la aplicación web que se ejecuta en mi Mac a través de iPad, pero no puedo acceder directamente a ella.

La solución funciona para mí:

  • En primer lugar, asegúrese de que su servidor y su iPad estén en la misma red local.
  • Luego, configure Charles proxy, en el menú "Proxy> Proxy Settings ...", complete Port( en su mayoría 8888) y alterne Enable transparent HTTP proxying.

ingrese la descripción de la imagen aquí


  • Configure la configuración de proxy en iPad.

ingrese la descripción de la imagen aquí

Ahora puede visitar su aplicación web en iPad.

Por supuesto, se pueden utilizar otras herramientas de proxy como Squid o barniz en Linux o violinista en Wondows.

Holys
fuente
1
No responde a la pregunta ... pero esta es una solución excelente, fácil de implementar y fácilmente conmutable para los propósitos para los que la mayoría de la gente querría editar el archivo de hosts.
Matt Kenefick
¡Excelente solución! Limpio y fácil de implementar. Utilizo linux como mi sistema operativo para mi estación de trabajo, así que usé tinyproxy y el proxy funciona muy bien con mi iPhone. ¡Gracias hombre!
Edenshaw
No funciona en la versión más reciente de iOS debido a problemas de seguridad, tal vez. Puede ser más fácil con un NodeJsmódulo filternet
vanduc1102
1
"Ahora puede visitar su aplicación web en iPad", pero ¿cómo? Si mi aplicación solo funciona en "myapp.dev.domain.com", ¿cómo resuelve el nombre el Ipad? Aquí es donde entra el archivo de host, y sospecho que el punto de la pregunta
Greg Woods
@GregWoods tengo una configuración similar y esto funcionó para mí visitando 'myapp.env.domain.com' pero solo después de intentarlo varias veces
RenaissanceProgrammer
6

La forma más fácil de hacer esto es ejecutar un simulador de iPad usando XCode y luego agregar una entrada en el archivo de hosts (/ etc / hosts) en el sistema host para apuntar a su sitio de prueba.

Payson Welch
fuente
6
La pregunta es sobre dispositivo, no simulador.
Janak Nirmal
5
@JanakNirmal Sin embargo, sigue siendo una respuesta útil.
Simon
6

Necesitaba la misma funcionalidad, y hacer jailbreak no es nada. Una solución es alojarte tú mismo en el servidor DNS ( MaraDNS ), ir a la configuración de wifi en ipad / teléfono y agregar allí tu servidor DNS personalizado.

Todo el proceso me llevó solo 10 minutos, ¡y funciona!

1) Descarga MaraDNS

2) Ejecutar mkSecretTxt.execomo administrador

3) Modificar mararcarchivo, el mío es:

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

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

Agregue el archivo llamado " example.configuration" en la misma carpeta donde run_maradns.batestá.

4) Edite su archivo example.configuration:

Simple.Example.com. 10.10.13.13 ~

5) Desactive todos los cortafuegos (conveniencia)

6) Ejecute el archivo " run_maradns.bat"

7) No debe haber errores.

8) Agregue su servidor DNS a la lista, como se muestra aquí: http://www.iphonehacks.com/2014/08/change-dns-iphone-ipad.html

9) ¡Funciona!

Erti-Chris Eelmaa
fuente
1
cada respuesta aquí asume que OP quiere rastrear el tráfico HTTP, mientras que esta es la única respuesta real que se enfoca en la suplantación de la resolución de DNS (como modificar el archivo de hosts)
Filipe Pina
5

Sí, puede editar el archivo de hosts del iPad, pero debe tener jailbreak. Una vez que haya hecho eso, descargue Cydia (mercado de aplicaciones) y obtenga iFile. El archivo de hosts se encuentra dentro de "/ etc / hosts".

Apollo Clark
fuente
4

Me imagino que podría hacerlo configurando un proxy transparente, usando algo como charles y redirigir el tráfico de esa manera.

CosmicChild
fuente
3

Workarond que uso para fines de desarrollo:

  1. Cree su propio servidor proxy (una opción sería: Squid en Linux).
  2. Configure su archivo de hosts con sus dominios.
  3. Configure el servidor proxy en el IPAD / IPHONE y podrá usarlo con sus hosts.
tauanz
fuente
¡Buena solución simple!
Adam Freeman
3

Sé que ha pasado un tiempo que se publicó, pero con iOS 7.1, algunas cosas han cambiado.

Hasta ahora, si está desarrollando una aplicación, DEBE tener un certificado SSL válido reconocido por Apple; de ​​lo contrario, recibirá un mensaje de error en su iDevice. No más certificados autofirmados. Vea aquí una lista:

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

Además, si está aquí, significa que está intentando que su iDevice resuelva un nombre (en su servidor https), en un entorno de prueba o desarrollo.

En lugar de usar squid, que es una gran aplicación, simplemente podría ejecutar un servidor DNS muy básico como dnsmasq. Utilizará su archivo de hosts como primera línea de resolución de nombres, por lo que básicamente puede engañar a su iDevice allí, diciendo que www.blah.com es 192.168.10.10.

El archivo de configuración es tan simple como de 3 a 4 líneas, e incluso puede configurar su servidor DHCP interno si lo desea.

Aquí esta el mio:

dirección-escucha = 192.168.10.35

dominio necesario

falso-priv

no-dhcp-interface = eth0

local = / localnet /

Por supuesto, debe configurar la red en su iDevice para usar ese DNS (192.168.10.35 en mi caso), o simplemente comenzar a usar DHCP desde ese servidor de todos modos, después de configurarlo correctamente.

Además, si dnsmasq no puede resolver el nombre internamente, utiliza su servidor DNS habitual (como 8.8.8.8) para resolverlo por usted. MUY simple, elegante y resolvió mis problemas con la instalación interna de la aplicación iDevice.

Por cierto, también resuelve muchos problemas de resolución de nombres con Mac normales (OS X).

Ahora, mi perorata: maldita Apple. Hacer que un dispositivo sea seguro no debe incluir castrar el sistema operativo o los desarrolladores.

Carlos Cap
fuente
Gracias Carlos. La lucha es que usamos el producto vpn móvil de Pulse Secure para probar los servidores. Estos no están disponibles en el exterior. Entonces, si queremos probar un nuevo certificado PROD, entonces necesitamos que el iPad vaya al servidor de prueba (donde está instalado el certificado PROD); pero para usar la URL www.prod ...... com. hasta ahora, no se ha encontrado ninguna solución a este escenario. : 0 (
codeslapper
2

Si tiene la libertad de elegir el nombre de host, simplemente puede agregar su host a un servicio de DNS dinámico, como dyndns.org. Entonces puede confiar en los mecanismos de resolución normales del iPad para resolver la dirección.

jonseymour
fuente
2

También puede hacer uso de un servidor proxy en su iPhone o iPade a través de Internet móvil (3G) utilizando un generador de proxy iPhone Mobile:

http://iphonesettings.net/mobileproxygenerator.php

Simplemente ingrese la apn de su proveedor (con el nombre de usuario / contraseña de apn si es necesario) y el servidor proxy que desea utilizar y toque Generar

Savas
fuente
2
ATENCIÓN AL LECTOR : el sitio web de esta respuesta está catalogado como malware por muchas soluciones de firewall de Internet corporativas. Al enviar todo su tráfico a través de un servidor proxy que no es de confianza, expone toda la información transmitida. ¿De verdad confías iphonesettings.net?
ErikE
-2

Necesitas acceso a /private/etc/eso, no. no puedes.

usuario8853097
fuente
@OmG, La pregunta era "¿es posible?" Y su comentario de hecho responde con precisión a la pregunta. Deje de copiar / pegar comentarios para mejorar su propia reputación.
Daniel Smith
-6

Mejor respuesta: simplemente agregue http o https en su navegador, la dirección IP, dos puntos y el número de puerto. Ejemplo: https://123.23.145.67:80

Charlie
fuente