¿Cómo se consigue que las direcciones de bucle de retorno distintas de 127.0.0.1 funcionen en OS X

55

De acuerdo con todo lo que leí, toda la subred 127.xxx debería retroceder.

Sin embargo, en mi Mac, solo puedo hacer ping a 127.0.0.1

Sé que he hecho esto antes (aunque posiblemente en otro sistema operativo) y me ha resultado muy útil para desarrollar múltiples sitios SSL a nivel local y para hacer un túnel de servicios remotos para acceder a una IP local (por ejemplo, podría ingresar a mi servidor MySQL, y simplemente reenvío el puerto estándar al mismo puerto en mi máquina local pero en 127.0.0.2 mientras mi servidor local se ejecutaba en 127.0.0.1.

elliotbetancourt
fuente

Respuestas:

73

Aquí está la respuesta corta: sudo ifconfig lo0 alias 127.0.0.* up

Cada alias debe agregarse individualmente ( sudo ifconfig lo0 alias 127.0.0.2 up, sudo ifconfig lo0 alias 127.0.0.3 up). Se puede hacer manualmente para probar, o un subconjunto o la lista completa de los otros 250 números disponibles en esa subred se puede convertir en el script StartupItems que lo hará automáticamente en el momento del arranque.

La respuesta larga: según RFC3330, 127.0.0.0/8: este bloque se asigna para su uso como la dirección de bucle invertido del host de Internet. Un datagrama enviado por un protocolo de nivel superior a una dirección en cualquier lugar dentro de este bloque debe regresar dentro del host. Esto se implementa normalmente usando solo 127.0.0.1/32 para loopback, pero ninguna dirección dentro de este bloque debe aparecer en ninguna red en ningún lugar.

Everett
fuente
44
Si solo hubiera una manera de hacerlo funcionar para 127. *. *. *
Matthew Schinckel
Si esto resulta que también funciona en CentOS, usted, señor, recibirá una recompensa de mí.
Parthian Shot
En realidad, de cualquier manera obtienes una recompensa. Como no funciona para CentOS, solo preguntaré y responderé esa pregunta una vez que encuentre la respuesta.
Parthian Shot
¿Cómo configuro 4 servidores en el puerto 8, utilizando diferentes direcciones de bucle en debian9 GNU / Linux superuser.com/a/1255308/62123
ctrl-alt-delor
12

Para aquellos interesados, aquí hay un pequeño script bash que agrega todos los alias para las IP 127.0.0. *:

#!/bin/bash
for ((i=2;i<256;i++))
do
    sudo ifconfig lo0 alias 127.0.0.$i up
done
Laurent
fuente
¿Estoy leyendo esto mal? Parece que lo que creó tiene todas las direcciones desde 127.0.0.1 a 127.0.0.255. Si cambia "sudo ifconfig lo0 alias 127.0.0. $ I up" a "sudo ifconfig lo0 alias 127. $ i. $ I. $ I up", ¿obtendrá la mayoría de ellos? Sin embargo, omitiría cualquier cosa que sea menor que 2 .. ¿Entonces quizás use una variable diferente para los otros dos octetos? La dirección IP más alta para loopback es 127.255.255.255
Everett
1
@Everett, leíste esto correctamente, solo hace las direcciones 127.0.0. *. La razón por la que no cubrí todo el rango es que en realidad es bastante lento procesar incluso 255 direcciones, por lo que 255x255x255 tomaría demasiado tiempo.
Laurent
1
Gracias. Solo quería asegurarme de que se habían establecido las expectativas, porque alguien vendrá aquí y dirá: "Oye, no funcionó para 127.7.53.91". Yo no haría eso, pero alguien lo hará ...
Everett
2
En realidad, la propuesta de @ Everett tampoco funcionaría, ya que solo permitiría direcciones como 127.7.7.7 o 127.42.42.42, es decir, todas las personas con los tres últimos dígitos son iguales. Necesitaría tres bucles distintos para habilitar todas las IP en el bloque 127/8. Sin embargo, hacer esto ciertamente no sería una buena idea: es muy probable, dado que cada IP debe habilitarse por separado, que hay algunos recursos conectados a cada IP asignada; la asignación de aproximadamente 17,7 millones de direcciones IP (que es de 256 ^ 3) podría llegar a tener algunas consecuencias importantes ...
jwatkins
2
@jwatkins Conclusión: habilítelos solo si los necesita, lo cual es una regla general para todo, realmente.
William T Froggard