¿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.

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.


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

¿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
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.