Consigo acessar meu servidor Web de laptop usando o emulador do Android, estou usando 10.0.2.2:portno
funciona bem.
Mas quando eu conecto meu telefone Android real, o navegador do telefone não pode se conectar ao mesmo servidor da Web no meu laptop. O telefone está conectado ao laptop usando um cabo USB. Se eu executar o comando adb devices, posso ver meu telefone.
o que estou perdendo?
Respostas:
O USB não fornece rede para o dispositivo móvel.
Se a área de trabalho e o telefone estiverem conectados ao mesmo WiFi (ou qualquer outra rede local), use o endereço IP da área de trabalho atribuído pelo roteador (não
localhost
e não127.0.0.1
).Para descobrir o endereço IP da sua área de trabalho:
ipconfig
(Windows) ouifconfig
(Unix)ifconfig | grep "inet " | grep -v 127.0.0.1
produzirá apenas as coisas importanteslocalhost
e127.0.0.1
)Se o seu telefone estiver conectado à rede móvel , as coisas ficarão mais difíceis.
Ou vá hardcore:
<your desktop IP>:<server port number>
Caso contrário, use algo como xip.io ou ngrok .
NOTA : O
ifconfig
comando foi descontinuado e, portanto, está ausente por padrão no Debian Linux, iniciando no Debian Stretch. A alternativa nova e recomendada para examinar uma configuração de rede no Debian Linux é o comando ip. Por exemplo, para usar o comando ip para exibir uma configuração de rede, execute o seguinte:O comando ip acima pode ser abreviado para:
Se você ainda preferir usar
ifconfig
como parte de sua rotina diária de administração do sistema, poderá instalá-lo facilmente como parte donet-tools
pacote.A referência está aqui
fonte
Na verdade é bem simples.
localhost
(eu estou usando o servidor WAMP para Windows)Depois de fazer isso, você verá algo como o seguinte:
192.168.43.76
)Nota: Defina sua rede como " Rede doméstica ". Definir a rede como Rede doméstica significa que você está permitindo que seu PC compartilhe coisas com outros dispositivos na mesma rede.
Se você estiver usando o Windows 10, isso pode ser feito com o seguinte:
Se você está tendo um problema, é mais provável que isso ocorra com o Firewall do Windows.
fonte
Usuários do Mac OS X
Consegui isso habilitando o gerenciamento remoto :
System preferences/sharing
Você verá uma mensagem semelhante a esta:
some.url.com
No seu dispositivo Android, agora você deve poder acessar
some.url.com
, que delegalocalhost
no seu Mac. Você também pode usarifconfig
para obter o endereço IP do seu Mac.Solução portátil com
ngrok
(qualquer sistema operacional com Node.js)Se você não se importa de expor seu projeto com um domínio temporário, pode usá-lo
ngrok
. Digamos que eu tenho um aplicativo que roda,localhost:9460
eu posso simplesmente escreverIsso me dará:
Agora posso chegar
https://f7c23d14.ngrok.io
como uma maneira de visualizar remotamentelocalhost
. É ótimo compartilhar o trabalho de design ou o progresso com os clientes.Solução alternativa com
nginx
passe de proxySe você estiver executando algo assim
nginx proxy_pass
, será necessário um pouco mais de ajustes - essa é uma abordagem hacky, mas funciona para mim e estou aberto a sugestões para melhorá-la:81
em vez de80
http://youripaddress:81
Recarregar e visitar
http://youripaddress:81
fonte
192.168.0.101
mas o nome do host não funcionou.Com a solução simples (basta acessar
laptop_ip_addr:port
do dispositivo móvel, quando o celular e o laptop estão no mesmo WiFi), recebo um erro ERR_CONNECTION_REFUSED . Ou seja, meu MacBook parece recusar a tentativa de conexão do meu celular.Soquete reverso ADB (somente Android)
Esta solução funciona para mim (testada com um MacBook):
adb reverse tcp:4000 tcp:4000
4000
http://localhost:4000/
, e ele realmente se conectará ao laptop, não ao dispositivo móvelVeja as instruções aqui .
A desvantagem é que isso funciona apenas com um único dispositivo móvel por vez . Se você deseja acessar com outro dispositivo móvel, primeiro desconecte o primeiro (desative a Depuração USB ), conecte o novo (ative a Depuração USB ) e execute
adb reverse tcp:4000 tcp:4000
novamente.ngrok (funciona com todos os dispositivos)
Outra solução que sempre deve funcionar é o ngrok (como mencionado em outras respostas). Funciona pela Internet, e não pela rede local.
É extremamente fácil de usar:
Isso gera, entre outras informações, uma linha como
Agora, você pode navegar para
http://4cc5ac02.ngrok.io
qualquer dispositivo conectado à Internet, e esse URL é redirecionado para olocalhost:4000
seu laptop.Observe que, enquanto o comando ngrok estiver em execução (até você pressionar Ctrl-C ), seu projeto será exibido publicamente . Todo mundo que tem o URL pode vê-lo.
fonte
Encontrei uma solução rápida para esse problema. Experimente este link . Isso deve ajudá-lo a resolver o problema.
Eu mudei apenas uma coisa, onde o tutorial afirma que você altera '127.0.0.1' para 'Todos', altere-o para o endereço IP em que o servidor está sendo executado.
Depois disso, você poderá se conectar ao seu host local.
Abaixo está uma cópia (revisada) das informações da página vinculada:
Passo 1
Instale o servidor Wamp (ou qualquer outro que você preferir).
Este é um dos melhores servidores que conheço para configurar um servidor local. Se você instalou o Apache ou qualquer outro servidor, ignore esta etapa.
Baixe e instale o Wamp Server aqui.
Passo 2
Adicione uma nova regra para a porta 80 no Firewall do Windows.
Abra o Painel de Controle e selecione Firewall do Windows.
Selecione Configurações avançadas no painel esquerdo da página de configurações do Firewall do Windows.
Selecione Regras de entrada no painel esquerdo e selecione Nova regra.
Selecione Porta e clique em Avançar.
Selecione o botão de opção "Portas locais específicas" e digite 80 como o valor da porta.
Mantenha Permitir a conexão inalterada e vá para a próxima etapa.
Mantenha as opções de perfil inalteradas e clique em Avançar.
Dê um nome legal à sua nova regra e clique em Concluir.
Isso permitirá o acesso à porta 80 no IP da rede local.
etapa 3
Edite o arquivo httpd.conf do servidor Wamp para corrigir o erro 403.
Precisamos editar este arquivo. Caso contrário, obteremos o erro 403 proibido quando acessarmos o host local através de um IP de rede local.
Clique no ícone da bandeja do servidor Wamp.
Abra o submenu do servidor Apache.
Selecione httpd.conf.
Localize esta seção de configuração no arquivo httpd.conf:
Encontre e substitua '127.0.0.1' por 'Tudo', salve o arquivo e reinicie o servidor Wamp.
Passo 4
Encontre o seu IP da rede local.
Abra o prompt de comando.
Digite e digite o
ipconfig
comando.No meu caso, meu endereço de rede local é 10.0.0.2.
Este é o IP que você precisa para acessar seu host local no seu telefone Android por wifi. Para testar se está funcionando, digite este endereço IP no navegador da área de trabalho em que o servidor localhost está instalado. O navegador deve exibir sua página de host local com êxito. Isso garantirá que o IP da rede local agora esteja acessível com sucesso no seu telefone Android.
Espero que este tutorial o ajude a acessar seu host local por wifi.
fonte
# onlineoffline tag - don't remove Order Allow,Deny Allow from all
No PC com Windows Você pode não precisar fazer nada além de descobrir o seu endereço IPv4 usando o comando "ipconfig".
Outros detalhes do ambiente de trabalho: Windows 7, Google Nexus 4 (4.2.2), servidor Tomcat, aplicativo Grails.
Você também deve ter permissão para acessar a Internet no arquivo AndroidManifest:
fonte
java.io.FileNotFoundException: http://192.168.8.65:8000/app/web/users/
Existe, no entanto, uma solução muito melhor. Você pode acessar sua máquina host com o endereço IP "10.0.2.2". Isso foi projetado dessa maneira pela equipe do Android. Assim, seu servidor da Web pode funcionar perfeitamente no host local e, no seu aplicativo Android, você pode acessá-lo via "http://10.0.2.2:8080".
fonte
Como essa é uma pergunta antiga, há uma nova maneira de fazer isso que é realmente muito simples. Faça o download da extensão do ADB Chrome e siga estas instruções:
https://developers.google.com/chrome-developer-tools/docs/remote-debugging
fonte
"O encaminhamento de porta no Chrome para Android facilita o teste do site de desenvolvimento no celular. Ele funciona criando uma porta TCP de escuta no dispositivo móvel que mapeia para uma porta TCP específica da sua máquina de desenvolvimento. O tráfego entre essas portas viaja através de USB, para que a conexão não dependa da sua configuração de rede ".
Mais detalhes aqui: https://developer.chrome.com/devtools/docs/remote-debugging#port-forwarding
fonte
Esta solução é utilizável quando o seu dispositivo móvel e computador não estão na mesma rede:
Você precisa usar o encaminhamento de porta neste caso. Na janela de inspeção do Google chrome (chrome: // inspecionar), você pode ver os dispositivos conectados.
Clique no botão fowading da porta e defina uma porta aleatória, digamos 3000, para a porta usada pelo laptop, digamos 8080.
agora use o localhost: 3000 do dispositivo para acessar o localhost: 8080 (ou_qualquer_ip: portno) no laptop. Você pode verificá-lo no navegador móvel. Tente localhost: 3000 no navegador móvel. Certifique-se de marcar a caixa de seleção "Ativar encaminhamento de porta" na janela "Configurações de encaminhamento de porta"
fonte
Execute o CMD como administrador
Na tela CMD, digite ipconfig e a tela aparecerá com o texto
como esta foto
e você pode acessar seu host local usando este ip, você deve estar conectado à mesma rede que o seu PC conectado
fonte
Você pode ter seu servidor da Web escutando na interface de loopback e não na interface de rede. Os principais sinais disso são:
127.0.0.1
elocalhost
(do localhost ou emulador do Android) funcionam192.168.xxx.xxx
não funcionam, seja do host local, LAN ou WANEu falo mais sobre diagnosticar e corrigir isso em uma resposta aqui .
fonte
Tente ir para este arquivo:
C:\wamp\bin\apache\Apache2.2.11\conf\httpd.conf
E mude 10.0.2.2 para o seu endereço IP.
fonte
finalmente feito no Ubuntu, estou executando o servidor nodejs no localhost: 8080
1) abra o tipo de terminal ifconfig, você receberá ip algo como isto: inet addr: 192.168.43.17
2) agora basta colocar o endereço da URL como este: "192.168.43.17:8080" (porta 8080 proveniente do número da porta do host local) ex: "192.168.43.17:8080/fetch"
fonte
Use isso no seu ubuntu / Macbook para obter o endereço IP do seu sistema. Seu celular e sistema devem estar na mesma rede
ip addr | grep inet
Isso lhe dará um endereço IP que se parece192.168.168.46
. Use isso no seu smartphone.Espero que isto ajude.
fonte
Eu usei esse processo:
Observe que esse processo exige que você altere as configurações de WiFi no dispositivo Android no início e no final de cada sessão. Achei isso menos doloroso do que fazer o root no meu dispositivo Android.
fonte
A maneira mais fácil de usar o host local padrão é usar http: // localhost: port . Isso funciona em um laptop e Android também.
Se não funcionar, no Android, defina o IP padrão do seu telefone para 127.0.0.1:port :)
Terminal aberto e tipo: -
fonte
Estava com esse problema usando vários servidores localhost diferentes. Finalmente, coloquei meu aplicativo em funcionamento no telefone em segundos, usando o servidor simples Python. Leva apenas alguns segundos, então vale a pena tentar antes de entrar em soluções mais complicadas. Primeiro, verifique se você tem o Python instalado.
cmd+r
e digitepython
para Windows ou$ python --version
no terminal mac.Próximo:
Em seguida, basta encontrar o endereço da sua máquina host na rede, usei
System Preferences/Sharing
no mac para encontrá-lo. Toque isso no seu dispositivo Android e carregue o seuindex.html
e você deve ser bom.Caso contrário, o problema é outra coisa e convém examinar algumas das outras soluções sugeridas. Boa sorte!
* EDIT *
Outra solução rápida para tentar se você estiver usando o Chrome é a extensão Web Server for Chrome. Eu achei uma maneira rápida e super fácil de acessar o host local no meu telefone. Apenas verifique
Accessible to local network
sob o arquivoOptions
e ele deve funcionar no seu celular sem nenhum problema.fonte
O ngrok permite que você coloque seu host local em um servidor temporário e é muito simples de configurar. Forneci algumas etapas aqui que podem ser encontradas no link:
ngrok http [port number]
Você verá um pequeno painel no seu terminal com um endereço apontando para o seu host local. Aponte seu aplicativo para esse endereço e crie no seu dispositivo.
fonte
Antes de tudo, conecte seu telefone e computador ao wifi comum.
Em seguida, abra o prompt de comando usando executar como administrador
Comando ipconfig
O que mostra o lan ip sem fio
Use ip: port do seu servidor para acessar no telefone
fonte
Antes de tudo, torne o endereço IP da máquina (onde o servidor está sendo executado) estático. Digite este endereço IP estático no código do Android. Em seguida, vá para a interface do seu roteador wifi e verifique o painel esquerdo. Você verá opções como encaminhamento / encaminhamento de porta. Clique nele e encaminhe a porta 80. Agora edite seu
htttpd.conf
arquivo e edite-o paraPermitir de todos
. Reinicie seu servidor. Tudo deve funcionar bem agora.
Além disso, você pode reservar o endereço IP da sua máquina para que ele seja sempre alocado a você. No painel esquerdo da interface do seu roteador, localize
DHCP -> Address Reservation
, clique nele. Digite o endereço MAC do seu equipamento e o endereço IP digitado no código. Clique em salvar. Isso reservará o endereço IP fornecido para sua máquina.fonte
Uma solução para conectar meu dispositivo móvel ao meu servidor wamp com base no meu laptop:
Primeiro, o wifi não é um roteador. Portanto, para conectar meu dispositivo móvel ao servidor wamp com base no host local do meu laptop, preciso de um roteador. Baixei e instalei um roteador virtual gratuito: https://virtualrouter.codeplex.com/
Configurá-lo é realmente simples:
Em seguida, você pode conectar-se ao seu laptop via dispositivo, iniciando um navegador e preencha o endereço IPV4 do seu laptop (para encontrá-lo no Windows, digite cmd: ipconfig e encontre o endereço ipv4)
Você deve ver a página inicial do servidor wamp.
fonte
Embora uma resposta tenha sido aceita, mas isso funcionou para mim:
ifconfig
dentro do terminal e procure poren0/en1 -> inet
algo como19*.16*.1.4
.) (no windows, use `ipconfig)Abra suas configurações móveis e vá para rede-> pressione e segure sua rede wifi-> modifique rede -> role para baixo até as opções avançadas -> escolha o manual do proxy e no nome do host do proxy digite seu endereço, ou seja,
19*.16*.1.4
dentro da porta, digite sua porta. e salve.pesquise
what is my ip
no google chrome e obtenha seu ip, digamos que seja1**.1**.15*.2**
1**.1**.15*.2**:port/
do seu dispositivo móvel.É tão simples quanto isso.
fonte
Foi o que funcionou para mim. Adicionei outra linha após o IP 127.0.0.1 para especificar o endereço IP exato da rede local (não o endereço IP público) do dispositivo que eu queria usar. No meu caso, o meu Samsung Galaxy S3
Conforme sugerido pelo Bangptit, edite o arquivo httpd.conf (x são os números da versão): C: \ wamp \ bin \ apache \ Apache2.xx \ conf \ httpd.conf
Procure a tag onlineoffline e adicione o ip do seu telefone (eu encontrei o endereço IP do meu telefone nas páginas de configuração dos meus roteadores):
tag onlineoffline - não remova
meus telefones ip na linha abaixo
Pode-se estender isso para incluir também um subdomínio inteiro, por exemplo, 192.168.1.0/24 etc.
fonte
A maneira mais fácil (isso funcionou perfeitamente para mim) é hospedar seu site localmente
0.0.0.0:<port_no>
e acessá-lo usando dispositivos móveis, use<local_ipv4_address>:<port_no>/<path>
no navegador.ipconfig
cmdfonte
Ngrok é a melhor solução. Se você estiver desenvolvendo PHP, recomendo instalar o Laravel Valet . Ele tem versões para MacOS e Linux, então você pode usar o
valet share
comando Se você estiver desenvolvendo alguma tecnologia de front-end e precisar compartilhar uma porta como 3000, use o ngrok diretamentengrok http 3000
fonte
Adicionando uma solução para futuros desenvolvedores.
Copie o endereço do seu endereço IP. clique com o botão direito na sua rede -> rede e compartilhamento-> clique na conexão que você tem atualmente-> detalhes-> então o endereço ao lado do endereço ipv4 é o seu endereço ip, observe isso em algum lugar
Vá para o painel de controle -> sistema e segurança -> firewall do Windows -> configurações avançadas -> regras de entrada -> novas regras (siga as etapas para adicionar uma porta, por exemplo, 80, é realmente simples de seguir)
coloque o endereço IP que você anotou no navegador do telefone e o número da porta para a qual você criou a regra. por exemplo, 192.168.0.2:80 e wala.
Solução possível se não conectar. clique com o botão direito do mouse em rede-> abra rede e compartilhamento-> procure em ver suas conexões ativas, sob o nome da sua conexão no tipo de conexão e clique nela se for pública e certifique-se de alterá-la para uma rede doméstica.
fonte
Outra coisa a verificar é que alguns roteadores têm problemas para preencher as solicitações quando o 2.4G e o 5G estão ativados e os dispositivos estão em frequências diferentes. Tentando desativar uma das frequências para que ambos os dispositivos estejam conectados à mesma interface.
fonte
use
connectify
exampp
ou equivalente e digite o endereço IP na barra de URL móvel para acessarfonte
Pessoalmente, não insisto em usar o host local ao usar o dispositivo, não há solução fácil.
Basta iniciar a atividade na qual você se conecta ao host local, onde pode usar o emulador. Qualquer informação que você precise obter do dispositivo pode ser gerada com facilidade e enviada à atividade como parâmetro.
fonte