Korzystam z przykładu w hiredis, który używa adresu „127.0.0.2” jako adresu IP serwera redis i działa poprawnie. W rzeczywistości serwer Redis działa na tym samym komputerze. Wiem, że „127.0.0.1” to adres IP „lo”, ale co powiesz na „127.0.0.2”? Czy to to samo, co „127.0.0.1”?
127.x.x.x
adresy są ograniczone do komputera lokalnego?” Tak127.x.x.x
adresy są powiązane zlo
interfejsem” Tak127.x.x.x
adresy są kierowane przez sieć?” Nie127.0.0.2
to samo co127.0.0.1
?” NIEChoć
127.0.0.1
na127.255.255.254
to wszystkie lokalne adresy związane interfejslo
. One nie są takie same. Możesz użyć każdego adresu, aby powiązać inną usługę z tym samym portem. Np. 16 milionów serwerów WWW na porcie 80, dostępne tylko z komputera lokalnego (jeśli nie zabraknie pamięci lub innych zasobów najpierw)Właśnie skonfigurowałem usługę dokowania do połączenia
127.0.0.2:80
. Następnie dodałem alias do/etc/hosts
. Teraz mogę się z nim połączyć przezhttp://myserver
, ale nie przezhttp://127.0.0.1
lubhttp://localhost
. Jest on jednak dostępny tylko dla tego komputera. Tak jak jest tylko wlo
interfejsie.Następnie skonfigurowałem kolejną usługę dokowania, z którą można się połączyć
127.0.0.3:80
, oraz usługę python włączonąlocalhost:80
i inną włączoną127.0.0.4:80
.To może nie działać we wszystkich systemach operacyjnych. Używam Debiana (9) Gnu / Linux, jądro Linuksa 4.9.0-3-amd64. Niektóre systemy operacyjne mogą traktować wszystkie adresy
127.0.0.1
→127.255.255.254
tak samo. Niektóre mogą tylko współpracować127.0.0.1
.Zobacz też
źródło
Nie jest to wyczerpująca ogólna odpowiedź (już istnieje). Ta moja odpowiedź pokazuje przykład, w którym
127.0.0.2
użyto rozwiązania problemu.Wyciąg:
OP próbował tam przetestować niektóre oprogramowanie w przypadku odrzucenia połączenia z serwerem. Dokonano tego na serwerze za pomocą tymczasowej
iptables
reguły, która odrzuca cały ruch z adresu IP klienta. Klient natychmiast „zobaczył”, że połączenie zostało odrzucone.Problem pojawił się, gdy ta osoba przeniosła oprogramowanie serwera na tę samą maszynę co klient i próbowała użyć interfejsu sprzężenia zwrotnego. Reguła została ustawiona tak, aby blokować komunikację,
127.0.0.1
ale informacje, które zostało odrzucone, przeszły tę samą regułę i nigdy nie dotarły do oprogramowania klienckiego, które zawiesiło się (prawdopodobnie do przekroczenia limitu czasu).Rozwiązaniem było użycie
127.0.0.2
adresu serwera i ustawienie reguły, która odrzuca połączenia z nim. Informacja o odrzuceniu trafiła do127.0.0.1
oprogramowania klienckiego.źródło