AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / unix / Perguntas / 430207
Accepted
Helio
Helio
Asked: 2018-03-15 07:54:10 +0800 CST2018-03-15 07:54:10 +0800 CST 2018-03-15 07:54:10 +0800 CST

Qual é a diferença entre ping localhost e ping 127.0.0.1?

  • 772

Depois de executar o seguinte para desativar as respostas de ping:

# sysctl net.ipv4.icmp_echo_ignore_all=1
# sysctl -p

Eu obtenho resultados diferentes de ping localhost vs. 127.0.0.1

# ping -c 3 localhost
PING localhost(localhost (::1)) 56 data bytes
64 bytes from localhost (::1): icmp_seq=1 ttl=64 time=0.029 ms
64 bytes from localhost (::1): icmp_seq=2 ttl=64 time=0.035 ms
64 bytes from localhost (::1): icmp_seq=3 ttl=64 time=0.101 ms

--- localhost ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2042ms
rtt min/avg/max/mdev = 0.047/0.072/0.101/0.022 ms

O ping 127.0.0.1 falha:

ping -c 3 127.0.0.1
PING 127.0.0.1 (127.0.0.1) 56(84) bytes of data.

--- 127.0.0.1 ping statistics ---
3 packets transmitted, 0 received, 100% packet loss, time 2032ms

Por que esses resultados são diferentes?

ping sysctl
  • 3 3 respostas
  • 18218 Views

3 respostas

  • Voted
  1. Best Answer
    ilkkachu
    2018-03-15T08:22:07+08:002018-03-15T08:22:07+08:00

    O pingcomando mostra o endereço para o qual resolveu o nome. Nesse caso, resolveu para o endereço IPv6 localhost, ::1. Por outro lado, 127.0.0.1é um endereço IPv4, portanto faz pinguso explicitamente do IPv4.

    O sysctlque você usou afeta apenas pings IPv4, então você obtém respostas para ::1, mas não para 127.0.0.1.

    O endereço que você obtém da resolução localhostdepende de como o seu resolvedor de DNS está configurado. localhostprovavelmente está definido em /etc/hosts, mas em teoria você pode obtê-lo de um servidor de nomes real.


    Quanto a como descartar pings IPv6, talvez seja necessário examinar ip6tables, pois não parece haver um semelhante sysctlpara IPv6. Ou apenas desative o IPv6 totalmente, se você não o estiver usando em sua rede. (Embora, é claro, essa não seja uma ideia muito voltada para o futuro, mas factível se você não a estiver usando atualmente.)

    • 62
  2. Kiwy
    2018-03-15T08:14:07+08:002018-03-15T08:14:07+08:00

    127.0.0.1:
    127.0.0.1 é o loopback padrão da maioria dos sistemas. Um endereço de loopback é um endereço usado pelo sistema para validar a pilha de rede do sistema operacional.
    O endereço de loopback para IPv4 pode ter qualquer valor na sub-rede 127.0.0.0/8
    O endereço de loopback para IPv6 pode ter qualquer valor na sub-rede ::1/128
    pingqualquer valor nesse intervalo deve funcionar se sua pilha de rede estiver funcionando em seu sistema operacional.

    localhost:
    localhost é um nome de host, uma espécie de nome de domínio, mas local para sua própria máquina.
    Por padrão, esse nome de host aponta para o loopback IPv4 e IPv6, que geralmente é 127.0.0.1ou ::1.

    localhostO endereço pode ser alterado facilmente editando o arquivo /etc/hosts.
    Se o seu sistema usar o serviço systemd-resolved, esse serviço tratará da maneira como o host local é resolvido.
    De acordo com a documentação desystemd-resolved :

    Os nomes de host "localhost" e "localhost.localdomain" (bem como qualquer nome de host que termine em ".localhost" ou ".localhost.localdomain") são resolvidos para os endereços IP 127.0.0.1e::1

    ping
    Quando você tenta fazer ping em um nome de host ou nome de domínio, ele solicita ao sistema operacional que resolva esse nome de host ou nome de domínio. No seu caso, você desativou, icmpv4mas o host local foi resolvido como seu loopback IPv6 e seu loopback IPv4, mas apenas sua resposta de loopback IPv6.
    A diferença é que, em um caso, você está tentando fazer ping em um IP e, no outro, em um nome de host que pode ter vários valores.

    Desative o icmpv6
    Se você não precisa do IPv6, aconselho desativá-lo. Isso dobrará todo o trabalho que você precisa fazer no firewall e na configuração de serviços:

    sysctl -w net.ipv6.conf.all.disable_ipv6=0
    

    Se você ainda deseja suporte a IPv6 e deseja evitar icmpv6, pode usar ip6tables:

    ip6tables -A INPUT -p icmpv6 --icmpv6-type echo-request -j DROP
    
    • 34
  3. Michael Hampton
    2018-03-15T09:08:01+08:002018-03-15T09:08:01+08:00

    Localhost tem dois endereços, um endereço IPv6 ::1 e um endereço IPv4 127.0.0.1.

    IPv6 é o protocolo padrão, então ::1 é sempre preferível a 127.0.0.1. É por isso que você pingou ::1 ao solicitar ping localhost.

    Quanto ao motivo pelo qual você pode executar ping em ::1, mas não em 127.0.0.1, seu sysctl desativou apenas pings para IPv4, mas não para IPv6. Tanto quanto eu posso dizer, não há sysctl correspondente para desabilitar pings para IPv6, mas você pode desativá-lo no firewall se realmente precisar (é claro que desativá-lo não é recomendado de qualquer maneira).

    • 9

