فارسی (Farsi)
€EUR

عیب‌یابی شبکه با MTR/Traceroute

3 min
سرور مجازی (VPS/VDS)

این راهنما به شما نشان می‌دهد چگونه از MTR (My Traceroute) و Traceroute برای عیب‌یابی مشکلات اتصال شبکه، شناسایی نقاط تأخیر و تحلیل کیفیت اتصال شبکه خود استفاده کنید.

📋 پیش‌نیازها

  • یک سرور VPS با دسترسی روت (root) یا sudo
  • یک اتصال SSH فعال
  • Ubuntu/Debian (دستورها برای این توزیع‌ها تنظیم شده‌اند)

🔧 نصب

نصب Traceroute (ابزار پایه)

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

نصب MTR (ابزار پیشرفته)

MTR قابلیت‌های ping و traceroute را در یک ابزار قدرتمند ترکیب می‌کند.

Bash
# Sur Ubuntu/Debian sudo apt update sudo apt install mtr-tiny -y # Pour la version complète avec interface graphique (optionnel) sudo apt install mtr -y

بررسی نصب

Bash
# Vérifier que traceroute est installé traceroute --version # Vérifier que MTR est installé mtr --version

🛠️ استفاده از Traceroute

دستور پایه

Bash
# Traceroute vers une destination traceroute google.com # Traceroute vers une IP traceroute 8.8.8.8 # Limiter le nombre de sauts (par défaut 30) traceroute -m 20 google.com # Spécifier le timeout en secondes traceroute -w 5 google.com

گزینه‌های کاربردی

Bash
# Utiliser UDP (par défaut) traceroute -U google.com # Utiliser TCP (plus fiable) traceroute -T google.com # Utiliser ICMP (comme ping) traceroute -I google.com # Ne pas résoudre les noms DNS (plus rapide) traceroute -n google.com

نمونه خروجی

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

🚀 استفاده از MTR (پیشنهادی)

MTR قدرتمندتر است، زیرا بسته‌ها را به‌طور پیوسته ارسال می‌کند و آمار را به‌صورت لحظه‌ای محاسبه می‌کند.

دستور پایه

Bash
# MTR en mode interactif (recommandé) mtr google.com # MTR avec rapport (non-interactif) mtr --report google.com # MTR avec 10 paquets de test mtr --report --report-cycles 10 google.com # MTR vers une IP mtr --report 8.8.8.8

گزینه‌های پیشرفته

Bash
# Spécifier le nombre de paquets à envoyer mtr --report --report-cycles 50 google.com # Utiliser TCP au lieu d'ICMP mtr --tcp --port 80 google.com # Utiliser UDP mtr --udp --port 53 8.8.8.8 # Ne pas résoudre les noms DNS mtr --no-dns google.com # Intervalle entre les paquets (en secondes) mtr --interval 2 google.com # Taille des paquets (en octets) mtr --psize 64 google.com

حالت تعاملی MTR

وقتی mtr را بدون گزینه --report اجرا کنید، وارد حالت تعاملی می‌شوید:

  • d: نمایش/پنهان کردن آمار تفصیلی
  • n: فعال/غیرفعال کردن حالت DNS (تبدیل نام‌ها)
  • r: بازنشانی آمار
  • s: تغییر اندازه بسته‌ها
  • j: تغییر فاصله بین بسته‌ها
  • q: خروج از MTR

📊 تفسیر نتایج

تأخیر عادی

  • < 50 ms: عالی، شبکه محلی یا بسیار نزدیک
  • 50-100 ms: خوب، اتصال منطقه‌ای
  • 100-200 ms: قابل قبول، اتصال بین‌قاره‌ای
  • > 200 ms: بالا، می‌تواند مشکل ایجاد کند

بسته‌های ازدست‌رفته

  • 0%: عالی
  • < 1%: برای اتصال اینترنت عادی است
  • 1-5%: قابل قبول اما می‌تواند مشکل ایجاد کند
  • > 5%: مشکل‌ساز، نیازمند بررسی

معنی ستاره‌ها (*)

در traceroute، یک * به این معنی است:

  • فقط یک * به‌جای زمان: مسیریاب به این بسته خاص پاسخ نداده است
  • سه * پشت‌سرهم: مسیریاب اصلاً پاسخ نداده است (تایم‌اوت یا فیلتر فایروال)

🎯 موارد استفاده

عیب‌یابی تأخیر بالا

Bash
# Tester vers Google DNS mtr --report --report-cycles 30 8.8.8.8 # Tester vers Cloudflare DNS mtr --report --report-cycles 30 1.1.1.1 # Identifier le saut problématique mtr --report --report-cycles 50 votre-domaine.com

عیب‌یابی ازدست‌رفتن بسته‌ها

Bash
# Test avec TCP pour contourner les filtres ICMP mtr --tcp --port 443 --report --report-cycles 50 google.com # Test vers un serveur spécifique mtr --report --report-cycles 100 votre-serveur.com

آزمایش از VPS به لوکیشن شما

Bash
# Tester vers votre adresse IP publique # Récupérez votre IP publique d'abord curl ifconfig.me # Puis testez depuis votre VPS mtr --report --report-cycles 30 VOTRE_IP_PUBLIQUE

🔍 عیب‌یابی مشکلات رایج

