Comment obtenir des adresses de bouclage autres que 127.0.0.1 sur OS X

55

D'après tout ce que j'ai lu, l'ensemble du sous-réseau 127.xxx devrait faire l'objet d'un bouclage.

Cependant, sur mon Mac, je ne peux que faire un ping sur 127.0.0.1

Je sais que je l'ai déjà fait auparavant (bien que éventuellement sur un autre système d'exploitation) et qu'il est très utile pour développer localement plusieurs sites SSL et pour canaliser des services distants vers un IP local (par exemple, je pourrais utiliser ssh sur mon serveur MySQL, et il suffit de transférer le port standard sur le même port sur ma machine locale mais sur 127.0.0.2 alors que mon serveur local fonctionnait à 127.0.0.1.

Elliotbetancourt
la source

Réponses:

73

Voici la réponse courte: sudo ifconfig lo0 alias 127.0.0.* up

Chaque alias doit être ajouté individuellement ( sudo ifconfig lo0 alias 127.0.0.2 up, sudo ifconfig lo0 alias 127.0.0.3 up). Cela peut être fait manuellement pour les tests, ou un sous-ensemble ou la liste complète des 250 autres numéros disponibles dans ce sous-réseau peut être transformé en script StartupItems qui le fera automatiquement au démarrage.

La réponse longue: Selon RFC3330, 127.0.0.0/8 - Ce bloc est attribué à une utilisation en tant qu'adresse de bouclage d'hôte Internet. Un datagramme envoyé par un protocole de niveau supérieur à une adresse n'importe où dans ce bloc doit revenir en boucle à l'intérieur de l'hôte. Ceci est généralement implémenté en utilisant uniquement 127.0.0.1/32 pour le bouclage, mais aucune adresse dans ce bloc ne doit apparaître sur aucun réseau, où que ce soit.

Everett
la source
4
Si seulement il y avait un moyen de le faire fonctionner pour 127. *. *. *
Matthew Schinckel
Si cela fonctionne également sur CentOS, vous recevez une prime de ma part.
Parthian Shot
En fait, dans tous les cas, vous obtenez une prime. Comme cela ne fonctionne pas pour CentOS, je demanderai et répondrai à cette question une fois la réponse trouvée.
Parthian Shot
Comment configurer 4 serveurs sur le port 8, en utilisant différentes adresses rebouclage sur debian9 Gnu / Linux superuser.com/a/1255308/62123
ctrl-alt-Delor
12

Pour les personnes intéressées, voici un petit script bash qui ajoute tous les alias des adresses IP 127.0.0. *:

#!/bin/bash
for ((i=2;i<256;i++))
do
    sudo ifconfig lo0 alias 127.0.0.$i up
done
laurent
la source
Est-ce que je comprends mal? Ce que vous avez créé ressemble à toutes les adresses de 127.0.0.1 à 127.0.0.255. Si vous changez "sudo ifconfig lo0 alias 127.0.0. $ I up" en "sudo ifconfig lo0 alias 127. $ i. $ I. $ I up", vous obtiendrez la plupart d'entre eux, n'est-ce pas? Cependant, vous pouvez ignorer tout ce qui est inférieur à 2. Alors, utilisez peut-être une variable différente pour les deux autres octets? L'adresse IP la plus élevée pour le bouclage est 127.255.255.255
Everett
1
@ Everett, vous lisez ceci correctement, il ne fait que les adresses 127.0.0. *. La raison pour laquelle je n'ai pas couvert l'ensemble de la gamme est qu'il est en fait très lent à traiter même 255 adresses, de sorte que 255x255x255 prendrait trop de temps.
laurent
1
Merci. Je voulais juste m'assurer que l'attente était définie, car quelqu'un viendra ici et dira: "Hé, ça n'a pas marché pour 127.7.53.91." Je ne ferais pas ça, mais quelqu'un voudra ...
Everett
2
En fait, la proposition de @ Everett ne fonctionnerait pas non plus, car elle ne permettrait que des adresses telles que 127.7.7.7 ou 127.42.42.42, c'est-à-dire que toutes celles dont les trois derniers chiffres sont égaux. Vous aurez besoin de trois boucles distinctes pour activer toutes les adresses IP du bloc 127/8. Cependant, cela ne serait certainement pas une bonne idée: il est hautement probable, étant donné que chaque adresse IP doit être activée séparément, que des ressources sont attachées à chaque adresse IP attribuée; allouer environ 17,7 millions d'IP (soit 256 ^ 3) pourrait avoir des conséquences importantes ...
jwatkins
2
@jwatkins Bottom line: Ne les activez que si vous en avez besoin, ce qui est une règle de base pour tout, vraiment.
William T Froggard