Como acesso um servidor da Web local no meu laptop a partir de outro computador? [fechadas]


37

Eu tenho um aplicativo em execução no meu computador em 127.0.0.1:3000

Gostaria de acessar esse aplicativo a partir de um iPhone conectado à mesma rede. Eu já fiz isso antes, mas não consegui entender como fiz. Alguma ideia?


2
tente rails server -b 0.0.0.0e navegue no seu iPhone.
Zx1986

Respostas:


37

Primeiro, você precisa determinar o endereço IP ou o nome da máquina na qual está executando o servidor da web. Estou supondo que você esteja executando o servidor da web em um mac, desde que você marcou sua postagem por macosxmeio de instruções semelhantes às máquinas linux. Então, no seu mac:

  • Aberto Terminal.app. Está abaixo Applications->Utilities.
  • Corra ifconfigno terminal. Isso mostra todas as interfaces de rede na máquina. Uma delas é a rede à qual sua máquina está ativamente conectada. Se você estiver usando uma conexão com fio, o mac deve estar en0. Anote o endereço depois inet- esse deve ser o endereço que sua máquina usa.
    • Vamos supor que você descubra que é 192.168.10.1.
  • Verifique se você pode se conectar a esse endereço no servidor com nc -v 192.168.10.1 3000.
    • Você deve ver uma mensagem como Connection to 192.168.10.1 3000 port [tcp/http] succeeded!.
    • Se isso não funcionar, veja abaixo.
    • Se funcionar, pressione ctrl-Cpara sair da sessão nc.
  • Agora tente conectar-se à sua máquina cliente.
    • Se esse for um aplicativo da web, você poderá se conectar pelo navegador
    • Por exemplo, tente http://192.168.10.1:3000

Se você não conseguir se conectar ao seu aplicativo no endereço real do servidor, isso significa que seu aplicativo não está escutando nesse endereço. Você precisará investigar como alterar a configuração do aplicativo para modificar esse comportamento. Como não sei qual aplicativo você está executando, não posso oferecer boas idéias sobre isso.


10x mate ... qual é a diferença quando se fala em um sistema baseado em Windows com o servidor Wamp nele ... existe alguma diferença?
Sagive SEO

Estou usando o mac sierra. Consigo acessar o servidor do meu mac (onde o servidor está sendo executado) via 10.55.18.22:3000, mas não consigo acessá-lo de outra máquina, embora ambos estejam na mesma rede. A opção de compartilhamento da Web não está disponível no Sierra. Como podemos fazer isso funcionar?
precisa saber é o seguinte

saanthosh: consulte o encaminhamento de porta no seu roteador. Era o que eu estava fazendo antes de descobrir o recurso de compartilhamento de internet do OSX (que aparentemente está disponível desde pelo menos o OSX 10.6). Eu testei o host local em uma variedade de dispositivos móveis na mesma sala / rede da minha máquina OSX dev, possibilitada por pequenas alterações padrão na configuração do roteador (por exemplo, encaminhamento de porta). Outros artigos e threads de SO fornecem informações sobre a configuração do roteador. Por fim, estou em um novo local agora e não tenho acesso ao roteador, então, em vez disso, uso o compartilhamento de internet OSX (High Sierra) para conseguir a mesma coisa.
MarsAndBack

12

Encontre o nome do seu Mac usando hostname(no prompt do Terminal) e use-o no seu URL. Por exemplo, http: //Tonys-iMac.local: 3000 /

Se, por algum motivo, Bonjour não funcionar em seu ambiente, localize o endereço do aeroporto em um iMac ou MacBook com

ipconfig getifaddr en1

ou em geral com

ipconfig getifaddr $(route -n get default|awk '/interface/ { print $2 }')


Esta resposta tem algumas otimizações boas sobre a minha em relação à localização do seu nome de host e endereço IP.
Phil Hollenback 02/02

2
por que Bonjour não funcionaria? Acho que meu nome de host é gm20152.local. Mas quando tento gm20152.local: 3000 na mesma máquina, ele abre uma página válida. Mas quando tento gm20152.local: 3000 no meu telefone Android, o navegador do meu telefone não consegue encontrar o host. Acho que isso ocorre porque meu telefone não tem como mapear gm20152.local para o endereço IP do meu macbook. Como posso fazer isso ?
precisa saber é o seguinte

@gprasant Obtendo Android usar Bonjour parece muito difícil
James

5

Basicamente, nas configurações do firewall, você pode permitir que um determinado aplicativo (por exemplo, ruby) aceite conexões de entrada. Além disso, para permitir o acesso ao mundo exterior (por exemplo, www), você precisará encaminhar o tráfego para o seu gateway interno: porta através das configurações do roteador.

Veja como fazer isso:

  1. Mac-> Preferências do sistema-> Compartilhamento-> Ative a caixa de seleção "Compartilhamento da Web"
  2. Mac-> Preferências do Sistema-> Segurança-> permite que seu aplicativo (por exemplo, ruby) aceite a conexão de entrada
  3. Abra uma porta no roteador (via 192.168.1.1) para encaminhar o tráfego de your_web_ip: port para um local_gateway: port

    1. Por exemplo, nas configurações do roteador da Verizon -> Port Forwarding -> create rule: encaminhar para o gateway local (por exemplo, 192.168.1.4), porta personalizada, protocolo tcp, source = any, destination = 3280, todos os tipos de conexão, encaminhar para a porta = 3000.

Feito. Agora, no computador remoto, abra o navegador no seu endereço IP da Web (encontre em http://www.whatismyip.com/ ) + porta # de destino acima, por exemplo, 72.189.194.65:3280, isso se conectará ao seu 192.168.1.4 local : 3000

Nota: Estou executando no Mac OSX 10.7.5


2

127.0.0.1 é o endereço local que todo computador possui para si. Você precisa descobrir qual é o endereço IP real (ou nome do host / Bonjour) da máquina. Vá para System Preferences, Network e procure o IP da máquina, seja para a porta Ethernet se você usar um cabo ou para o aeroporto se você usar WLAN. Em seguida, abra esse endereço junto com a parte: 3000 no Safari no iPhone.


Além disso, o Painel de preferências de compartilhamento sempre mostra um nome ou endereço pelo qual seu computador pode ser acessado.
James

2

Se o aplicativo estiver ouvindo apenas 127.0.0.1:3000, não será possível acessá-lo em outro computador. Para fazer isso, você precisará modificar a configuração para Ouvir o IP ou 0.0.0.0 (todas as interfaces disponíveis).

A segunda opção é usar um proxy.

Terceira opção: se você pode usar o ssh no iphone, também pode usar o encaminhamento por ssh.

ssh user @ host -L 3000: 127.0.0.1: 3000

Em seguida, no seu iPhone, abra 127.0.0.1:3000


1
AFAIK, você não pode fazer o encaminhamento de porta ssh em um iPhone. Não se não for jailbroken de qualquer maneira.
Sven

Ouça 0.0.0.0! Como eu não pensei nisso?
Gustavo Straube

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.