Co to jest urządzenie loopback i jak go używać?

138

Co to jest loopback i localhost ?

Dlaczego istnieją, do czego są używane i jak ich używać?

Eliah Kagan
źródło
Czy to nie dwa oddzielne pytania w 1?
Anwar,

Odpowiedzi:

180

Urządzenie loopback jest specjalnym wirtualnym interfejsem sieciowym, za pomocą którego komputer komunikuje się ze sobą. Służy głównie do diagnostyki i rozwiązywania problemów oraz do łączenia się z serwerami działającymi na komputerze lokalnym.

Cel sprzężenia zwrotnego

Kiedy interfejs sieciowy jest odłączony - na przykład, gdy port Ethernet jest odłączony lub Wi-Fi jest wyłączony lub nie jest powiązany z punktem dostępowym - nie jest możliwa komunikacja na tym interfejsie, nawet komunikacja między komputerem a sobą. Interfejs sprzężenia zwrotnego nie reprezentuje żadnego rzeczywistego sprzętu, ale istnieje, więc aplikacje działające na komputerze mogą zawsze łączyć się z serwerami na tym samym komputerze.

Jest to ważne przy rozwiązywaniu problemów (można to porównać do patrzenia w lustro). Urządzenie sprzężenia zwrotnego jest czasami wyjaśniane jako czysto narzędzie diagnostyczne. Jest to również pomocne, gdy serwer oferujący potrzebne zasoby działa na twoim komputerze .

Na przykład, jeśli prowadzisz serwer WWW, masz wszystkie swoje dokumenty internetowe i możesz je przeglądać plik po pliku. Możesz być w stanie załadować pliki również w przeglądarce, chociaż przy aktywnej zawartości po stronie serwera nie będzie działać tak, jak dzieje się to wtedy, gdy ktoś uzyska do niej normalny dostęp.

Jeśli więc chcesz korzystać z tej samej witryny, co inni, najlepszym rozwiązaniem jest zazwyczaj połączenie z własnym serwerem. Interfejs pętli zwrotnej ułatwia to.

Adresy w pętli zwrotnej

W przypadku IPv4 interfejsowi pętli zwrotnej są przypisywane wszystkie adresy IP w 127.0.0.0/8 bloku adresu . Oznacza to, że 127.0.0.1przez 127.255.255.254 cały reprezentować swój komputer. Jednak w większości przypadków wystarczy użyć tylko jednego adresu IP 127.0.0.1. To ma IP hosta z localhostmapowane do niego.

Tak więc, aby zalogować się bobprzez SSH do serwera SSH działającego na twoim komputerze, użyjesz:

ssh bob@localhost

Podobnie jak inne karty sieciowe, urządzenie loopback pojawia się na wyjściu ifconfig. Nazywa się lo.

ek@Del:~$ ifconfig lo
lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:50121 errors:0 dropped:0 overruns:0 frame:0
          TX packets:50121 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:4381349 (4.3 MB)  TX bytes:4381349 (4.3 MB)

Przykład: CUPS

Jednym z typowych zastosowań produkcyjnych (tj. Nie tylko diagnostycznych) localhostw systemie Ubuntu jest przeprowadzanie zaawansowanej konfiguracji drukarki. W przeglądarce internetowej przejdź do:

http://localhost:631

CUPS uruchamia serwer sieciowy na porcie 631 i można go użyć do skonfigurowania drukowania, niezależnie od uruchomionego interfejsu GUI (a nawet jeśli w ogóle nie jest uruchomiony).

Zrzut ekranu przedstawiający CUPS w przeglądarce internetowej

Jeśli spróbujesz się połączyć http://127.0.0.1:631, to też zadziała. Jednak jeśli spróbujesz się połączyć http://127.0.0.2, nie będzie. Wszystkie 127.*.*.*adresy identyfikują komputer na interfejsie sprzężenia zwrotnego, ale program serwera może zdecydować o powiązaniu tylko z określonym adresem IP.

Znacząca różnica w stosunku do systemu Windows

Jeśli pochodzisz z systemu Windows, możesz spodziewać loopbacksię, że sam będzie synonimem localhost(i tym samym będziesz mógł pingować loopback, łączyć się z serwerami loopbackitd.). Takie zachowanie jest charakterystyczne dla systemu Windows.

Inne znaczenia „Loopback”

Ogólna koncepcja sprzężenia zwrotnego to mechanizm, za pomocą którego wiadomość lub sygnał kończy się (lub zapętla) z powrotem do miejsca, w którym się zaczął.

Istnieje więc kilka innych sposobów wykorzystania sprzężenia zwrotnego w Ubuntu, których nie należy mylić z urządzeniem sprzężenia zwrotnego w sieci.

Pętle

Aby zamontować obraz dysku w Ubuntu, możesz uruchomić:

sudo mount -o loop image.iso /media/label

Jest to zwykle nazywane urządzeniem pętli (a nie urządzeniem pętli zwrotnej ), ale czasami używany jest termin interfejs pliku pętli zwrotnej .

Nie ma to nic wspólnego z urządzeniem sprzężenia zwrotnego w sieci.

Dźwięk

Pulseaudio i inne systemy dźwiękowe zapewniają mechanizm „podłączania” wejścia liniowego do wyjścia liniowego, dzięki czemu wejście audio jest odtwarzane z powrotem przez głośniki / słuchawki. Moduł sprzężenia zwrotnego Pulseaudio ułatwia to.

Tutaj to jest poprawne stosowanie terminu pętli zwrotnej , ale jak wierzchowce pętli, to nie ma też nic wspólnego z urządzeniem pętli zwrotnej w sieci. (I nie ma to również nic wspólnego z uchwytami pętlowymi.)

Dalsza lektura

Eliah Kagan
źródło
6
Dlaczego mapy 127.0.0.0/8 są mapowane na 127.0.0.1 do 127.255.255.254 zamiast 127.0.0.0 do 127.255.255.255? (Przepraszam, jeśli jest to postrzegane jako highjack.)
JellicleCat
5
Wspomniał tylko o użytecznych adresach hostów i wykluczył adresy sieciowe i rozgłaszania. Masz rację mówiąc, że powinno to być 127.0.0.0-127.255.255.255, ale pierwszy i ostatni mają inne cele.
Gabriel Samfira
1
@Eliah, musisz localhostwskazywać 127.0.0.1? Czy może też wskazywać na inny adres sprzężenia zwrotnego, np. 127.0.0.2?
Pacerier
@GabrielSamfira, więc dlaczego, kiedy próbuję połączyć się z tymi dwoma adresami IP za pomocą SSH (np. Przez uruchomienie ssh 127.0.0.0), powie „Sieć jest nieosiągalna” zamiast „Odmowa połączenia”?
MAChitgarha,
3
@MAChitgarha Pierwszy adres IP w podsieci to adres identyfikacyjny sieci, a ostatni adres IP to adres rozgłoszeniowy. Żaden z nich nie może być domyślnie przypisany do hosta. Adres rozgłoszeniowy służy do adresowania każdego hosta w sieci, a adres sieciowy służy do identyfikowania samej sieci. Zobacz: en.wikipedia.org/wiki/IP_address
Gabriel Samfira