Português

Realizar diagnóstico MTR/Traceroute

Este guia ensina-o a usar MTR (My Traceroute) e Traceroute para diagnosticar problemas de conectividade de rede, identificar pontos de latência e analisar a qualidade da sua ligação de rede.

📋 Pré-requisitos

  • Um servidor VPS com acesso root ou sudo
  • Uma ligação SSH ativa
  • Ubuntu/Debian (comandos adaptados para estas distribuições)

🔧 Instalação

Instalar Traceroute (ferramenta básica)

Bash
# On Ubuntu/Debian sudo apt update sudo apt install traceroute -y

Instalar MTR (ferramenta avançada)

O MTR combina as funcionalidades de ping e traceroute numa única ferramenta poderosa.

Bash
1# On Ubuntu/Debian 2sudo apt update 3sudo apt install mtr-tiny -y 4 5# For the full version with graphical interface (optional) 6sudo apt install mtr -y

Verificar a instalação

Bash
1# Verify that traceroute is installed 2traceroute --version 3 4# Verify that MTR is installed 5mtr --version

🛠️ Usar Traceroute

Comando básico

Bash
1# Traceroute to a destination 2traceroute google.com 3 4# Traceroute to an IP 5traceroute 8.8.8.8 6 7# Limit the number of hops (default 30) 8traceroute -m 20 google.com 9 10# Specify timeout in seconds 11traceroute -w 5 google.com

Opções úteis

Bash
1# Use UDP (default) 2traceroute -U google.com 3 4# Use TCP (more reliable) 5traceroute -T google.com 6 7# Use ICMP (like ping) 8traceroute -I google.com 9 10# Don't resolve DNS names (faster) 11traceroute -n google.com

Exemplo de saída

traceroute to google.com (142.250.185.14), 30 hops max, 60 byte packets
 1  10.0.0.1 (10.0.0.1)  0.123 ms  0.089 ms  0.067 ms
 2  192.168.1.1 (192.168.1.1)  5.234 ms  5.189 ms  5.145 ms
 3  * * *
 4  8.8.8.8 (8.8.8.8)  12.456 ms  12.389 ms  12.334 ms
 ...

🚀 Usar MTR (Recomendado)

O MTR é mais poderoso porque envia pacotes continuamente e calcula estatísticas em tempo real.

Comando básico

Bash
1# MTR in interactive mode (recommended) 2mtr google.com 3 4# MTR with report (non-interactive) 5mtr --report google.com 6 7# MTR with 10 test packets 8mtr --report --report-cycles 10 google.com 9 10# MTR to an IP 11mtr --report 8.8.8.8

Opções avançadas

Bash
1# Specify the number of packets to send 2mtr --report --report-cycles 50 google.com 3 4# Use TCP instead of ICMP 5mtr --tcp --port 80 google.com 6 7# Use UDP 8mtr --udp --port 53 8.8.8.8 9 10# Don't resolve DNS names 11mtr --no-dns google.com 12 13# Interval between packets (in seconds) 14mtr --interval 2 google.com 15 16# Packet size (in bytes) 17mtr --psize 64 google.com

Modo interativo MTR

Quando lança mtr sem a opção --report, entra em modo interativo:

  • d : Mostrar/ocultar estatísticas detalhadas
  • n : Ativar/desativar modo DNS (resolução de nomes)
  • r : Repor estatísticas
  • s : Alterar tamanho dos pacotes
  • j : Alterar intervalo entre pacotes
  • q : Sair do MTR

📊 Interpretar resultados

Latência normal

  • < 50 ms : Excelente, rede local ou muito próxima
  • 50-100 ms : Boa, ligação regional
  • 100-200 ms : Aceitável, ligação intercontinental
  • > 200 ms : Elevada, pode causar problemas

Perda de pacotes

  • 0% : Perfeita
  • < 1% : Normal para uma ligação Internet
  • 1-5% : Aceitável mas pode causar problemas
  • > 5% : Problemática, investigação necessária

Significado dos asteriscos (*)

No traceroute, um * significa:

  • Um único * em vez de um tempo : O router não respondeu a esse pacote específico
  • Três * consecutivos : O router não respondeu de todo (timeout ou filtro de firewall)

🎯 Casos de uso

Diagnosticar latência elevada

Bash
1# Test to Google DNS 2mtr --report --report-cycles 30 8.8.8.8 3 4# Test to Cloudflare DNS 5mtr --report --report-cycles 30 1.1.1.1 6 7# Identify the problematic hop 8mtr --report --report-cycles 50 your-domain.com

Diagnosticar perda de pacotes

