Comando traceroute: instalação, uso e opções -n, -I, -T

Ambiente de testeFamília RHELAlmaLinux 9.8conta rootDebian 12 · traceroute 2.1.2 conta comumVerificado em 2026-10-29

Para verificar salto a salto os roteadores pelos quais os pacotes passam até o destino, use o comando traceroute. No servidor AlmaLinux 9.8, o traceroute não estava instalado, então o instalamos com o dnf, e ao rastrear a rota até example.com em um servidor Debian 12 que traz o traceroute 2.1.2, o destino foi alcançado no sétimo salto.

A saída abaixo é do servidor Debian 12, executada com uma conta comum, e só a saída de rpm e dnf do capítulo de instalação veio do servidor AlmaLinux 9.8 (conta root). O nome de host do servidor foi trocado para server1, e os endereços de roteadores e destinos das rotas foram trocados por endereços de exemplo (192.0.2.x, 198.51.100.x, 203.0.113.x). O número de release do pacote instalado (a versão principal 2.1 não muda) e o horário dos metadados do dnf também são valores de exemplo, e os tempos de resposta ficaram exatamente como medidos.

1️⃣ Instalar o traceroute

  • ↪️ dnf na família RHEL, apt na família Debian

O traceroute vir instalado por padrão depende da distribuição. No servidor AlmaLinux 9.8, a execução retornou [traceroute: command not found], e a consulta com rpm não encontrou nenhum pacote instalado.

rpm -q traceroute
package traceroute is not installed

Na família RHEL, a instalação é feita com dnf. Uma prévia com [--assumeno] mostrou um único pacote a instalar, o traceroute do repositório baseos, sem nenhum outro pacote junto.

dnf install --assumeno traceroute
Last metadata expiration check: 0:05:00 ago on Thu Oct 29 09:00:00 2026.
Dependencies resolved.
================================================================================
 Package            Architecture   Version                 Repository      Size
================================================================================
Installing:
 traceroute         x86_64         3:2.1.0-9.el9           baseos          56 k

Transaction Summary
================================================================================
Install  1 Package

Total download size: 56 k
Installed size: 107 k
Operation aborted.

O tamanho do download foi de 56k e o tamanho após a instalação, de 107k. [--assumeno] responde no a todas as perguntas, então nada é instalado e o comando termina com [Operation aborted.] (segundo a documentação oficial do dnf).

A instalação real foi feita com [dnf install traceroute], sem [--assumeno].

dnf install traceroute
Last metadata expiration check: 0:20:00 ago on Thu Oct 29 09:00:00 2026.
Dependencies resolved.
================================================================================
 Package            Architecture   Version                 Repository      Size
================================================================================
Installing:
 traceroute         x86_64         3:2.1.0-9.el9           baseos          56 k

Transaction Summary
================================================================================
Install  1 Package

Total download size: 56 k
Installed size: 107 k
Downloading Packages:
traceroute-2.1.0-9.el9.x86_64.rpm               3.6 MB/s |  56 kB     00:00    
--------------------------------------------------------------------------------
Total                                            97 kB/s |  56 kB     00:00     
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                        1/1 
  Installing       : traceroute-3:2.1.0-9.el9.x86_64                        1/1 
  Running scriptlet: traceroute-3:2.1.0-9.el9.x86_64                        1/1 
  Verifying        : traceroute-3:2.1.0-9.el9.x86_64                        1/1 

Installed:
  traceroute-3:2.1.0-9.el9.x86_64                                               

Complete!

Em [Installed:] apareceu só o pacote traceroute, e a instalação terminou com [Complete!] sem pacotes de dependência.

Depois da instalação, conferimos a versão com [traceroute --version].

traceroute --version
Modern traceroute for Linux, version 2.1.0
Copyright (c) 2016  Dmitry Butskoy,   License: GPL v2 or any later

O caminho do executável encontrado com [command -v traceroute] foi [/usr/bin/traceroute].

Na família Debian, instale o pacote traceroute do repositório da distribuição com [apt install traceroute] (segundo as informações oficiais de pacotes do Debian). Confira a versão instalada com --version.

traceroute --version
Modern traceroute for Linux, version 2.1.2
Copyright (c) 2016  Dmitry Butskoy,   License: GPL v2 or any later

No servidor Debian 12, o pacote traceroute já estava instalado, e a versão apareceu como [Modern traceroute for Linux] 2.1.2.

