Jak uzyskać adresy sprzężenia zwrotnego inne niż 127.0.0.1 do pracy w systemie OS X

55

Zgodnie ze wszystkim, co przeczytałem, cała podsieć 127.xxx powinna zapętlić się.

Jednak na komputerze Mac mogę pingować tylko 127.0.0.1

Wiem, że robiłem to już wcześniej (choć możliwe, że na innym systemie operacyjnym) i bardzo się przydałem do tworzenia lokalnych witryn SSL i do tunelowania zdalnych usług w celu uzyskania dostępu do lokalnego adresu IP (na przykład mogłem ssh na moim serwerze MySQL i po prostu port przekierowuje standardowy port do tego samego portu na moim komputerze lokalnym, ale na 127.0.0.2, podczas gdy mój serwer lokalny działał na 127.0.0.1.

elliotbetancourt
źródło

Odpowiedzi:

72

Oto krótka odpowiedź: sudo ifconfig lo0 alias 127.0.0.* up

Każdy alias należy dodać osobno ( sudo ifconfig lo0 alias 127.0.0.2 up, sudo ifconfig lo0 alias 127.0.0.3 up). Można to zrobić ręcznie w celu przetestowania, lub podzbiór lub pełną listę pozostałych 250 dostępnych numerów w tej podsieci można przekształcić w skrypt StartupItems, który zrobi to automatycznie w czasie rozruchu.

Długa odpowiedź: zgodnie z RFC3330, 127.0.0.0/8 - Blok ten jest przeznaczony do użycia jako adres zwrotny hosta internetowego. Datagram wysłany przez protokół wyższego poziomu na adres w dowolnym miejscu w tym bloku powinien zapętlić się z powrotem w hoście. Zwykle jest to realizowane przy użyciu tylko 127.0.0.1/32 dla pętli zwrotnej, ale żadne adresy w tym bloku nigdy nie powinny pojawiać się w żadnej sieci w dowolnym miejscu.

Everett
źródło
4
Gdyby tylko istniał sposób, aby działał na 127. *. *. *
Matthew Schinckel,
Jeśli okaże się, że działa to również w CentOS, proszę pana, dostaniecie ode mnie nagrodę.
Parthian Shot
Tak naprawdę, w obu przypadkach otrzymasz nagrodę. Ponieważ nie działa w CentOS, po prostu znajdę odpowiedź i odpowiem na to pytanie.
Parthian Shot
Jak skonfigurowałem 4 serwery na porcie 8, używając różnych adresów sprzężenia zwrotnego w debian9 Gnu / Linux superuser.com/a/1255308/62123
ctrl-alt-delor
12

Dla zainteresowanych, oto mały skrypt bash, który dodaje wszystkie aliasy dla adresów IP 127.0.0. *:

#!/bin/bash
for ((i=2;i<256;i++))
do
    sudo ifconfig lo0 alias 127.0.0.$i up
done
Laurent
źródło
Czy źle to czytam? To, co stworzyłeś, wygląda tak, że robi wszystkie adresy od 127.0.0.1 do 127.0.0.255. Jeśli zmienisz „sudo ifconfig lo0 alias 127.0.0. $ I up” na „sudo ifconfig lo0 alias 127. $ i. $ I. $ I up”, to uzyskasz większość z nich, prawda? Pominąłbyś jednak wszystko, co jest mniejsze niż 2 .. Może więc użyjesz innej zmiennej dla pozostałych dwóch oktetów? Najwyższy adres IP dla sprzężenia zwrotnego to 127.255.255.255
Everett
1
@Everett, czytasz to poprawnie, robi to tylko adresy 127.0.0. *. Powodem, dla którego nie obejmowałem całego zakresu, jest fakt, że przetwarzanie nawet 255 adresów jest dość powolne, więc 255x255x255 zajęłoby zbyt wiele czasu.
laurent,
1
Dzięki. Chciałem tylko upewnić się, że oczekiwanie zostało ustalone, ponieważ ktoś przyjdzie tutaj i powie: „Hej, to nie zadziałało dla 127.7.53.91”. Nie zrobiłbym tego, ale ktoś to zrobi ...
Everett,
2
W rzeczywistości propozycja @ Everett też nie działałaby, ponieważ umożliwiałaby tylko takie adresy jak 127.7.7.7 lub 127.42.42.42, to znaczy wszystkie z trzema ostatnimi cyframi są równe. Potrzebne byłyby trzy różne pętle, aby faktycznie włączyć wszystkie adresy IP w bloku 127/8. Jednak zrobienie tego z pewnością nie byłoby dobrym pomysłem: jest wysoce prawdopodobne, biorąc pod uwagę, że każdy adres IP musi być włączony osobno, że do każdego przypisanego adresu IP przypisane są pewne zasoby; przydzielenie około 17,7 milionów adresów IP (czyli 256 ^ 3) może mieć pewne znaczące konsekwencje ...
jwatkins
2
@jwatkins Dolna linia: Włącz je tylko wtedy, gdy ich potrzebujesz, co jest ogólną zasadą dla wszystkich.
William T Froggard,