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?

Tony
fonte
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.

Phil Hollenback
fonte
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 }')

James
fonte
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

Chase T.
fonte
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.

Sven
fonte
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

Sameer
fonte
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