2️⃣ Como usar o comando traceroute

  • ↪️ Forma básica e como ler as linhas de saída

O traceroute recebe um nome ou endereço IP de destino e envia pacotes com um TTL que começa em 1 e aumenta de um em um. Um pacote com TTL 1 expira no primeiro roteador, e um com TTL 2 expira no segundo. A partir das respostas [time exceeded] que esses roteadores devolvem, o traceroute mostra o endereço e o tempo de ida e volta de cada salto (segundo o manual oficial).

Quando o pacote chega ao destino, este responde com [port unreachable] e o rastreamento termina nesse salto; se não chegar, continua até o número máximo de saltos. Segundo o manual oficial, são enviados três pacotes por salto, por isso cada linha mostra três tempos, e por padrão são verificados até 30 saltos.

Em example.com, mostramos só os endereços com -n e verificamos só até o décimo salto com -m 10.

traceroute -n -m 10 example.com
traceroute to example.com (203.0.113.154), 10 hops max, 60 byte packets
 1  192.0.2.1  0.110 ms  0.083 ms  0.067 ms
 2  192.0.2.2  0.348 ms  0.273 ms  0.263 ms
 3  198.51.100.77  0.426 ms  0.337 ms 198.51.100.13  1.251 ms
 4  198.51.100.49  0.968 ms  1.264 ms 198.51.100.53  1.148 ms
 5  * * *
 6  203.0.113.19  1.631 ms 203.0.113.25  2.549 ms 203.0.113.14  1.543 ms
 7  203.0.113.154  1.544 ms  1.656 ms  1.607 ms

A primeira linha mostrou o nome de destino, o endereço realmente usado, o número máximo de saltos e o tamanho de pacote de 60 bytes. O endereço de destino respondeu no sétimo salto, então o rastreamento terminou sem ir até o décimo, e a execução inteira levou menos de um segundo.

SaídaSignificado
traceroute to example.com (203.0.113.154)Nome de destino e endereço resolvido para o qual os pacotes foram realmente enviados
10 hops maxNúmero máximo de saltos verificados — definido com -m, padrão 30
60 byte packetsTamanho dos pacotes enviados — padrão de 60 bytes no IPv4 e 80 bytes no IPv6 (segundo o manual oficial)
1Número do salto — o valor de TTL colocado nesse pacote
192.0.2.1Endereço do roteador que respondeu nesse salto
0.110 ms 0.083 ms 0.067 msTempos de ida e volta dos três pacotes enviados a um salto
198.51.100.77 … 198.51.100.13Linha com dois endereços porque roteadores diferentes responderam a pacotes diferentes no mesmo salto
* * *Nenhum dos três pacotes recebeu resposta a tempo — cada asterisco é um pacote
!H · !N · !P · !XMarca de inalcançável depois do tempo — host, rede ou protocolo inalcançável, proibido administrativamente (segundo o manual oficial)

O terceiro e o quarto saltos mostraram dois endereços em uma linha, e o sexto salto mostrou três. Quando roteadores diferentes respondem aos três pacotes enviados a um salto, o traceroute mostra em sequência todos os endereços que responderam, como descreve o manual oficial.

Sem -n, o traceroute converte os endereços que respondem em nomes de host.

traceroute localhost
traceroute to localhost (127.0.0.1), 30 hops max, 60 byte packets
 1  server1 (127.0.0.1)  0.068 ms  0.048 ms  0.028 ms

Ao executar em localhost, a coluna do salto mostrou o nome de host do servidor Debian 12, com o endereço 127.0.0.1 entre parênteses.

3️⃣ Opções do traceroute

  • ↪️ -n, -q, -m e os métodos de envio -I, -T

O --help do traceroute 2.1.2 mostra 34 opções. Entre elas, testamos com uma conta comum no servidor Debian 12 as opções -n, -q e -m, que mudam a saída, e -I e -T, que mudam os pacotes enviados.

[traceroute -n] mostra só endereços IP, sem convertê-los em nomes de host. Com -n no mesmo localhost, só 127.0.0.1 ficou na coluna do salto.

traceroute -n localhost
traceroute to localhost (127.0.0.1), 30 hops max, 60 byte packets
 1  127.0.0.1  0.073 ms  0.075 ms  0.025 ms