relate perguntas

  • Fedora /etc/sysctl.conf não carregado na inicialização

  • Diferença entre modprobe e sysctl -w em termos de configuração de parâmetros do sistema?

  • Menos de 1000 conexões possíveis, embora eu tenha atualizado o sysctl

  • ping: mostra apenas resultados

  • Por que o ping resolve para um endereço diferente do traceroute? e lince?

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Como exportar uma chave privada GPG e uma chave pública para um arquivo

    • 4 respostas
  • Marko Smith

    ssh Não é possível negociar: "nenhuma cifra correspondente encontrada", está rejeitando o cbc

    • 4 respostas
  • Marko Smith

    Como podemos executar um comando armazenado em uma variável?

    • 5 respostas
  • Marko Smith

    Como configurar o systemd-resolved e o systemd-networkd para usar o servidor DNS local para resolver domínios locais e o servidor DNS remoto para domínios remotos?

    • 3 respostas
  • Marko Smith

    Como descarregar o módulo do kernel 'nvidia-drm'?

    • 13 respostas
  • Marko Smith

    apt-get update error no Kali Linux após a atualização do dist [duplicado]

    • 2 respostas
  • Marko Smith

    Como ver as últimas linhas x do log de serviço systemctl

    • 5 respostas
  • Marko Smith

    Nano - pule para o final do arquivo

    • 8 respostas
  • Marko Smith

    erro grub: você precisa carregar o kernel primeiro

    • 4 respostas
  • Marko Smith

    Como baixar o pacote não instalá-lo com o comando apt-get?

    • 7 respostas
  • Martin Hope
    rocky Como exportar uma chave privada GPG e uma chave pública para um arquivo 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Wong Jia Hau ssh-add retorna com: "Erro ao conectar ao agente: nenhum arquivo ou diretório" 2018-08-24 23:28:13 +0800 CST
  • Martin Hope
    Evan Carroll status systemctl mostra: "Estado: degradado" 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim Como podemos executar um comando armazenado em uma variável? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S Por que /dev/null é um arquivo? Por que sua função não é implementada como um programa simples? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 Como ver as últimas linhas x do log de serviço systemctl 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - pule para o final do arquivo 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla Por que verdadeiro e falso são tão grandes? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis Substitua a string em um arquivo de texto enorme (70 GB), uma linha 2017-12-30 06:58:33 +0800 CST
  • Martin Hope
    Bagas Sanjaya Por que o Linux usa LF como caractere de nova linha? 2017-12-20 05:48:21 +0800 CST

Hot tag

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve