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.