Comando tracepath: verificar saltos e MTU do caminho no lugar do traceroute
Em um servidor Linux, o comando tracepath mostra sem privilégios de root o caminho (saltos) que os pacotes percorrem até um destino e a MTU do caminho. Em um servidor AlmaLinux 9 sem o traceroute instalado, limitamos o número de saltos a 10 e verificamos o caminho até example.com: até o quarto salto apareceram os tempos de resposta e uma MTU de caminho de 1500, e os seis saltos seguintes não responderam.
A saída abaixo foi executada em um servidor AlmaLinux 9.8 (conta root), e a versão do traceroute e o estado do pacote foram verificados em um servidor Debian 12 (conta comum). Os endereços IPv6 do primeiro salto e dos roteadores intermediários foram trocados por endereços de exemplo para documentação, e os tempos de resposta e os valores de pmtu foram mantidos como estavam.
1️⃣ Como usar o comando tracepath
O tracepath recebe um nome ou endereço IP de destino, envia pacotes UDP e mostra os saltos que respondem, uma linha por salto na ordem do TTL. O número máximo de saltos padrão é 30 e pode ser alterado com -m.
Para example.com, adicionamos -m 10 para verificar só até o décimo salto.
tracepath -n -m 10 example.com 1?: [LOCALHOST] 0.006ms pmtu 9001
1: fe80::1%eth0 0.077ms pmtu 1500
1: 2001:db8:a::5b 2.627ms asymm 8
2: 2001:db8:a::52 1.473ms asymm 12
3: 2001:db8:b::1e 19.653ms asymm 9
4: 2001:db8:c:: 3.642ms asymm 11
5: no reply
6: no reply
7: no reply
8: no reply
9: no reply
10: no reply
Too many hops: pmtu 1500
Resume: pmtu 1500 Este servidor enviou os pacotes para o endereço IPv6 de example.com, e até o quarto salto apareceram tempos de resposta. A partir do quinto salto seguiu no reply, então a linha reached, que indica que o destino foi alcançado em dez saltos, não apareceu, e a execução levou cerca de 18 segundos para terminar.
Ao executar para o mesmo destino sem -m, o comando não terminou em 30 segundos. Em caminhos com muitos saltos que não respondem, use -m para reduzir o número de saltos verificados.
A versão do tracepath instalada é verificada com -V; o tracepath deste servidor era iputils 20210202.
tracepath -Vtracepath from iputils 202102022️⃣ Como ler a saída do tracepath
Cada linha da saída mostra, nesta ordem, o número do salto, o endereço que respondeu e o tempo de ida e volta. Onde a MTU do caminho mudou aparece pmtu, e quando a ida e a volta têm números de saltos diferentes aparece asymm. Veja o que verificar em cada linha.
| Saída | Significado |
|---|---|
| 1?: | Campo do número do salto — um ? aparece no número estimado quando a resposta não trouxe o TTL |
| [LOCALHOST] | Linha do próprio servidor, antes de o pacote sair para a rede |
| 0.077ms | Tempo de ida e volta até esse salto |
| pmtu 1500 | MTU do caminho (bytes) alterada nesse ponto — aparece só quando muda |
| asymm 8 | Diferença de saltos entre a ida e a volta — o manual oficial diz que não é um valor confiável |
| no reply | Salto que não respondeu ao pacote enviado com esse TTL |
| reached | Linha em que o destino foi alcançado |
| Too many hops | Para depois de verificar até o número de saltos definido com -m |
| Resume: pmtu … hops … back … | MTU do caminho inteiro, saltos até o destino e estimativa de saltos na volta |
Na saída de example.com, a pmtu da primeira linha [LOCALHOST] era 9001 e mudou para 1500 no primeiro salto. A linha de TTL 1 aparecer duas vezes mudando só o endereço também é o formato do exemplo do manual oficial. O manual explica que, se o primeiro pacote for recusado no primeiro salto por causa da MTU do caminho, a mesma linha de TTL aparece mais uma vez.
Ao alcançar o destino, reached aparece no fim da linha, e a última linha Resume mostra o número de saltos até o destino. Ao enviar para 127.0.0.1, reached apareceu em um único salto, e a linha Resume foi [pmtu 65535 hops 1 back 1].
tracepath -n 127.0.0.1 1: 127.0.0.1 0.047ms reached
Resume: pmtu 65535 hops 1 back 1 Um caminho que termina em Too many hops sem reached não recebeu resposta do destino dentro dos saltos definidos com -m. O caminho de example.com também não teve reached em dez saltos, então na linha Resume ficou só pmtu, sem número de saltos.
3️⃣ Opções do tracepath
O tracepath tem só oito opções: -4, -6, -n, -b, -l, -m, -p e -V, e ao executá-lo sem destino essa lista aparece como mensagem de uso. Sem opções, ele resolve em nomes os endereços que respondem; ao enviar para localhost, apareceu localhost no campo do salto.
tracepath localhost 1?: [LOCALHOST] 0.003ms pmtu 65536
1: localhost 0.048ms reached
1: localhost 0.030ms reached
Resume: pmtu 65536 hops 1 back 1 [tracepath -n] mostra apenas endereços IP, sem resolver nomes. Ao adicionar -n para o mesmo localhost, o campo do salto mudou para o endereço IPv6 ::1, e o caminho de example.com executado com -n também mostrou só endereços nesse campo.
tracepath -n localhost 1?: [LOCALHOST] 0.005ms pmtu 65536
1: ::1 0.039ms reached
1: ::1 0.010ms reached
Resume: pmtu 65536 hops 1 back 1 -b mostra o nome e o endereço juntos. Ao adicionar -b para 127.0.0.1, o endereço apareceu entre parênteses depois do nome: [localhost (127.0.0.1)].
tracepath -b 127.0.0.1 1: localhost (127.0.0.1) 0.050ms reached
Resume: pmtu 65535 hops 1 back 1 -m é a opção que define o número máximo de saltos verificados e aceitou valores de 0 a 255. Com -m 0 apareceram direto só as linhas Too many hops e Resume, sem linhas de salto, e 256 foi recusado com [out of range].
tracepath -m 0 127.0.0.1 Too many hops: pmtu 65535
Resume: pmtu 65535 -l é o tamanho do primeiro pacote enviado; o padrão é 65535 bytes no IPv4 e 128000 bytes no IPv6. Ao adicionar -l 1500 para 127.0.0.1, a pmtu da linha Resume mudou de 65535 para 1500.
tracepath -l 1500 -n 127.0.0.1 1: 127.0.0.1 0.028ms reached
Resume: pmtu 1500 hops 1 back 1 -p é a opção que define a primeira porta UDP de destino. O resultado de adicionar -p 33434 para 127.0.0.1 foi o mesmo de sem ela.
| Opção | Copiar | Descrição |
|---|---|---|
| -n | Mostra só endereços IP, sem resolver nomes | |
| -b | Mostra o nome e o endereço juntos | |
| -msaltos | Define o número máximo de saltos verificados, padrão 30 | |
| -ltamanho | Define o tamanho do primeiro pacote, padrão IPv4 65535, IPv6 128000 | |
| -V | Mostra a versão e sai |
| Opção | Copiar | Descrição |
|---|---|---|
| -4 | Envia só para endereços IPv4 | |
| -6 | Envia só para endereços IPv6 | |
| -pPorta | Define a primeira porta UDP de destino |
4️⃣ Diferença entre tracepath e traceroute
Em servidores onde não é possível instalar o traceroute, o caminho é verificado com o tracepath em vez do traceroute. O servidor AlmaLinux 9.8 verificado não tinha o pacote traceroute, e o tracepath vem no pacote iputils, então rodou sem instalação à parte.
rpm -q traceroutepackage traceroute is not installedO servidor Debian 12 era o contrário: o traceroute 2.1.2 estava instalado, e o pacote iputils-tracepath, que contém o tracepath, não estava.
traceroute --versionModern traceroute for Linux, version 2.1.2
Copyright (c) 2016 Dmitry Butskoy, License: GPL v2 or any laterapt-cache policy iputils-tracepathiputils-tracepath:
Installed: (none)
Candidate: 3:20221126-1+deb12u1Como mostram esses dois servidores, os comandos disponíveis mudam conforme a distribuição, então primeiro verifique qual existe no servidor em que você está conectado. O tracepath não precisa de privilégios de root e pode ser executado por qualquer conta que consiga enviar pacotes UDP. O executável do tracepath no servidor AlmaLinux 9.8 também tinha permissões rwxr-xr-x, sem capacidades (capability) extras.
| Item | tracepath | traceroute |
|---|---|---|
| Servidor AlmaLinux 9.8 | Vem no pacote iputils, roda na hora | Não instalado |
| Servidor Debian 12 | Pacote iputils-tracepath não instalado | traceroute 2.1.2 instalado |
| Pacotes enviados | UDP | UDP por padrão, -I para ICMP, -T para TCP |
| Saída por salto | Uma linha | Envia três vezes por padrão, três tempos (muda com -q) |
| Número de opções | Oito: -4 -6 -n -b -l -m -p -V | Mais de 20 só na primeira tela de --help |
Se você precisa ver o caminho por ICMP ou TCP, ou enviar várias vezes por salto para comparar tempos, vai instalar e usar o comando traceroute. Em servidores onde instalar é difícil ou onde também é preciso ver a MTU do caminho, o tracepath é a escolha certa.
🔲 Simulador do comando tracepath
No simulador abaixo, você pode ver de novo o caminho de example.com mudando só o número de saltos, ou digitar -n, -b, -m e -l para localhost e 127.0.0.1 e comparar as diferenças.
🔢 FAQ & conteúdo recomendado
Firewall
Instalar o FirewallD no Linux e configurar o daemon
Instalação e configuração do daemon do FirewallD, que gerencia regras de firewall com zonas e serviços.
Rede · Configuração
Comandos netstat e ifconfig no Linux
Os comandos netstat e ifconfig, que mostram portas abertas, estados de conexão e informações das interfaces de rede.
Rede · DNS
comando nslookup
O comando nslookup, que pergunta a um servidor DNS para qual endereço IP um nome de domínio é resolvido.
ℹ️ 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.