Comando traceroute: instalação, uso e opções -n, -I, -T
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
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 traceroutepackage traceroute is not installedNa 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 tracerouteLast 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 tracerouteLast 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 --versionModern traceroute for Linux, version 2.1.0
Copyright (c) 2016 Dmitry Butskoy, License: GPL v2 or any laterO 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 --versionModern traceroute for Linux, version 2.1.2
Copyright (c) 2016 Dmitry Butskoy, License: GPL v2 or any laterNo 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
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.comtraceroute 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 msA 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ída | Significado |
|---|---|
| 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 max | Número máximo de saltos verificados — definido com -m, padrão 30 |
| 60 byte packets | Tamanho dos pacotes enviados — padrão de 60 bytes no IPv4 e 80 bytes no IPv6 (segundo o manual oficial) |
| 1 | Número do salto — o valor de TTL colocado nesse pacote |
| 192.0.2.1 | Endereço do roteador que respondeu nesse salto |
| 0.110 ms 0.083 ms 0.067 ms | Tempos de ida e volta dos três pacotes enviados a um salto |
| 198.51.100.77 … 198.51.100.13 | Linha 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 · !X | Marca 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 localhosttraceroute 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 msAo 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
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 localhosttraceroute 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.1traceroute to 127.0.0.1 (127.0.0.1), 30 hops max, 60 byte packets
1 127.0.0.1 0.096 mstraceroute -q 5 -n 127.0.0.1traceroute 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.1max hops cannot be more than 255Por 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.1You do not have enough privileges to use this traceroute method.
socket: Operation not permittedtraceroute -T -n 127.0.0.1You do not have enough privileges to use this traceroute method.
socket: Operation not permittedO 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_range1 0O 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ção | Tarefa | Resultado neste artigo |
|---|---|---|
| -n | Mostra só endereços IP, sem convertê-los em nomes de host | Em localhost, só 127.0.0.1 ficou na coluna do salto |
| -q | Define o número de pacotes enviados por salto (padrão 3) | -q 1 mostra um tempo, -q 5 mostra cinco |
| -m | Define 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] |
| -I | Envia os pacotes como ICMP ECHO | Mensagem de permissão insuficiente e código de saída 1 em conta comum |
| -T | Envia 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 |
| -U | Envia por UDP com a porta de destino fixa em 53 | example.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ção | Tarefa |
|---|---|
| -w | Define o tempo máximo de espera por uma resposta (padrão 5 segundos) |
| -p | Define a porta (porta inicial no UDP, porta de destino fixa no TCP, número de sequência inicial no ICMP) |
| -f | Define o TTL inicial (padrão 1) |
| -N | Define o número de pacotes enviados ao mesmo tempo (padrão 16; reduza em roteadores que limitam a taxa de resposta) |
| -s | Troca o endereço de origem por outro endereço de interface do servidor |
| -i | Define a interface de rede de saída dos pacotes (por padrão, segue a tabela de roteamento) |
| -4 | Envia só por IPv4 (IPv4 é o padrão quando um nome retorna endereços IPv4 e IPv6) |
| -6 | Envia 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.
4️⃣ Saltos sem resposta no traceroute
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.comtraceroute 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 * * * aparece | Como ler | Verificar de novo |
|---|---|---|
| Um salto intermediário | Esse salto não responde — se os saltos seguintes responderem, os pacotes passaram por ele | Deixe assim e leia os saltos seguintes |
| Antes do destino, até -m | O 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ção | Se 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 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
Rede · Configuração
[Linux] Comando ip: gerenciar interfaces de rede e configurações
O comando ip verifica e gerencia o estado das interfaces de rede, os endereços IP e a tabela de roteamento.
Firewall · Ubuntu
[Ubuntu] Configurar o firewall UFW do Ubuntu
Configuração para ativar o UFW, firewall padrão do Ubuntu, e verificar seu estado e suas regras.
Rede · DNS
Comando host no Linux | comando de consulta DNS
O comando host consulta o DNS para converter nomes de host em endereços IP e endereços IP em nomes de host.
ℹ️ 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.