Come posso accedere a un server Web locale sul mio laptop da un altro computer? [chiuso]


37

Ho un'app in esecuzione sul mio computer a 127.0.0.1:3000

Vorrei accedere a quell'app da un iPhone collegato alla stessa rete. L'ho già fatto prima, ma mi sono oscurato su come l'ho fatto. Qualche idea?


2
prova rails server -b 0.0.0.0, quindi naviga sul tuo iPhone.
zx1986,

Risposte:


37

Innanzitutto è necessario determinare l'indirizzo IP o il nome della macchina su cui si sta eseguendo il server web. macosxSuppongo che tu stia eseguendo il webserver su un mac poiché hai taggato il tuo post nonostante le istruzioni siano simili per le macchine linux. Quindi, sul tuo mac:

  • Aprire Terminal.app. È sotto Applications->Utilities.
  • Corri ifconfignel terminal. Questo ti mostra tutte le interfacce di rete sulla macchina. Uno di questi è la rete alla quale la tua macchina è attivamente connessa. Se il tuo Mac è su una connessione cablata che dovrebbe essere en0. Annota l'indirizzo dopo inet, che dovrebbe essere l'indirizzo utilizzato dalla tua macchina.
    • Supponiamo che tu scopra che è 192.168.10.1.
  • Verifica che puoi connetterti a quell'indirizzo dal tuo server con nc -v 192.168.10.1 3000.
    • Dovresti vedere un messaggio come Connection to 192.168.10.1 3000 port [tcp/http] succeeded!.
    • Se non funziona, vedi sotto.
    • Se funziona, premi ctrl-Cper uscire dalla sessione nc.
  • Ora prova a connetterti sul tuo computer client.
    • Se si tratta di un'app Web, dovresti essere in grado di connetterti tramite il browser
    • Ad esempio, prova http://192.168.10.1:3000

Se non riesci a connetterti alla tua applicazione sull'indirizzo reale del server, ciò significa che l'applicazione non è in ascolto su quell'indirizzo. Sarà necessario esaminare come modificare la configurazione dell'applicazione per modificare tale comportamento. Dal momento che non so quale applicazione stai eseguendo, non posso offrire buone idee al riguardo.


10x mate ... qual è la differenza quando si parla di un sistema basato su Windows con il server Wamp su ... c'è qualche differenza?
Sagive SEO

Sto usando mac sierra. Sono in grado di accedere al server dal mio mac (dove è in esecuzione il server) tramite 10.55.18.22:3000 ma non riesco ad accedervi da un'altra macchina anche se entrambi sono nella stessa rete. L'opzione di condivisione Web non è disponibile in sierra. Come possiamo farlo funzionare?
santhosh kumar,

saanthosh: esamina il port forwarding sul tuo router. Questo è quello che stavo facendo prima di scoprire la funzione di condivisione Internet di OSX (che apparentemente era disponibile da almeno OSX 10.6). Ho eseguito test di localhost su una varietà di dispositivi mobili nella stessa stanza / rete della mia macchina di sviluppo OSX, resa possibile da modifiche standard / piccole alla configurazione del router (ad es. Port forwarding). Altri articoli e thread SO forniscono informazioni sulla configurazione del router. Alla fine, ora mi trovo in una nuova posizione e non ho accesso al router, quindi utilizzo la condivisione Internet OSX (High Sierra) per ottenere la stessa cosa.
MarsAndBack

12

Trova il nome del tuo Mac usando hostname(al prompt Terminale) e usalo nel tuo URL. Ad esempio http: //Tonys-iMac.local: 3000 /

Se per qualche motivo Bonjour non funziona nel tuo ambiente, trova l'indirizzo dell'aeroporto su un iMac o un MacBook con

ipconfig getifaddr en1

o in generale con

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


Questa risposta ha alcune buone ottimizzazioni sulle mie per quanto riguarda la ricerca del nome host e dell'indirizzo IP.
Phil Hollenback,

2
perché bonjour non funzionerebbe? Trovo che il mio nome host sia gm20152.local. Ma quando provo gm20152.local: 3000 sulla stessa macchina, viene visualizzata una pagina valida. Ma quando provo gm20152.local: 3000 sul mio telefono Android, il browser sul mio telefono non è riuscito a trovare l'host. Penso che ciò sia dovuto al fatto che il mio telefono non ha modo di mappare gm20152.local sull'indirizzo IP del mio macbook. Come posso ottenere questo?
gprasant,

@gprasant Ottenere Android per usare Bonjour sembra piuttosto difficile
James,

5

Fondamentalmente, dalle impostazioni del firewall è possibile consentire a una determinata applicazione (ad esempio ruby) di accettare connessioni in entrata. Inoltre, per consentire l'accesso al mondo esterno (ad es. Www), è necessario inoltrare il traffico al gateway interno: porta tramite le impostazioni del router.

Ecco come fare:

  1. Mac-> Preferenze Sys-> Condivisione-> Attiva la casella di controllo "Condivisione Web"
  2. Mac-> Preferenze Sys-> Sicurezza-> consenti all'applicazione (ad es. Ruby) di accettare la connessione in entrata
  3. Apri una porta sul router (tramite 192.168.1.1) per inoltrare il traffico da your_web_ip: port a local_gateway: port

    1. Ad esempio dalle impostazioni del mio router Verizon -> Port Forwarding -> create rule: forward to gateway locale (es. 192.168.1.4), porta personalizzata, protocollo tcp, source = any, destination = 3280, tutti i tipi di connessione, forward to port = 3000.

Fatto. Ora dal computer remoto, apri il tuo browser al tuo indirizzo IP web (trova via http://www.whatismyip.com/ ) + porta di destinazione # sopra, ad es. 72.189.194.65:3280, questo si connetterà al tuo 192.168.1.4 locale : 3000

Nota: sto eseguendo su Mac OSX 10.7.5


2

127.0.0.1 è l'indirizzo locale che ogni computer ha per sé. Devi scoprire qual è il vero indirizzo IP (o nome Host / Bonjour) della macchina. Vai su Preferenze di Sistema, Rete e cerca l'IP della macchina, sia per la porta Ethernet se usi un cavo o l'Aeroporto se usi la WLAN. Quindi apri questo indirizzo insieme alla parte: 3000 in Safari su iPhone.


Anche il riquadro delle preferenze di condivisione mostra sempre un nome o un indirizzo tramite il quale è possibile raggiungere il computer.
James,

2

Se l'applicazione è in ascolto solo su 127.0.0.1:3000, non è possibile accedervi da un altro computer. Per fare ciò è necessario modificare la configurazione in Listen the IP o 0.0.0.0 (tutte le interfacce disponibili). Qual è l'opzione uno.

La seconda opzione è usare un proxy.

La terza opzione è che se puoi ssh dall'iPhone puoi anche usare l'inoltro ssh.

utente ssh @ host -L 3000: 127.0.0.1: 3000

Quindi sul tuo iPhone apri 127.0.0.1:3000


1
AFAIK, non è possibile eseguire il port forwarding ssh su un iPhone. Non se non viene comunque eseguito il jailbreak.
Sven

Ascolta 0.0.0.0! Come potrei non pensarci?
Gustavo Straube,

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.