Connetti il ​​dispositivo al server localhost del Mac? [chiuso]


99

Come posso consentire a qualsiasi dispositivo, ad esempio iPhone, di connettersi tramite una WLAN al server localhost del mio Mac?

Sul mio Mac, sto eseguendo un server HTTP Node.js "Hello World" che serve una pagina, che Safari si apre correttamente, all'indirizzo http://localhost:1337. E, in esecuzione ipconfig getifaddr en1nelle uscite del terminale 192.168.1.9.

Ma Safari, sia su iPhone che su Mac, visualizza "Safari non può connettersi al server" quando tenta di aprirsi http://192.168.1.9:1337.

Non penso che questo dovrebbe comportare il port forwarding perché voglio che il server HTTP sia disponibile solo privatamente, non pubblicamente.

Relazionato:



Sono rimasto sorpreso di non vedere una risposta come questa, che ha funzionato per me: stackoverflow.com/a/41857012/470749
Ryan

Risposte:


55

Ho avuto lo stesso problema. Ho spento il mio Wi-Fi sul mio Mac e poi l'ho riacceso, il che ha risolto il problema. Fare clic su Impostazioni> Disattiva WI-FI.

L'ho testato andando su Safari sul mio iPhone e inserendo il mio nome host o indirizzo IP. Ad esempio: http://<name>.localohttp://10.0.1.5


abbastanza stranamente, questo ha funzionato per me! Molte grazie. Non riesco a capire perché.
Björn Grossmann

3
più uno per <name>.local- Niente più IP statici per i test!
Adam Carter

Ho passato un'intera giornata a cercare di capirlo. L'attivazione / disattivazione del WiFi del mio Mac lo ha risolto. Strano.
oif_vet

Anche l'attivazione del Wi-Fi del Mac lo ha risolto per me. Mi chiedo se questo sia un problema con il Mac o un problema con il router o un problema con nodejs. Qualche idea?
neoneye

1
http: // <name> .local ha funzionato per me. Per espandere la risposta, il <nome> del tuo Mac può essere trovato in Preferenze di Sistema> Condivisione . Sotto il nome del tuo computer: puoi trovare i computer sulla tua rete locale che possono accedere al tuo computer all'indirizzo: <name> .local
John Lay

42

Fai in modo che il tuo server ascolti 0.0.0.0invece di localhost.


1
Ahhhh grazie, questo ha funzionato per me
aks.

1
Per chiunque abbia problemi con le altre risposte, provalo!
Trent

5
In alternativa, puoi specificare "0.0.0.0" per eseguire il binding direttamente all'ip locale. Preverrà problemi se si cambia rete e non viene assegnato lo stesso IP.
Cole Murray

Scusa ma come fai a "far ascoltare il tuo server" esattamente?
gmarais

@ColeMurray, ci scusiamo per il ritardo nella risposta. Grazie per il tuo suggerimento. Ho appena aggiornato la mia risposta.
ma11hew28

30

Sono stato in grado di accedere al mio iPhone solo utilizzando http://name.local:1337. Devi aggiungere ".local". Puoi trovare il nome del tuo computer in Preferenze di Sistema / condivisione / "Nome computer".


Ho provato a utilizzare l'indirizzo IP con e senza firewall e molte altre soluzioni suggerite e questa è l'unica che ha funzionato. Sto eseguendo un sito localhost sulla porta 3000 con express utilizzando il nodo js.
lostAtSeaJoshua

Puoi anche trovare il tuo "nome" digitandolo whoaminella console.
Jadam

1
@Jadam Questa tecnica non funziona per me. Ottengo due nomi diversi. Per una situazione di server locale, il "Nome computer" è quello che funziona.
moeamaya

1
Per me, non sono mai andato da nessuna parte usando name.local, tuttavia l'utilizzo dell'indirizzo IP effettivo ha funzionato. Direi di risolvere i problemi utilizzando indirizzi IP effettivi specifici anziché la comodità di qualcosa come name.local che aggiunge solo un altro livello di complicazione.
MarsAndBack

1
Questa dovrebbe essere la risposta accettata. Non richiede alcuna configurazione o modifica aggiuntiva al file del server Node.js. corrente. @ ma11hew28
BenS

14

Prova ad abilitare la Condivisione Internet:
Apri Preferenze di Sistema -> Condivisione. Seleziona Condivisione Internet per attivarlo, ti chiederà di confermare la tua azione, seleziona ok. Se il tuo iPhone è connesso tramite USB, l'iPhone USB è selezionato nell'elenco "condivisione della connessione" sul lato destro.
Successivamente, prova ad accedere al tuo server locale utilizzando l'ip del tuo Mac su Wi-Fi.