مشکل: تأخیر بالا روی یک گام مشخص

اگر روی یک گام میانی تأخیر بالایی می‌بینید:

Bash
# Tester avec différents protocoles mtr --tcp --port 443 --report google.com mtr --udp --port 53 --report 8.8.8.8 mtr --report google.com

مهم: تأخیر بالا روی یک گام میانی می‌تواند عادی باشد، اگر آن مسیریاب به درخواست‌های عیب‌یابی سریع پاسخ ندهد، اما تأخیر نهایی خوب بماند.

مشکل: ازدست‌رفتن زیاد بسته‌ها

اگر ازدست‌رفتن بالای بسته‌ها را می‌بینید:

Bash
# Tester avec plus de paquets pour confirmer mtr --report --report-cycles 100 destination.com # Tester avec TCP si ICMP est filtré mtr --tcp --port 80 --report --report-cycles 50 destination.com

توجه: اگر ازدست‌رفتن بسته روی همه گام‌ها دیده شود، مشکل احتمالاً روی VPS یا اتصال محلی شماست. اگر فقط روی یک گام مشخص دیده شود، مشکل در شبکه بین VPS شما و مقصد است.

مشکل: تایم‌اوت‌های مکرر

Bash
# Augmenter le timeout mtr --timeout 10 --report destination.com # Tester avec différents protocoles mtr --tcp --port 443 --timeout 10 --report destination.com

📝 دستورهای کاربردی

اسکریپت عیب‌یابی کامل

یک اسکریپت برای آزمایش چند مقصد بسازید:

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

ذخیره نتایج

Bash
# Sauvegarder le rapport dans un fichier mtr --report --report-cycles 30 google.com > mtr-report-$(date +%Y%m%d).txt # Avec format CSV mtr --report --report-cycles 30 --csv google.com > mtr-report.csv

✅ بهترین روش‌ها

  • به‌جای traceroute از MTR استفاده کنید: MTR آمار کامل‌تری ارائه می‌دهد
  • چند مقصد را آزمایش کنید: نتایج را برای سرورهای مختلف مقایسه کنید
  • چند بار آزمایش کنید: شبکه‌ها می‌توانند تغییر کنند، پس در زمان‌های مختلف چند آزمایش انجام دهید
  • اگر ICMP فیلتر شده است از TCP استفاده کنید: برخی مسیریاب‌ها ICMP را فیلتر می‌کنند اما TCP را نه
  • نتایج را درست تفسیر کنید: اگر تأخیر نهایی خوب باشد، تأخیر بالا روی یک گام میانی همیشه مشکل نیست

🆘 رفع اشکال

MTR درست نمایش داده نمی‌شود

Bash
# Si MTR ne fonctionne pas en mode interactif, utilisez le mode rapport mtr --report destination.com # Vérifier la version de MTR mtr --version

خطای "mtr: command not found"

Bash
# Réinstaller MTR sudo apt update sudo apt install mtr-tiny -y # Ou installer la version complète sudo apt install mtr -y

همه نتایج فقط ستاره نشان می‌دهند

اگر همه گام‌ها * نشان می‌دهند، ممکن است به این معنی باشد:

Bash
# Votre pare-feu bloque ICMP # Testez avec TCP à la place mtr --tcp --port 443 --report destination.com # Vérifiez les règles de pare-feu sudo ufw status sudo iptables -L

📚 منابع بیشتر

❓ پرسش‌های متداول

پرسش: تفاوت Traceroute و MTR چیست؟
پاسخ: Traceroute چند بسته می‌فرستد و نتایج را نمایش می‌دهد. MTR بسته‌ها را به‌طور پیوسته می‌فرستد و آمار را به‌صورت لحظه‌ای محاسبه می‌کند که برای عیب‌یابی مفیدتر است.

پرسش: چرا بعضی گام‌ها ستاره نشان می‌دهند؟
پاسخ: یعنی مسیریاب پاسخ نداده است. دلیل آن می‌تواند فیلتر فایروال، پیکربندی مسیریاب یا صرفاً پاسخ ندادن مسیریاب به درخواست‌های عیب‌یابی باشد.

پرسش: آیا باید نگران تأخیر بالا روی یک گام میانی باشم؟
پاسخ: لزوماً نه. اگر تأخیر نهایی تا مقصد خوب باشد، تأخیر بالا روی یک گام میانی می‌تواند عادی باشد. آنچه واقعاً اهمیت دارد تأخیر نهایی است.

پرسش: ازدست‌رفتن بسته در MTR را چگونه تفسیر کنم؟
پاسخ: ازدست‌رفتن کمتر از 1% عادی است. بین 1 تا 5% قابل قبول است اما می‌تواند مشکل ایجاد کند. بیش از 5% مشکل‌ساز است و نیاز به بررسی دارد.

با آخرین پیشنهادها، تخفیف‌ها و تبلیغات ویژه به‌روز بمانید.

مشاهده تخفیف‌ها

ما از کوکی استفاده می‌کنیم

ما از کوکی‌های تحلیلی برای بهبود تجربه شما در سایت خود استفاده می‌کنیم. هیچ داده‌ای به اشخاص ثالث فروخته نمی‌شود. اطلاعات بیشتر در سیاست حفظ حریم خصوصی ما.