-q define o número de pacotes enviados por salto, e o padrão é 3. Com -q 1 apareceu um só tempo, e com -q 5 apareceram cinco.

traceroute -q 1 -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.096 ms
traceroute -q 5 -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.083 ms  0.028 ms  0.024 ms  0.022 ms  0.022 ms

-m muda o número máximo de saltos verificados. O valor 256 foi recusado com [max hops cannot be more than 255].

traceroute -m 256 -n 127.0.0.1
max hops cannot be more than 255

Por padrão, os pacotes são enviados por UDP. -I os envia como ICMP ECHO, e -T como TCP SYN (porta 80 por padrão). Essas duas opções servem para verificar de novo, com outro tipo de pacote, uma rota que filtra UDP. Com uma conta comum, as duas opções deixaram uma mensagem de permissão insuficiente e terminaram com o código de saída 1.

traceroute -I -n 127.0.0.1
You do not have enough privileges to use this traceroute method.
socket: Operation not permitted
traceroute -T -n 127.0.0.1
You do not have enough privileges to use this traceroute method.
socket: Operation not permitted

O manual oficial lista o método padrão e -U (porta de destino 53 fixa) como os métodos permitidos a contas comuns. -I só funciona com uma conta comum quando a configuração do kernel ping_group_range permite o grupo dessa conta.

cat /proc/sys/net/ipv4/ping_group_range
1	0

O valor do servidor Debian 12 era [1 0], que segundo a documentação do kernel Linux não permite nenhum grupo. -T não está entre os métodos permitidos a contas comuns, independentemente dessa configuração, então execute essas duas opções em uma conta com permissão de root.

📌 Principais opções: resultados deste artigo

OpçãoTarefaResultado neste artigo
-nMostra só endereços IP, sem convertê-los em nomes de hostEm localhost, só 127.0.0.1 ficou na coluna do salto
-qDefine o número de pacotes enviados por salto (padrão 3)-q 1 mostra um tempo, -q 5 mostra cinco
-mDefine o número máximo de saltos verificados (padrão 30)Com -m 10, example.com terminou no sétimo salto; -m 256 foi recusado com [max hops cannot be more than 255]
-IEnvia os pacotes como ICMP ECHOMensagem de permissão insuficiente e código de saída 1 em conta comum
-TEnvia os pacotes como TCP SYN (porta 80 por padrão)Mensagem de permissão insuficiente e código de saída 1 em conta comum
-UEnvia por UDP com a porta de destino fixa em 53example.com mostrou * * * do sétimo ao décimo salto, e o endereço de destino não apareceu

📎 Outras opções: segundo o manual oficial

OpçãoTarefa
-wDefine o tempo máximo de espera por uma resposta (padrão 5 segundos)
-pDefine a porta (porta inicial no UDP, porta de destino fixa no TCP, número de sequência inicial no ICMP)
-fDefine o TTL inicial (padrão 1)
-NDefine o número de pacotes enviados ao mesmo tempo (padrão 16; reduza em roteadores que limitam a taxa de resposta)
-sTroca o endereço de origem por outro endereço de interface do servidor
-iDefine a interface de rede de saída dos pacotes (por padrão, segue a tabela de roteamento)
-4Envia só por IPv4 (IPv4 é o padrão quando um nome retorna endereços IPv4 e IPv6)
-6Envia só por IPv6

🔲 Simulador do comando traceroute

No simulador abaixo, você pode encurtar a rota de example.com com -m, ou testar em 127.0.0.1 e localhost as opções -n, -q, -f (salto inicial) e -I e -T, que exigem permissão.

Simulador do comando traceroutetraceroute 2.1.2
[root@server work]#
Funciona só no seu navegador e não envia pacotes reais. Use ↑↓ para trazer de volta os comandos anteriores.

4️⃣ Saltos sem resposta no traceroute

  • ↪️ Linhas * * * e firewalls

Mesmo que você possa mudar o método de envio, um salto que não responde continua como [* * *]. Segundo o manual oficial, cada asterisco é um pacote sem resposta a tempo, e a espera é de no máximo 5 segundos.

Ao ver * * * em um salto intermediário, é fácil concluir que a rota foi cortada ali. Na rota de example.com enviada com o método padrão, só o quinto salto foi * * *, mas os pacotes passaram por ele, seguiram pelo sexto e chegaram ao destino no sétimo.

