Português

Realizar diagnóstico MTR/Traceroute

3 min
Alojamento VPS/VDS

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
# On Ubuntu/Debian sudo apt update sudo apt install mtr-tiny -y # For the full version with graphical interface (optional) sudo apt install mtr -y

Verificar a instalação

Bash
# Verify that traceroute is installed traceroute --version # Verify that MTR is installed mtr --version

🛠️ Usar Traceroute

Comando básico

Bash
# Traceroute to a destination traceroute google.com # Traceroute to an IP traceroute 8.8.8.8 # Limit the number of hops (default 30) traceroute -m 20 google.com # Specify timeout in seconds traceroute -w 5 google.com

Opções úteis

Bash
# Use UDP (default) traceroute -U google.com # Use TCP (more reliable) traceroute -T google.com # Use ICMP (like ping) traceroute -I google.com # Don't resolve DNS names (faster) traceroute -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
# MTR in interactive mode (recommended) mtr google.com # MTR with report (non-interactive) mtr --report google.com # MTR with 10 test packets mtr --report --report-cycles 10 google.com # MTR to an IP mtr --report 8.8.8.8

Opções avançadas

Bash
# Specify the number of packets to send mtr --report --report-cycles 50 google.com # Use TCP instead of ICMP mtr --tcp --port 80 google.com # Use UDP mtr --udp --port 53 8.8.8.8 # Don't resolve DNS names mtr --no-dns google.com # Interval between packets (in seconds) mtr --interval 2 google.com # Packet size (in bytes) mtr --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
# Test to Google DNS mtr --report --report-cycles 30 8.8.8.8 # Test to Cloudflare DNS mtr --report --report-cycles 30 1.1.1.1 # Identify the problematic hop mtr --report --report-cycles 50 your-domain.com

Diagnosticar perda de pacotes

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

Teste do seu VPS para a sua localização

Bash
# Test to your public IP address # Get your public IP first curl ifconfig.me # Then test from your VPS mtr --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
# Test with more packets to confirm mtr --report --report-cycles 100 destination.com # Test with TCP if ICMP is filtered mtr --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
# Increase timeout mtr --timeout 10 --report destination.com # Test with different protocols mtr --tcp --port 443 --timeout 10 --report destination.com

📝 Comandos úteis

Script de diagnóstico completo

Crie um script para testar vários destinos:

Bash
#!/bin/bash echo "=== MTR Test to Google DNS ===" mtr --report --report-cycles 30 8.8.8.8 echo -e "\n=== MTR Test to Cloudflare DNS ===" mtr --report --report-cycles 30 1.1.1.1 echo -e "\n=== MTR Test to your domain ===" mtr --report --report-cycles 30 your-domain.com

Guardar resultados

Bash
# Save report to a file mtr --report --report-cycles 30 google.com > mtr-report-$(date +%Y%m%d).txt # With CSV format mtr --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
# If MTR doesn't work in interactive mode, use report mode mtr --report destination.com # Check MTR version mtr --version

Erro "mtr: command not found"

Bash
# Reinstall MTR sudo apt update sudo apt install mtr-tiny -y # Or install the full version sudo apt install mtr -y

Todos os resultados mostram asteriscos

Se todos os saltos mostram *, pode significar:

Bash
# Your firewall is blocking ICMP # Test with TCP instead mtr --tcp --port 443 --report destination.com # Check firewall rules sudo ufw status sudo 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.

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

Ver promoções

Utilizamos cookies

Utilizamos cookies analíticos para melhorar a sua experiência no nosso site. Nenhum dado é vendido a terceiros. Saiba mais na nossa política de privacidade.