Nome host per Localhost con porta - OSX [chiuso]


14

Sto cercando di eseguire più Node.jsserver Web localmente sul mio computer.

Poiché il codice che sto scrivendo deve fare riferimento a un nome di dominio, mi piacerebbe mantenere una convenzione dev.myHost.come puntarlo al servizio non-port-80 in esecuzione da Node (tecnicamente sto eseguendo uno su se Harp.juno su Sails.js).

  • Quindi dev.hostOne.comdovrebbe puntare alocalhost:123
  • e dev.hostTwo.comdovrebbe puntare alocalhost:456

È possibile? Se é cosi, come.

Risposte:


23

Da quanto ho capito, sembra che tu usi solo una macchina di sviluppo locale, significa che non sei connesso a nessuna rete che fornisce un DNS.

Se ho ragione, suggerirei di impostare cose come descritto di seguito:

passaggio 1: assegnare almeno due indirizzi IP al sistema operativo MAC (uno per dominio), ad esempio:

192.168.0.10
192.168.0.11

Per configurare il secondo IP dovrai aggiungere un secondo adattatore Ethernet (logico non fisico).

Passaggio 2: poiché non si dispone di un server DNS, è possibile impostare il /etc/hostsfile aggiungendo:

192.168.0.10     dev.hostone.com
192.168.0.11     dev.hosttwo.com

Passaggio 3: assegnare alias all'interfaccia di loopback:

sudo ifconfig lo0 192.168.0.10 alias
sudo ifconfig lo0 192.168.0.11 alias

Passaggio 4: installazione ipfwper inoltrare i pacchetti:

sudo ipfw add fwd 127.0.0.1,123 tcp from me to 192.168.0.10 dst-port 80
sudo ipfw add fwd 127.0.0.1,456 tcp from me to 192.168.0.11 dst-port 80

Hai fatto !

Adesso :

inserisci qui la descrizione dell'immagine inserisci qui la descrizione dell'immagine


Ho configurato due Node.jsserver Web per testare il tuo caso:

$ netstat -anp tcp | grep -E "123|456"
tcp4    0    0  127.0.0.1:123    *.*    LISTEN
tcp4    0    0  127.0.0.1:456    *.*    LISTEN

Importante: notare che le ipfwregole e gli alias dell'interfaccia di loopback non sono persistenti e non esistono più dopo il riavvio. Quindi considera di aggiungere uno script di avvio.


1
Ha funzionato in modo BELLISSIMO. Questo è ESATTAMENTE quello che volevo.
mondo,

1
Sono contento che funzioni! ero abbastanza sicuro che non fosse del tutto un "duplicato";)
krisFR

su Mac os sierra ottenere sudo: ipfw: comando non trovato
ClintM

3
@ClintM: ipfwè stato sostituito da pfctl. Per un esempio di come aprire un porto: gauravsohoni.wordpress.com/2015/04/14/mac-osx-open-port
Joe Atzberger

Sarebbe davvero bello aggiornare la risposta nel formato previsto da pfctl.
Simon,
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.