9

Il mio problema era lo stesso, ma la soluzione aveva a che fare con la modifica di un'impostazione del firewall. Si è scoperto che il nodo era impostato per bloccare il traffico in entrata. Sapevo che qualcosa stava succedendo perché ero in grado di accedere al mio server localhost dal mio telefono.

Vai a Preferenze di Sistema -> Sicurezza e Privacy -> Firewall -> Opzioni Firewall , quindi scorri verso il basso fino a trovare il nodo e assicurati che l'impostazione del nodo sia impostata su Consenti connessioni in entrata .

Dopo aver modificato l'impostazione, potrei raggiungere il server localhost (porta 3000) in esecuzione sul mio Mac andando su http://192.168.1.11:3000


Il firewall era l'unico colpevole. Tutto il resto andava bene.
mythicalcoder

oh ragazzo, mi hai salvato! Grazie!!
GoOlga

7

Risolvo un problema simile.

  • collegato Mac e iPhone allo stesso Wi-Fi
  • cambia l'impostazione Wi-Fi dell'iPhone, imposta il proxy http su manuale e cambia il server con il tuo indirizzo IP Mac e impostando la porta. Il mio porto è 80.

immagine uno

immagine due

  • puoi inserire http://<Mac ip>:<your customer server port>nel safari di iPhone

5

Gli utenti di MacOS Sierra possono trovare il loro vanity URL generato automaticamente andando su System Preferences > Sharinge controllando sotto l'immissione di testo Nome computer. Per accedervi, inserisci questo URL, più il tuo numero di porta (ad esempio your-name.local: 8000), sul tuo iPhone tramite la stessa connessione Wi-Fi del tuo computer.


4
  1. Collega il tuo iPhone al tuo Mac tramite USB.

  2. Vai a Utilità di rete (cmd + spazio e digita "utilità di rete")

  3. Vai alla scheda "Informazioni"

  4. Fare clic sul menu a discesa che dice "Wi-Fi" e selezionare "iPhone USB" come mostrato qui:

    Foto per il passaggio 4

  5. Troverai un indirizzo IP come "xxx.xxx.xx.xx" o simile. Apri il browser Safari sul tuo iPhone e inserisci IP_address: port_number

    Esempio: 169.254.72.86:3000

[NOTA: se il campo dell'indirizzo IP è vuoto, assicurati che il tuo iPhone sia connesso tramite USB, esci da Network Utility, aprilo di nuovo e controlla l'indirizzo IP.]


3

Suggerisco di utilizzare il nome del computer, ad es http://mymac:1337/. Per me funziona perfettamente senza alcuna configurazione richiesta e non devo preoccuparmi di cambiare gli indirizzi IP a causa del DHCP.


3

assicurati che il telefono e il computer Mac siano entrambi collegati allo stesso wifi e che tu sia a posto http://<machine-name>.local


2

Come pubblicato, ho seguito la risposta di moeamaya ma ho dovuto modificarla solo un po 'per vedere il mio lavoro nella directory di Sites.

http://[name].local.~[username]/

[nome] è come già affermato (Preferenze di sistema / condivisione / "Nome computer")

[nome utente] si trova in:

/etc/apache2/users/username.conf

spero che questo ti aiuti!


Dove posso trovare il file username.conf su un Mac?
patata

1
Cerca nella tua cartella / Users nella root @brumbrum
Alfred

1
Puoi anche scrivere whoaminel terminale
Alfred

1

http://<name>.local:<PORT>Ho provato tutto su questa pagina, ma ha funzionato solo sul mio iPhone dopo aver chiuso e riavviato Safari ...


0

Usa sempre l'IP mostrato nelle impostazioni di rete. Cambia quando si cambia posizione e si utilizza un'altra connessione wireless.

Ad esempio nel mio caso ora è: 10.0.0.5


Puoi provare, ma non funzionerà in tutte le circostanze. Hai fatto un'ipotesi che non vedo nella domanda, sulla configurazione di rete.
benc

Ebbene, questa ipotesi mi ha aiutato a risolvere il mio problema simile ieri. Non sono riuscito a trovare l'IP per la connessione. I comandi del terminale non funzionavano. Ciò che ha funzionato, è stato l'IP nelle impostazioni di rete. (Sto eseguendo un server locale Apache su Mac)
edgarascom

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.