-U envia com a porta de destino fixa em 53. Ao enviar pacotes para o mesmo example.com com -U, o roteador antes do destino respondeu no sexto salto, e depois * * * continuou do sétimo ao décimo salto, sem que o endereço de destino aparecesse.

traceroute -U -n -m 10 example.com
traceroute to example.com (203.0.113.154), 10 hops max, 60 byte packets
 1  192.0.2.1  0.176 ms  0.096 ms  0.661 ms
 2  * * *
 3  198.51.100.13  0.622 ms  0.586 ms  0.562 ms
 4  198.51.100.49  0.898 ms  1.314 ms 198.51.100.53  1.159 ms
 5  * * *
 6  203.0.113.9  3.773 ms 203.0.113.27  3.275 ms 203.0.113.14  8.973 ms
 7  * * *
 8  * * *
 9  * * *
10  * * *

O manual oficial explica que, com -U, o programa do lado do destino em geral não responde, por isso não se vê o último salto. Em uma rota em que um firewall filtra as portas UDP do traceroute ou ICMP ECHO, também não chegam respostas de trás desse firewall, e só * * * continua.

Onde o * * * apareceComo lerVerificar de novo
Um salto intermediárioEsse salto não responde — se os saltos seguintes responderem, os pacotes passaram por eleDeixe assim e leia os saltos seguintes
Antes do destino, até -mO destino ou um firewall antes dele filtra esse pacote ou porta (segundo o manual oficial)Método padrão / -T (root) / [-T -p porta]
Saltos que mudam a cada execuçãoSe um roteador limita a taxa de resposta ICMP, algumas respostas podem faltar (segundo o manual oficial)[-N 1] · [-w 5]

Se parou antes do destino, mude o método de envio e verifique de novo. O manual oficial apresenta -T como um método feito para atravessar firewalls. Para um destino com uma porta claramente aberta, como um servidor de e-mail, explica que indicar essa porta como em [-T -p 25] pode chegar mesmo quando -I não chega.

O * de um salto intermediário também pode mudar conforme o método de envio ou a execução. O segundo salto respondeu com o método padrão, mas apareceu como * * * com -U. O manual oficial diz que algumas respostas podem faltar se um roteador limita a taxa de resposta ICMP, e orienta reduzir o número de pacotes enviados ao mesmo tempo com [-N 1]. O traceroute também encurta a espera com base nos tempos de resposta já recebidos; se por isso o * aparecer cedo demais, indique um único tempo de espera como em [-w 5] para desligar esse cálculo (segundo o manual oficial).

5️⃣ tracepath no lugar do traceroute

  • ↪️ Em servidores onde é difícil instalar

Em um servidor onde você não pode instalar pacotes, verifique a mesma rota com o comando tracepath. O servidor AlmaLinux 9.8 não tinha traceroute, mas tinha tracepath, como iputils 20210202. Já o servidor Debian 12 não tinha tracepath. Segundo o manual oficial do tracepath, ele roda sem permissão de root, mas tem menos opções e envia só UDP. Por isso, quando você precisar mudar o método de envio com -I ou -T, ou enviar vários pacotes por salto com -q para comparar, instale e use o traceroute.

🔢 FAQ & conteúdo recomendado

Não, o código de saída não mostra isso. Ele foi 0 tanto quando o método padrão alcançou example.com no sétimo salto quanto quando -U ainda não tinha chegado no décimo salto. Opções inválidas, valores de -m fora do intervalo e falhas de resolução de nome terminaram com 2, e -I e -T em conta comum terminaram com 1. O código de saída só distingue erros de execução; para saber se o destino foi alcançado, veja se a última linha mostra o endereço de destino.

Segundo a documentação da Microsoft, o tracert do Windows envia ICMP Echo Request aumentando o TTL, enquanto o traceroute do Linux envia pacotes UDP por padrão (segundo o manual oficial). Para verificar no Linux com o mesmo método ICMP do tracert, adicione -I.

Se você definir o primeiro TTL com -f, a saída começa nesse salto. O padrão é 1 segundo o manual oficial, e -f 2 em 127.0.0.1 fez os números de salto começarem em 2. Quando o salto máximo é menor que o inicial, como em -m 0, o comando foi recusado com [first hop out of range].

ℹ️ 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.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Demonstre sua humanidade: 0   +   4   =