como configurar / etc / hosts corretamente [duplicado]

2

Estou aprendendo sobre rede, em casa eu tenho duas máquinas físicas e um monte de VMs que eu uso para testar meus aplicativos. Cada máquina tem um hostname diferente e eu os mapeio manualmente em cada arquivo / etc / hosts

Gostaria de saber qual é a diferença entre endereço IP residencial (127.0.0.1) e um endereço IP real fornecido pela rede em / etc / hosts

por exemplo

digamos que meu endereço IP seja 192.168.2.20 e o host de nomes seja naruto e meu / etc / hosts tenha esta aparência:

127.0.0.1       localhost
192.168.2.20    naruto
127.0.0.1       naruto

todas as linhas apontam para a mesma máquina Eu entendo que a principal diferença é como os programas se conectam a cada um deles dois usando o dispositivo de loopback e o outro usando um nic. minha pergunta é que eu deveria ter todas essas linhas? ou que linhas devo ter? qual é a utilidade de cada um deles?

Eu estava lendo este postar mas não ajudou, fiquei mais confuso

    
por juanp_1982 06.08.2018 / 00:32

2 respostas

1

Pergunta # 1

I would like to know what's the difference between home IP adress (127.0.0.1) and a real IP address given by the network in /etc/hosts

2 principais características do 127.0.0.1:

  • Não é roteável fora do seu computador na Internet
  • O endereço IP 127.0.0.1 faz parte de um bloco de endereços IP associados a essa interface em seu sistema.

Por exemplo, dê uma olhada na sua interface de loopback, lo :

$ ip a l lo
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever

O bloco de IPs é projetado por esta linha:

    inet 127.0.0.1/8 scope host lo

O / 8 nesta notação significa que 8 bits dos 32-bits sendo apresentados aqui são o endereço da rede, os bits restantes (32-8 = 24) são para endereçar o que você quiser dentro deste computador.

Podemos nos convencer de que este é um intervalo e todos apontam para nós mesmos, tentando fazer ping para alguns deles. Vamos ping 127.0.0.1, 127.0.0.2, & 127.0.0.3:

$ ping -c2 127.0.0.1
PING 127.0.0.1 (127.0.0.1) 56(84) bytes of data.
64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.029 ms
64 bytes from 127.0.0.1: icmp_seq=2 ttl=64 time=0.055 ms

$ ping -c2 127.0.0.2
PING 127.0.0.2 (127.0.0.2) 56(84) bytes of data.
64 bytes from 127.0.0.2: icmp_seq=1 ttl=64 time=0.029 ms
64 bytes from 127.0.0.2: icmp_seq=2 ttl=64 time=0.052 ms

$ ping -c2 127.0.0.3
PING 127.0.0.3 (127.0.0.3) 56(84) bytes of data.
64 bytes from 127.0.0.3: icmp_seq=1 ttl=64 time=0.030 ms
64 bytes from 127.0.0.3: icmp_seq=2 ttl=64 time=0.075 ms

OBSERVAÇÃO: Podemos ver que tudo isso foi possível voltar a nós mesmos por meio de nossa interface de loopback.

Usar traceroute mostra a mesma coisa:

$ traceroute -n 127.0.0.1
traceroute to 127.0.0.1 (127.0.0.1), 30 hops max, 60 byte packets
 1  127.0.0.1  0.032 ms  0.041 ms  0.010 ms

$ traceroute -n 127.0.0.2
traceroute to 127.0.0.2 (127.0.0.2), 30 hops max, 60 byte packets
 1  127.0.0.2  0.033 ms  0.009 ms  0.008 ms

$ traceroute -n 127.0.0.3
traceroute to 127.0.0.3 (127.0.0.3), 30 hops max, 60 byte packets
 1  127.0.0.3  0.034 ms  0.010 ms  0.008 ms

Pergunta # 2

my question is should I have all these lines? or what lines should I have? what's the use of each of them?

Minha recomendação seria não atribuir nomes a 127.0.0.1, exceto para qualquer sistema que tenha sido atribuído automaticamente a ele. Normalmente, você verá esses tipos de entradas em /etc/hosts :

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4

Se eu quiser atribuir IPs do tipo localhost adicionais para o nome do host do meu sistema, use 127.0.0.2, deixando 127.0.0.1 como foi configurado por padrão.

Mais ainda, para endereços IP reais atribuídos ao meu host, eu os atribuo da mesma forma em /etc/hosts ou uso o DNS:

192.168.2.20    naruto.mydom.com naurto

Mas eu nunca atribuo o mesmo nome a duas linhas separadas. Isso nunca funcionará, pois o arquivo /etc/hosts responderá apenas com a primeira entrada, e a segunda nunca poderá ser alcançada.

Para um trabalho tipo off, usar /etc/hosts é fácil para o trabalho local. Mas se você espera que algum nome para mapeamentos de IP esteja acessível em sua rede, é melhor usar o DNS para isso e abrir mão de usar /etc/hosts para qualquer coisa que não seja resolução local de IP / nome.

    
por 06.08.2018 / 04:43
1

A única coisa que eu poderia fazer, e distros começaram a fazer isso alguns anos atrás, é usar 127.0.0.1 apenas para localhost e usar 127.0.1.1 para seu hostname

Então ...

Em /etc/hostname -

naruto

Em /etc/hosts -

127.0.0.1 localhost
127.0.1.1 naruto

E é isso. (Adicione coisas do IPv6 se necessário) Apenas o momento em que coloco um IP sem loopback em / etc / hosts é quando não consigo obter uma entrada de DNS por algum motivo ou se eu quiser redirecionar o que normalmente seria encontrado no DNS. / p>     

por 06.08.2018 / 01:28