Comando ping: opções do ping no Linux e como verificar 100% packet loss
Em um servidor Linux, o comando ping verifica se os pacotes chegam a outro servidor e quanto tempo leva a ida e volta. Ao enviar para example.com a partir de servidores AlmaLinux 9 e Debian 12 com um número definido por -c, o tempo de ida e volta foi de 1 a 3 ms, e um servidor que bloqueia ICMP mostrou 100% packet loss no ping mesmo respondendo a requisições web.
A saída abaixo vem de um servidor AlmaLinux 9.8 (conta root) e de um servidor Debian 12 (conta comum). Todos os ping foram executados com o número de envios definido por -c. Os IPs privados dos roteadores intermediários foram trocados por valores de exemplo, e os endereços resolvidos a partir de domínios públicos como example.com foram mantidos como estavam.
1️⃣ Como usar o comando ping
O ping envia uma solicitação de eco ICMP ao outro servidor e mostra, linha por linha, quanto tempo a resposta de eco levou para voltar. No Linux, o ping continua enviando até você parar com Ctrl+C se não definir um número com -c (segundo o manual oficial), então execute-o desde o início com um número, como -c 4.
ping -c 4 example.comPING example.com (172.66.147.243) 56(84) bytes of data.
64 bytes from 172.66.147.243 (172.66.147.243): icmp_seq=1 ttl=58 time=1.46 ms
64 bytes from 172.66.147.243 (172.66.147.243): icmp_seq=2 ttl=58 time=1.30 ms
64 bytes from 172.66.147.243 (172.66.147.243): icmp_seq=3 ttl=58 time=1.28 ms
64 bytes from 172.66.147.243 (172.66.147.243): icmp_seq=4 ttl=58 time=1.30 ms
--- example.com ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3003ms
rtt min/avg/max/mdev = 1.279/1.336/1.464/0.074 msAo enviar quatro pacotes para example.com a partir do servidor Debian 12, as quatro respostas voltaram, com tempo de ida e volta de 1,28 a 1,46 ms. Veja abaixo o que cada linha mostra.
| Saída | O que mostra |
|---|---|
| PING example.com (172.66.147.243) 56(84) bytes of data. | O endereço obtido ao resolver o nome e o tamanho enviado — 56 bytes de dados mais 20 bytes de cabeçalho IP e 8 bytes de cabeçalho ICMP somam 84 bytes |
| 64 bytes from … | Tamanho da resposta recebida (56 bytes de dados + 8 bytes de cabeçalho ICMP) |
| icmp_seq=1 | Número de sequência do envio |
| ttl=58 | TTL que resta no pacote de resposta — cai 1 a cada roteador que ele atravessa |
| time=1.46 ms | Tempo de ida e volta desse pacote |
| 4 packets transmitted, 4 received, 0% packet loss | Pacotes enviados, pacotes recebidos e a parcela sem resposta |
| time 3003ms | Tempo do primeiro envio até o fim |
| rtt min/avg/max/mdev | Tempo de ida e volta mínimo, médio e máximo, e a dispersão (mdev) |
O mdev indica o quanto os tempos de ida e volta se afastam da média, e o manual oficial explica que, quanto maior o valor, menos uniformes são esses tempos. Neste resultado, com as quatro respostas abaixo de 1,5 ms, o mdev foi 0,074 ms.
O mesmo comando no servidor AlmaLinux 9 enviou para o endereço IPv6 de example.com, e a primeira linha mostrou só 56 data bytes, sem o 84.
ping -c 4 example.comPING example.com(2606:4700:10::ac42:93f3 (2606:4700:10::ac42:93f3)) 56 data bytes
64 bytes from 2606:4700:10::ac42:93f3 (2606:4700:10::ac42:93f3): icmp_seq=1 ttl=51 time=2.20 ms
64 bytes from 2606:4700:10::ac42:93f3 (2606:4700:10::ac42:93f3): icmp_seq=2 ttl=54 time=2.30 ms
64 bytes from 2606:4700:10::ac42:93f3 (2606:4700:10::ac42:93f3): icmp_seq=3 ttl=51 time=2.55 ms
64 bytes from 2606:4700:10::ac42:93f3 (2606:4700:10::ac42:93f3): icmp_seq=4 ttl=54 time=2.26 ms
--- example.com ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3004ms
rtt min/avg/max/mdev = 2.203/2.326/2.547/0.131 msVerifique a versão do ping instalada com -V. O servidor Debian 12 tinha iputils 20221126 e o servidor AlmaLinux 9, iputils 20210202.
ping -Vping from iputils 20221126
libcap: yes, IDN: yes, NLS: no, error.h: yes, getrandom(): yes, __fpending(): yesping -Vping from iputils 202102022️⃣ Opções de quantidade e intervalo do ping
Entre as opções do ping, -c é o número de envios e -i é o intervalo entre eles (segundos). O intervalo padrão é de 1 segundo, e com -i 0.5 o tempo para enviar quatro pacotes caiu de 3003 ms para 1502 ms.
ping -c 4 -i 0.5 example.comPING example.com (172.66.147.243) 56(84) bytes of data.
64 bytes from 172.66.147.243 (172.66.147.243): icmp_seq=1 ttl=58 time=1.26 ms
64 bytes from 172.66.147.243 (172.66.147.243): icmp_seq=2 ttl=58 time=1.31 ms
64 bytes from 172.66.147.243 (172.66.147.243): icmp_seq=3 ttl=58 time=1.37 ms
64 bytes from 172.66.147.243 (172.66.147.243): icmp_seq=4 ttl=58 time=1.44 ms
--- example.com ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 1502ms
rtt min/avg/max/mdev = 1.264/1.343/1.436/0.065 msPelo manual do iputils 20210202 do servidor AlmaLinux 9, só o root pode usar um intervalo menor que 0,2 segundo, enquanto o manual do iputils 20221126 do servidor Debian 12 coloca esse limite em 2 ms. Intervalos curtos podem sobrecarregar o outro servidor e a rede.
-w é o tempo (segundos) após o qual o ping termina por completo, não importa quantos envios tenha feito. Junto com -c, termina ao receber o número de respostas definido ou quando o tempo de -w acaba. Com -c 10 -w 3, enviou só três pacotes e terminou após 3 segundos.
ping -c 10 -w 3 example.comPING example.com (172.66.147.243) 56(84) bytes of data.
64 bytes from 172.66.147.243 (172.66.147.243): icmp_seq=1 ttl=58 time=1.34 ms
64 bytes from 172.66.147.243 (172.66.147.243): icmp_seq=2 ttl=58 time=1.27 ms
64 bytes from 172.66.147.243 (172.66.147.243): icmp_seq=3 ttl=58 time=1.34 ms
--- example.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2002ms
rtt min/avg/max/mdev = 1.272/1.318/1.342/0.032 msAs três respostas chegaram, mas como os 10 envios definidos não foram completados, o código de saída do ping foi 1. O manual oficial também explica que, usando -c e -w juntos, o ping termina com 1 se não receber o número de respostas definido.
-W é o tempo (segundos) de espera por uma única resposta. Segundo o manual oficial, esse valor só vale quando nenhuma resposta chega; para um destino que responde, o ping espera o dobro do tempo de ida e volta.
Para ver só o resumo, sem as linhas de resultado, adicione -q. Depois de quatro envios, restaram só a primeira linha e as estatísticas finais.
ping -c 4 -q example.comPING example.com (104.20.23.154) 56(84) bytes of data.
--- example.com ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3005ms
rtt min/avg/max/mdev = 1.551/1.649/1.715/0.060 ms3️⃣ Opções de tamanho de pacote e IPv6 do ping
O tamanho dos dados enviados é alterado com -s. Com -s 1000, a primeira linha passou para 1000(1028) bytes e as linhas de resposta para 1008 bytes.
ping -c 2 -s 1000 example.comPING example.com (172.66.147.243) 1000(1028) bytes of data.
1008 bytes from 172.66.147.243 (172.66.147.243): icmp_seq=1 ttl=58 time=1.21 ms
1008 bytes from 172.66.147.243 (172.66.147.243): icmp_seq=2 ttl=58 time=1.31 ms
--- example.com ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1001ms
rtt min/avg/max/mdev = 1.214/1.262/1.311/0.048 ms1028 é 1000 bytes de dados mais 20 bytes de cabeçalho IP e 8 bytes de cabeçalho ICMP, e 1008 é os dados mais só o cabeçalho ICMP. O tempo de ida e volta foi de 1,21 a 1,31 ms, quase igual ao do tamanho padrão (56 bytes).
-t define o TTL dos pacotes enviados. O TTL cai 1 a cada roteador e, quando chega a 0, esse roteador descarta o pacote e devolve [Time to live exceeded].
ping -c 2 -t 3 example.comPING example.com (172.66.147.243) 56(84) bytes of data.
From 192.0.2.103 (192.0.2.103) icmp_seq=1 Time to live exceeded
From 192.0.2.103 (192.0.2.103) icmp_seq=2 Time to live exceeded
--- example.com ping statistics ---
2 packets transmitted, 0 received, +2 errors, 100% packet loss, time 1001msCom o TTL reduzido para 3, o terceiro roteador devolveu [Time to live exceeded] nas duas vezes. Aumentando o TTL de um em um a partir de 1, a primeira resposta de example.com veio em 8.
-4 e -6 limitam o tipo de endereço de destino a IPv4 ou IPv6. O servidor AlmaLinux 9 enviava para o endereço IPv6 de example.com mesmo sem opção, então -4 foi adicionado para enviar ao endereço IPv4.
ping -4 -c 4 example.comPING (172.66.147.243) 56(84) bytes of data.
64 bytes from 172.66.147.243 (172.66.147.243): icmp_seq=1 ttl=54 time=2.64 ms
64 bytes from 172.66.147.243 (172.66.147.243): icmp_seq=2 ttl=54 time=2.55 ms
64 bytes from 172.66.147.243 (172.66.147.243): icmp_seq=3 ttl=54 time=2.57 ms
64 bytes from 172.66.147.243 (172.66.147.243): icmp_seq=4 ttl=54 time=2.58 ms
--- ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3003ms
rtt min/avg/max/mdev = 2.553/2.585/2.642/0.033 msNo iputils 20210202 do servidor AlmaLinux 9, adicionar -4 deixou vazio o campo do nome na primeira linha e na linha de estatísticas. O mesmo comando no iputils 20221126 do servidor Debian 12 mostrou example.com normalmente.
No servidor Debian 12, que não tem rota IPv6 padrão, adicionar -6 terminou na hora com [connect: Network is unreachable], sem linhas de resposta.
ping -6 -c 2 example.comping: connect: Network is unreachable🔲 Opções do comando ping
📌 Principais opções: resultados deste artigo
| Opção | Tarefa | Resultado neste artigo | |
|---|---|---|---|
| -c número | Define quantos pacotes enviar e termina depois de enviá-los | -c 4 no servidor Debian 12: quatro envios, quatro respostas, ida e volta 1,28–1,46 ms | |
| -i intervalo | Intervalo entre os envios (segundos), padrão 1 segundo | Com -i 0.5, o tempo para enviar quatro pacotes caiu de 3003 ms para 1502 ms | |
| -w tempo | Tempo (segundos) após o qual o ping termina por completo, não importa quantos envios tenha feito | -c 10 -w 3 enviou só três pacotes em 3 segundos e terminou com código de saída 1 | |
| -W tempo | Tempo (segundos) de espera por uma única resposta quando nenhuma resposta chega | Dois envios para 192.0.2.1 com -W 1: [100% packet loss], código de saída 1 | |
| -q | Mostra só a primeira linha e as estatísticas finais, sem linhas de resposta | Depois de quatro envios, restaram só a primeira linha e a linha de estatísticas | |
| -s tamanho | Tamanho dos dados enviados (bytes), padrão 56 | Com -s 1000, a primeira linha mostra 1000(1028) bytes e as linhas de resposta 1008 bytes | |
| -t TTL | TTL dos pacotes enviados | Com -t 3, o terceiro roteador devolveu [Time to live exceeded] nas duas vezes | |
| -4 | Envia só para endereços IPv4 | No servidor AlmaLinux 9, enviou para o endereço IPv4 em vez do IPv6; o campo do nome fica vazio | |
| -6 | Envia só para endereços IPv6 | No servidor Debian 12 sem rota IPv6 padrão: [connect: Network is unreachable] | |
| -D | Coloca o horário Unix (segundos.microssegundos) na frente de cada linha de resposta | Um registro de horário como [1793227536.574201] aparece na frente de cada linha de resposta | |
| -V | Mostra as informações de versão | Debian 12 tem iputils 20221126, AlmaLinux 9 tem iputils 20210202 |
📎 Outras opções: segundo o manual oficial
| Opção | Tarefa | |
|---|---|---|
| -n | Mostra os endereços só como números, sem resolvê-los em nomes | |
| -I interface | Define a interface ou o endereço de origem do envio | |
| -A | Ajusta sozinho o intervalo de envio ao tempo de ida e volta; sem root, intervalo mínimo de 200 ms | |
| -f | Ping de inundação (flood) que envia rápido sem esperar respostas; intervalo 0 só para root | |
| -l número | Número de pacotes enviados antecipadamente sem esperar resposta; mais de 3 só para root | |
| -M do | Define o modo do Path MTU Discovery; do impede a fragmentação (want e dont também são aceitos) | |
| -p padrão | Padrão de bytes que preenche os pacotes enviados, até 16 bytes | |
| -O | Avisa sobre solicitações sem resposta antes de enviar o próximo pacote; usado com -D ao registrar | |
| -R | Registra o caminho percorrido (só IPv4; muitos hosts ignoram esta opção) | |
| -b | Permite enviar para um endereço de broadcast | |
| -a | Emite um som a cada resposta recebida |
🔲 Simulador do comando ping
No simulador abaixo, você pode digitar comandos e ver os resultados de quantidade e intervalo, tamanho do pacote e envio para um endereço que não responde.
4️⃣ ping sem resposta
[100% packet loss] significa que nenhuma resposta voltou para os pacotes enviados. Dois envios com -W 1 para 192.0.2.1, um endereço reservado para documentação, mostraram só as estatísticas, sem linhas de resposta.
ping -c 2 -W 1 192.0.2.1PING 192.0.2.1 (192.0.2.1) 56(84) bytes of data.
--- 192.0.2.1 ping statistics ---
2 packets transmitted, 0 received, 100% packet loss, time 1024msQuando nenhuma resposta voltou, o código de saída do ping foi 1, e quando as respostas voltaram foi 0. Scripts usam esse valor para verificar se outro servidor está respondendo.
ping -c 2 -W 1 192.0.2.1 > /dev/null; echo $?; ping -c 1 example.com > /dev/null; echo $?1
0O ping só verifica ICMP, então um servidor que bloqueia ICMP pode responder a requisições web e ignorar o ping. Dois envios para amazon.com a partir do servidor Debian 12 deram [100% packet loss], enquanto uma requisição web com curl para o mesmo endereço recebeu uma resposta 301.
ping -c 2 -W 1 amazon.comPING amazon.com (98.82.161.185) 56(84) bytes of data.
--- amazon.com ping statistics ---
2 packets transmitted, 0 received, 100% packet loss, time 1002mscurl -sI https://amazon.com/ | head -1HTTP/1.1 301 Moved PermanentlyUm servidor que bloqueia ICMP é como uma loja que tirou a campainha da porta.
Alguns servidores na nuvem só respondem ao ping depois que o ICMP é liberado nas regras do firewall. Uma instância de VM do Oracle Cloud respondeu ao ping depois que o tipo ICMP na lista de segurança da sub-rede pública foi alterado para 8.
Se o ping não consegue resolver o nome em um endereço IP, termina na hora com [Name or service not known], sem a primeira linha, e o código de saída foi 2. .invalid é um nome reservado para não ser resolvido em lugar nenhum, por isso foi usado para verificar esse erro.
ping -c 1 no-such-host.invalidping: no-such-host.invalid: Name or service not knownSe esse erro aparecer em um domínio real, use o comando nslookup para verificar se o servidor DNS devolve um endereço para esse nome. As quatro saídas vistas quando não houve resposta e o que verificar em seguida estão abaixo.
| Saída | Significado | O que verificar em seguida |
|---|---|---|
| 100% packet loss | Nenhuma resposta voltou para os pacotes enviados | O serviço web com curl, o firewall com uma regra que libere ICMP |
| Name or service not known | Não conseguiu resolver o nome em um endereço IP | Resposta DNS com nslookup |
| connect: Network is unreachable | Não há rota de saída para esse tipo de endereço | Enviar para o endereço IPv4 com -4 |
| Time to live exceeded | O TTL chegou a 0 em um roteador intermediário | Aumentar o valor de -t ou retirá-lo e enviar de novo |
🔢 FAQ & conteúdo recomendado
Rede · Configuração
[Linux] Comando ip: gerenciar interfaces de rede e configurações
O comando ip, para verificar e gerenciar as interfaces de rede, os endereços IP e o roteamento de um servidor.
Rede · DNS
Comando host no Linux | comando de consulta DNS
O comando host, para encontrar o endereço IP de um nome de host ou converter um endereço IP em nome de host.
Acesso · transferência
Comando SSH: opções e como usar
Opções e uso do comando SSH, que se conecta a um servidor remoto por uma conexão criptografada para executar comandos.
ℹ️ Aviso de afiliados
O conteúdo deste site contém links de afiliados. Quando um visitante compra um produto ou serviço por meio de um desses links, o site recebe uma comissão do vendedor. O valor que o comprador paga (em promoções, ele diminui ↓) não aumenta por causa disso. Preços, descontos e informações de estoque valem para o momento em que o texto foi escrito e podem ter mudado, por isso confirme com o vendedor antes de comprar. Os produtos são escolhidos e avaliados por critérios próprios, e o recebimento de comissão não influencia a ordem de apresentação nem o conteúdo das avaliações.