Posso editar o arquivo host de um iPad?

87

Eu duvido que isso seja possível sem um jailbreak extenso, mas é possível editar o arquivo hosts do iPad (ou de qualquer dispositivo iOS)?

Ahmed Nuaman
fonte
1
Não sem jailbreak. Uma vez desbloqueado, será o mesmo que qualquer outro sistema Unix / BSD. Eu presumo que não tenha feito isso antes.
Jasarien
1
Imagine se qualquer aplicativo pudesse alterar a associação entre nomes de host e seus IPs legítimos.
Jano
2
@jano Presumivelmente, esse problema agora existe com aplicativos na Mac App Store. Isso é resolvido pelo OSX que exige uma senha antes de editar o arquivo hosts e também, presumivelmente, pelo procedimento de verificação de aplicativos da Apple.
Danyal Aytekin,
3
@Jano: O Microsoft Windows permite isso agora e causa 0 problemas. Você só precisa ter permissões de administrador. E há razões legítimas para querer modificar um arquivo hosts (todas relacionadas a obter coisas sem um servidor DNS ou então lidar com problemas de VPN).
Josh Mouch

Respostas:

46

Não. Os aplicativos só podem modificar arquivos dentro do diretório de documentos, em sua própria sandbox. Isso é para segurança e facilidade de instalação / desinstalação. Portanto, você só poderia fazer isso em um dispositivo desbloqueado.

Jonathan.
fonte
1
Apenas na sandbox, mas não apenas no diretório de documentos (consulte Guia de programação de aplicativos iOS> Tempo de execução do aplicativo> Sistema de arquivos).
Jano
55

A resposta anterior está correta, mas se o efeito que você está procurando é redirecionar o tráfego HTTP de um domínio para outro IP, existe uma maneira.

Uma vez que tecnicamente não está respondendo à sua pergunta, eu perguntei e respondi aqui:

Como posso redirecionar solicitações HTTP feitas de um iPad?

tremoloqui
fonte
47

Não, você não pode alterar o arquivo host do iPad (sem jailbreak), mas pode contornar.

Aqui está o meu cenário:

  • Mac OS X, com IP 192.168.2.1, executando um aplicativo da web
  • iPad, o dispositivo que você gostaria de testar o aplicativo da web
  • Charles (para Mac), ativa o proxy HTTP para o seu iPad

Vou testar o aplicativo da web em execução no meu Mac via iPad, mas não consigo acessar diretamente.

A solução funciona para mim:

  • Em primeiro lugar, certifique-se de que seu servidor e iPad estão na mesma rede local.
  • Em seguida, configure o proxy Charles, no menu "Proxy> Configurações de proxy ...", preencha Port(principalmente 8888) e alterne Enable transparent HTTP proxying.

insira a descrição da imagem aqui


  • Configure a configuração de proxy no iPad.

insira a descrição da imagem aqui

Agora você pode visitar seu aplicativo da web no iPad.

Claro que você pode usar outras ferramentas de proxy, como Squid ou Varnish no Linux, ou fiddler no Wondows.

holys
fonte
1
Não responde à pergunta ... mas esta é uma solução excelente, fácil de implementar e facilmente alternável para os fins para os quais a maioria das pessoas gostaria de editar o arquivo hosts.
Matt Kenefick
Solução incrível! Limpo e fácil de implementar. Eu uso linux como meu sistema operacional para minha estação de trabalho, então usei o tinyproxy e o proxy funciona muito bem com meu iPhone. Obrigado cara!
Edenshaw
Não funciona na versão mais recente do iOS devido a problemas de segurança, talvez, pode ser mais fácil com um NodeJsmódulo de filternet
vanduc1102
1
"Agora você pode visitar seu aplicativo da web no iPad" - mas como? Se meu aplicativo só funciona em "myapp.dev.domain.com", como o Ipad resolve o nome. É aqui que o arquivo host entra, e suspeito que o ponto da questão
Greg Woods
@GregWoods eu tenho uma configuração semelhante e funcionou para mim visitando 'myapp.env.domain.com', mas só depois de tentar algumas vezes
RenaissanceProgrammer
6

A maneira mais fácil de fazer isso é rodar um simulador de iPad usando XCode e, em seguida, adicionar uma entrada no arquivo hosts (/ etc / hosts) no sistema host para apontar para seu site de teste.

Payson Welch
fonte
6
A pergunta é sobre o dispositivo, não o simulador.
Janak Nirmal
5
@JanakNirmal Ainda uma resposta útil.
Simon
6

Eu precisava da mesma funcionalidade, e fazer o jailbreak é impossível. Uma solução é hospedar-se no servidor DNS ( MaraDNS ), acessar as configurações do wi-fi no ipad / telefone e adicionar o servidor DNS personalizado.

Todo o processo demorou apenas 10 minutos e funciona!

1) Faça o download do MaraDNS

2) Executar mkSecretTxt.execomo administrador

3) Modificar mararcarquivo, o meu é:

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

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

Adicione o arquivo chamado " example.configuration" na mesma pasta onde run_maradns.batestá.

4) Edite seu arquivo example.configuration:

Simple.Example.com. 10.10.13.13 ~

5) Desative todos os firewalls (conveniência)

6) Execute o arquivo " run_maradns.bat"

7) Não deve haver erros.

8) Adicione seu servidor DNS à lista, conforme mostrado aqui: http://www.iphonehacks.com/2014/08/change-dns-iphone-ipad.html

9) Funciona!

Erti-Chris Eelmaa
fonte
1
todas as respostas aqui presumem que o OP deseja farejar o tráfego HTTP, embora esta seja a única resposta real que se concentra em falsificar a resolução DNS (como modificar o arquivo de hosts)
Filipe Pina
5

Sim, você pode editar o arquivo hosts do iPad, mas precisa ter o jailbreak. Depois de fazer isso, baixe o Cydia (mercado de aplicativos) e obtenha o iFile. O arquivo hosts está localizado em "/ etc / hosts".

Apollo Clark
fonte
4

Imagino que você possa fazer isso configurando um proxy transparente, usando algo como Charles e redirecionar o tráfego dessa forma

CosmicChild
fonte
3

Workarond que uso para fins de desenvolvimento:

  1. Crie seu próprio servidor proxy (uma opção seria: Squid no Linux).
  2. Defina seu arquivo hosts com seus domínios.
  3. Defina o servidor proxy no IPAD / IPHONE e você pode usar com seus hosts.
Tauanz
fonte
Boa solução simples!
Adam Freeman
3

Eu sei que já faz um tempo que isso foi postado, mas com o iOS 7.1, algumas coisas mudaram.

Até agora, se você estiver desenvolvendo um aplicativo, você DEVE ter um certificado SSL válido reconhecido pela Apple, caso contrário, você receberá uma mensagem de erro em seu iDevice. Não há mais certificados autoassinados. Veja aqui uma lista:

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

Além disso, se você estiver aqui, significa que está tentando fazer com que seu iDevice resolva um nome (para seu servidor https), em um ambiente de teste ou desenvolvimento.

Em vez de usar o squid, que é um ótimo aplicativo, você poderia simplesmente executar um servidor DNS muito básico como o dnsmasq. Ele usará seu arquivo hosts como uma primeira linha de resolução de nome, então, você pode basicamente enganar seu iDevice lá, dizendo que www.blah.com é 192.168.10.10.

O arquivo de configuração é tão simples quanto 3 a 4 linhas, e você pode até configurar seu servidor DHCP interno se desejar.

Aqui é minha:

endereço de escuta = 192.168.10.35

domínio necessário

falso-privado

no-dhcp-interface = eth0

local = / localnet /

Claro que você tem que configurar a rede no seu iDevice para usar aquele DNS (192.168.10.35 no meu caso), ou apenas começar a usar o DHCP daquele servidor mesmo assim, depois de configurado corretamente.

Além disso, se o dnsmasq não puder resolver o nome internamente, ele usará seu servidor DNS regular (como 8.8.8.8) para resolvê-lo para você. MUITO simples, elegante e resolveu meus problemas com a instalação do aplicativo iDevice internamente.

A propósito, também resolve muitos problemas de resolução de nomes com macs normais (OS X).

Agora, meu discurso: maldita maçã. Tornar um dispositivo seguro não deve incluir castrar o sistema operacional ou os desenvolvedores.

Carlos Cap
fonte
Obrigado Carlos. A dificuldade é que usamos o produto VPN móvel da Pulse Secure para testar os servidores. Eles não estão disponíveis fora. Portanto, se quisermos testar um novo certificado PROD, precisamos que o iPad vá para o servidor de teste (onde o certificado PROD está instalado); mas para usar o URL www.prod ...... com. até agora, nenhuma solução para este cenário encontrada. : 0 (
codeslapper
2

Se você tiver a liberdade de escolher o nome do host, poderá simplesmente adicionar seu host a um serviço DNS dinâmico, como dyndns.org. Então, você pode contar com os mecanismos de resolução normal do iPad para resolver o endereço.

Jonseymour
fonte
2

Você também pode usar um servidor proxy em seu iPhone ou iPade via internet móvel (3G) usando um gerador de proxy iPhone Mobile:

http://iphonesettings.net/mobileproxygenerator.php

Basta inserir o apn da sua operadora (com nome de usuário / senha apn se necessário) e o servidor proxy que você deseja acessar e tocar em Gerar

Savas
fonte
2
CUIDADO COM O LEITOR : o site desta resposta está listado como malware por muitas soluções corporativas de firewall de Internet. Ao enviar todo o seu tráfego por meio de um servidor proxy não confiável, você expõe todas as informações transmitidas. Você realmente confia iphonesettings.net?
ErikE de
-2

Você precisa de acesso /private/etc/, não. você não pode.

user8853097
fonte
@OmG, A pergunta era "é mesmo possível" e seu comentário de fato responde com precisão à pergunta. Pare de copiar / colar comentários para aumentar sua reputação.
Daniel Smith
-6

Melhor resposta: basta adicionar http ou https em seu navegador, o endereço IP, dois pontos e o número da porta. Exemplo: https://123.23.145.67:80

Charlie
fonte