O que é o dispositivo de loopback e como eu o uso?

138

O que são loopback e localhost ?

Por que eles existem, para que são usados ​​e como eu os usaria?

Eliah Kagan
fonte
Não são duas perguntas separadas em 1?
Anwar

Respostas:

180

O dispositivo de loopback é uma interface de rede virtual especial que o seu computador usa para se comunicar. É usado principalmente para diagnóstico e solução de problemas e para conectar-se a servidores em execução na máquina local.

O objetivo do loopback

Quando uma interface de rede é desconectada - por exemplo, quando uma porta Ethernet é desconectada ou o Wi-Fi está desativado ou não está associado a um ponto de acesso - nenhuma comunicação nessa interface é possível, nem mesmo a comunicação entre o computador e ele próprio. A interface de loopback não representa nenhum hardware real, mas existe para que os aplicativos em execução no seu computador sempre possam se conectar aos servidores na mesma máquina.

Isso é importante para a solução de problemas (pode ser comparado a olhar no espelho). Às vezes, o dispositivo de loopback é explicado como puramente uma ferramenta de diagnóstico. Mas também é útil quando um servidor que oferece um recurso necessário está sendo executado em sua própria máquina .

Por exemplo, se você executa um servidor da Web, possui todos os seus documentos da Web e pode examiná-los arquivo por arquivo. Você também pode carregar os arquivos no navegador, embora o conteúdo ativo do servidor não funcione da mesma maneira que quando alguém acessa normalmente.

Portanto, se você deseja experimentar o mesmo site que os outros, o melhor curso é geralmente conectar-se ao seu próprio servidor. A interface de loopback facilita isso.

Endereços no loopback

Para IPv4 , a interface de loopback é atribuída a todos os IPs no 127.0.0.0/8 bloco de endereços . Ou seja, 127.0.0.1através de 127.255.255.254 todos representam o seu computador. Para a maioria dos propósitos, porém, é necessário usar apenas um endereço IP, e é isso 127.0.0.1. Esse IP tem o nome do hostlocalhost mapeado para ele.

Portanto, para efetuar login como bobvia SSH no servidor SSH em execução em sua própria máquina, você usaria:

ssh bob@localhost

Como outros adaptadores de rede, o dispositivo de loopback aparece na saída de ifconfig. Seu nome é 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)

Um exemplo: CUPS

Um uso comum da produção (isto é, não apenas de diagnóstico) localhostno Ubuntu é executar uma configuração avançada da impressora. Em um navegador da web, acesse:

http://localhost:631

O CUPS executa um servidor Web na porta 631, e isso pode ser usado para configurar a impressão, independentemente da GUI que você estiver executando (ou mesmo se você não estiver executando uma GUI).

Captura de tela mostrando o CUPS em um navegador da web

Se você tentar se conectar http://127.0.0.1:631, isso também funcionará. No entanto, se você tentar se conectar http://127.0.0.2, isso não acontecerá. Todos os 127.*.*.*endereços identificam seu computador na interface de loopback, mas um programa de servidor pode decidir vincular apenas a um endereço IP específico.

Uma diferença notável do Windows

Se você tem um plano de fundo do Windows, pode esperar loopbackser sinônimo de localhost(e, portanto, poder executar ping loopback, conectar-se a servidores loopbacke assim por diante). Esse comportamento é peculiar ao Windows.

Outros significados de "Loopback"

O conceito geral de loopback é um mecanismo através do qual uma mensagem ou sinal termina (ou faz um loop) de volta para onde começou.

Portanto, existem algumas outras maneiras pelas quais o loopback é usado no Ubuntu que não deve ser confundido com o dispositivo de loopback na rede.

Suportes de loop

Para montar uma imagem de disco no Ubuntu, você pode executar:

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

Isso geralmente é chamado de dispositivo de loop (e não de loopback ), mas o termo interface de arquivo de loopback é usado ocasionalmente.

Isso não tem nada a ver com o dispositivo de loopback na rede.

Som

O Pulseaudio e outros sistemas de som fornecem um mecanismo para "conectar" a entrada e saída de linha, para que a entrada de áudio seja ecoada nos alto-falantes / fones de ouvido. O módulo de loopback do Pulseaudio facilita isso.

Aqui, é correto usar o termo loopback , mas, como as montagens de loop, isso também não tem nada a ver com o dispositivo de loopback na rede. (E também não tem nada a ver com montagens de loop.)

Leitura adicional

Eliah Kagan
fonte
6
Por que 127.0.0.0/8 é mapeado para 127.0.0.1 a 127.255.255.254 em vez de 127.0.0.0 a 127.255.255.255? (Desculpe se isso é percebido como um highjack.)
JellicleCat
5
Ele mencionou apenas endereços de host utilizáveis ​​e excluiu endereços de rede e transmissão. Você está correto ao dizer que deve ser 127.0.0.0-127.255.255.255, mas o primeiro e o último têm outros propósitos.
Gabriel Samfira
11
@Eliah, Deve localhostestar apontando 127.0.0.1? Ou também poderia apontar para outro endereço de loopback, por exemplo 127.0.0.2?
Pacerier
@ GabrielSamfira, então por que, quando tento conectar-me a esses dois endereços IP usando SSH (por exemplo, executando ssh 127.0.0.0), ele diz "Rede inacessível" em vez de "Conexão recusada"?
MAChitgarha
3
@MAChitgarha O primeiro endereço IP de uma sub-rede é o endereço de identificação de rede e o último endereço IP é o endereço de broadcast. Nenhum desses pode ser atribuído a um host por padrão. O endereço de broadcast é usado para endereçar todos os hosts de uma rede e o endereço de rede é usado para identificar a própria rede. Por favor, veja: en.wikipedia.org/wiki/IP_address
Gabriel Samfira