Bash
1# Test with TCP to bypass ICMP filters 2mtr --tcp --port 443 --report --report-cycles 50 google.com 3 4# Test to a specific server 5mtr --report --report-cycles 100 your-server.com

Teste do seu VPS para a sua localização

Bash
1# Test to your public IP address 2# Get your public IP first 3curl ifconfig.me 4 5# Then test from your VPS 6mtr --report --report-cycles 30 YOUR_PUBLIC_IP

🔍 Resolução de problemas comuns

Problema: Latência elevada num salto específico

Se vir latência elevada num salto intermédio:

Bash
# Test with different protocols mtr --tcp --port 443 --report google.com mtr --udp --port 53 --report 8.8.8.8 mtr --report google.com

Importante: Latência elevada num salto intermédio pode ser normal se esse router não responder rapidamente a pedidos de diagnóstico, mas a latência final permanecer boa.

Problema: Perda de pacotes significativa

Se vir perda de pacotes elevada:

Bash
1# Test with more packets to confirm 2mtr --report --report-cycles 100 destination.com 3 4# Test with TCP if ICMP is filtered 5mtr --tcp --port 80 --report --report-cycles 50 destination.com

Aviso: Se a perda de pacotes aparecer em todos os saltos, o problema provavelmente está no seu VPS ou na sua ligação local. Se aparecer apenas num salto específico, o problema está na rede entre o VPS e o destino.

Problema: Timeouts repetidos

Bash
1# Increase timeout 2mtr --timeout 10 --report destination.com 3 4# Test with different protocols 5mtr --tcp --port 443 --timeout 10 --report destination.com

📝 Comandos úteis

Script de diagnóstico completo

Crie um script para testar vários destinos:

Bash
1#!/bin/bash 2echo "=== MTR Test to Google DNS ===" 3mtr --report --report-cycles 30 8.8.8.8 4 5echo -e "\n=== MTR Test to Cloudflare DNS ===" 6mtr --report --report-cycles 30 1.1.1.1 7 8echo -e "\n=== MTR Test to your domain ===" 9mtr --report --report-cycles 30 your-domain.com

Guardar resultados

Bash
1# Save report to a file 2mtr --report --report-cycles 30 google.com > mtr-report-$(date +%Y%m%d).txt 3 4# With CSV format 5mtr --report --report-cycles 30 --csv google.com > mtr-report.csv

✅ Boas práticas

  • Use MTR em vez de traceroute : O MTR fornece estatísticas mais completas
  • Teste vários destinos : Compare resultados com diferentes servidores
  • Execute vários testes : As redes podem variar; execute testes em momentos diferentes
  • Use TCP se ICMP for filtrado : Alguns routers filtram ICMP mas não TCP
  • Interprete os resultados corretamente : Latência elevada num salto intermédio nem sempre é um problema se a latência final for boa

🆘 Resolução de problemas

O MTR não é exibido corretamente

Bash
1# If MTR doesn't work in interactive mode, use report mode 2mtr --report destination.com 3 4# Check MTR version 5mtr --version

Erro "mtr: command not found"

Bash
1# Reinstall MTR 2sudo apt update 3sudo apt install mtr-tiny -y 4 5# Or install the full version 6sudo apt install mtr -y

Todos os resultados mostram asteriscos

Se todos os saltos mostram *, pode significar:

Bash
1# Your firewall is blocking ICMP 2# Test with TCP instead 3mtr --tcp --port 443 --report destination.com 4 5# Check firewall rules 6sudo ufw status 7sudo iptables -L

📚 Recursos adicionais

❓ Perguntas frequentes

P: Qual é a diferença entre Traceroute e MTR?
R: O Traceroute envia alguns pacotes e apresenta resultados. O MTR envia pacotes continuamente e calcula estatísticas em tempo real, o que é mais útil para diagnóstico.

P: Porque é que alguns saltos mostram asteriscos?
R: Significa que o router não respondeu. Pode dever-se a um filtro de firewall, configuração do router ou simplesmente que o router não responde a pedidos de diagnóstico.

P: Devo preocupar-me com latência elevada num salto intermédio?
R: Nem sempre. Se a latência final até ao destino for boa, latência elevada num salto intermédio pode ser normal. É a latência final que realmente importa.

P: Como interpreto a perda de pacotes no MTR?
R: Perda de pacotes < 1% é normal. Entre 1-5%, é aceitável mas pode causar problemas. Acima de 5%, é problemática e requer investigação.

Precisa de ajuda?

Dúvidas sobre este guia? A nossa equipa e a comunidade estão disponíveis para ajudar.

Fique a par das últimas ofertas, descontos e promoções especiais.

Ver promoções