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.
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
55
La respuesta anterior es correcta, pero si el efecto que busca es redirigir el tráfico HTTP de un dominio a otra IP, existe una forma.
Dado que técnicamente no responde a su pregunta, he preguntado y respondido la pregunta aquí:
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.
@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á.
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".
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:
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.
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.
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
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.
@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
Respuestas:
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.
fuente
La respuesta anterior es correcta, pero si el efecto que busca es redirigir el tráfico HTTP de un dominio a otra IP, existe una forma.
Dado que técnicamente no responde a su pregunta, he preguntado y respondido la pregunta aquí:
¿Cómo puedo redirigir las solicitudes HTTP realizadas desde un iPad?
fuente
No, no puede cambiar el archivo de host del iPad (sin jailbreak), pero puede solucionarlo.
Aquí está mi escenario:
192.168.2.1
, ejecutando una aplicación webVoy 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í:
Port
( en su mayoría8888
) y alterneEnable transparent HTTP proxying
.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.
fuente
NodeJs
módulo filternetLa 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.
fuente
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.exe
como administrador3) Modificar
mararc
archivo, 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 donderun_maradns.bat
está.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!
fuente
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".
fuente
Me imagino que podría hacerlo configurando un proxy transparente, usando algo como charles y redirigir el tráfico de esa manera.
fuente
Workarond que uso para fines de desarrollo:
fuente
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.
fuente
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.
fuente
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
fuente
iphonesettings.net
?Necesitas acceso a
/private/etc/
eso, no. no puedes.fuente
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
fuente