Nom d'hôte vers Localhost avec port - OSX [fermé]


14

J'essaie d'exécuter plusieurs Node.jsserveurs Web localement sur ma machine.

Parce que le code que j'écris doit faire référence à un nom de domaine, je voudrais garder une convention dev.myHost.comet le signaler au service non-port-80 exécuté à partir de Node (techniquement, j'exécute un sur Harp.js et un sur Sails.js).

  • Donc, dev.hostOne.comdevrait pointer verslocalhost:123
  • et dev.hostTwo.comdevrait pointer verslocalhost:456

Est-ce possible? Si c'est le cas, comment.

Réponses:


23

D'après ma compréhension, il semble que vous n'utilisez qu'une seule machine de développement locale, ce qui signifie qu'elle n'est connectée à aucun réseau fournissant un DNS.

Si j'ai raison, je suggérerais de configurer des choses comme décrit ci-dessous:

étape 1: Attribuez au moins deux adresses IP à votre MAC OS (une par domaine), disons:

192.168.0.10
192.168.0.11

Pour configurer le deuxième IP, vous devrez ajouter un deuxième adaptateur Ethernet (logique et non physique).

Étape 2: Comme vous n'avez pas de serveur DNS, vous pouvez configurer votre /etc/hostsfichier en ajoutant:

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

Étape 3: attribuez des alias à votre interface de bouclage:

sudo ifconfig lo0 192.168.0.10 alias
sudo ifconfig lo0 192.168.0.11 alias

Étape 4: configuration ipfwpour transférer les paquets:

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

Vous avez terminé !

Maintenant :

entrez la description de l'image ici entrez la description de l'image ici


J'ai configuré deux Node.jsserveurs Web pour tester votre cas:

$ 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

Important: notez que les ipfwrègles et les alias d'interface de bouclage ne sont pas persistants et n'existeront plus après un redémarrage. Pensez donc à ajouter un script de démarrage.


1
A parfaitement fonctionné. C'est exactement ce que je voulais.
lundi

1
Heureux que ça marche!
j'étais à

sur Mac os sierra obtenir sudo: ipfw: commande introuvable
ClintM

3
@ClintM: ipfwa été remplacé par pfctl. Pour un exemple de la façon d'ouvrir un port: gauravsohoni.wordpress.com/2015/04/14/mac-osx-open-port
Joe Atzberger

Ce serait vraiment bien de mettre à jour la réponse dans le format attendu pfctl.
Simon
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.