Come ottenere indirizzi di loopback diversi da 127.0.0.1 per funzionare su OS X?


55

Secondo tutto ciò che ho letto, l'intera sottorete 127.xxx dovrebbe essere in loopback.

Tuttavia, sul mio Mac, posso solo eseguire il ping di 127.0.0.1

So di averlo fatto prima (sebbene possibilmente su un altro sistema operativo) ed è stato molto utile per lo sviluppo di più siti SSL localmente e per il tunneling di servizi remoti per l'accesso su un IP locale (ad esempio potrei accedere al mio server MySQL e porta semplicemente la porta standard alla stessa porta sul mio computer locale ma su 127.0.0.2 mentre il mio server locale funzionava su 127.0.0.1.

Risposte:


73

Ecco la risposta breve: sudo ifconfig lo0 alias 127.0.0.* up

Ogni alias deve essere aggiunto singolarmente ( sudo ifconfig lo0 alias 127.0.0.2 up, sudo ifconfig lo0 alias 127.0.0.3 up). Può essere fatto manualmente per il test, oppure un sottoinsieme o l'elenco completo degli altri 250 numeri disponibili in quella sottorete può essere trasformato in script StartupItems che lo farà automaticamente al momento dell'avvio.

La risposta lunga: Secondo RFC3330, 127.0.0.0/8 - Questo blocco è assegnato per l'uso come indirizzo di loopback dell'host Internet. Un datagramma inviato da un protocollo di livello superiore a un indirizzo in un punto qualsiasi di questo blocco dovrebbe tornare all'interno dell'host. Questo è normalmente implementato usando solo 127.0.0.1/32 per il loopback, ma nessun indirizzo all'interno di questo blocco dovrebbe mai apparire su nessuna rete ovunque.


4
Se solo ci fosse un modo per farlo funzionare per 127. *. *. *
Matthew Schinckel,

Se questo risulta funzionare anche su CentOS, signore, mi stai ottenendo una taglia da me.
Parthian Shot,

In realtà, in entrambi i casi ottieni una taglia. Dal momento che non funziona per CentOS, chiederò e rispondo a quella domanda una volta trovata la risposta.
Parthian Shot,

Come ho impostato 4 server sulla porta 8, usando diversi indirizzi di loopback su debian9 Gnu / Linux superuser.com/a/1255308/62123
ctrl-alt-delor

12

Per chi è interessato, ecco un piccolo script bash che aggiunge tutti gli alias per gli IP 127.0.0. *:

#!/bin/bash
for ((i=2;i<256;i++))
do
    sudo ifconfig lo0 alias 127.0.0.$i up
done

Sto leggendo questo male? Quello che hai creato sembra avere tutti gli indirizzi da 127.0.0.1 a 127.0.0.255. Se cambi "sudo ifconfig lo0 alias 127.0.0. $ I up" in "sudo ifconfig lo0 alias 127. $ i. $ I. $ I up" che ti farà ottenere la maggior parte di loro, giusto? Tuttavia salteresti qualsiasi cosa che sia inferiore a 2 .. Quindi forse potresti usare una variabile diversa per gli altri due ottetti? L'indirizzo IP più alto per il loopback è 127.255.255.255
Everett il

1
@Everett, hai letto bene, fa solo gli indirizzi 127.0.0. *. Il motivo per cui non ho coperto l'intera gamma è che in realtà è abbastanza lento elaborare anche 255 indirizzi, quindi 255x255x255 richiederebbe troppo tempo.
laurent,

1
Grazie. Volevo solo assicurarmi che l'aspettativa fosse impostata, perché qualcuno verrà qui e dirà: "Ehi, non ha funzionato per 127.7.53.91". Non lo farei, ma qualcuno lo farà ...
Everett il

2
In realtà, la proposta di @ Everett non funzionerebbe neanche, poiché consentirebbe solo indirizzi come 127.7.7.7 o 127.42.42.42, cioè tutti quelli con le ultime tre cifre sono uguali. Avresti bisogno di tre loop distinti per abilitare effettivamente tutti gli IP nel blocco 127/8. Tuttavia, fare ciò non sarebbe certamente una buona idea: è altamente probabile, dato che ogni IP deve essere abilitato separatamente, che ci sono alcune risorse collegate a ciascun IP assegnato; l'allocazione di circa 17,7 milioni di IP (ovvero 256 ^ 3) potrebbe avere conseguenze significative ...
jwatkins,

2
Linea di fondo @jwatkins: abilitali solo se ne hai bisogno, il che è una regola empirica per tutto, davvero.
William T Froggard il
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.