İçeriğe geç
🛠️ToolsShed

Traceroute Reference

Linux, macOS ve Windows için tam traceroute komutu referansı.

Komut

traceroute <host>

Bayraklar

BayrakAçıklama
-nDo not resolve hostnames (faster)
-m <hops>Set maximum hops (default: 30)
-w <sec>Wait time per probe (default: 5s)
-q <n>Number of probes per hop (default: 3)
-IUse ICMP ECHO instead of UDP
-TUse TCP SYN (requires root)
-p <port>Destination port for UDP/TCP
-i <iface>Use specified network interface
-s <src>Use specified source address
-4 / -6Force IPv4 or IPv6

Örnekler

traceroute google.com

Basic traceroute to a host

traceroute -n 8.8.8.8

Traceroute without DNS resolution

traceroute -m 15 example.com

Limit to 15 hops maximum

traceroute -I google.com

Use ICMP instead of UDP

sudo traceroute -T -p 80 example.com

TCP traceroute on port 80

Nasıl çalışır

Traceroute, bilgisayarınızdan hedef ana bilgisayara olan ağ yolunu eşler. Artan TTL (Yaşam Süresi) değerleri olan paketler gönderir ve her yönlendiricinin yanıtını kaydederek, her atlamada IP adresini ve yanıt süresini gösterir. Bu, ağ bağlantısı sorunlarını tanılamaya ve yönlendirme yollarını anlamaya yardımcı olur.

Bu araç hakkında

Traceroute, bilgisayarınızdan hedef bir ana bilgisayara giden veri paketlerinin izlediği ağ yolunu harita yapan ve her bir ara yönlendirici atlamasını ve her atlamaya ulaşmak için gereken zamanı gösteren bir tanılama aracıdır. Verilerin İnternet üzerinden nasıl hareket ettiğini anlamak, bağlantı sorunlarını teşhis etmesi, gecikme sorunlarını tanımlaması veya yönlendirme davranışını anlaması gereken ağ yöneticileri, geliştiriciler ve BT profesyonelleri için kritik öneme sahiptir. Bu Traceroute Başvurusu, Linux, macOS ve Windows sistemleri için kapsamlı bir komut kılavuzu sunarak her platform için sözdizimi, seçenekleri ve gerçek dünya örneklerini kapsamaktadır.

İşletim sisteminizin traceroute komutunu araştırmanız ve mevcut seçeneklerin ayrıntılı açıklamalarını keşfetmeniz yeterlidir—paket boyutunu ayarlamanız, maksimum atlamaları değiştirmeniz, belirli bağlantı noktası numaralarını ayarlamanız veya zaman aşımı değerlerini yapılandırmanız gerekip gerekmediğini belirleyin. Uzak bir sunucuya olan yavaş bir bağlantıyı sorun gideriyorsanız, paketlerin belirli bir atlamada neden bırakıldığını araştırıyorsanız veya altyapı planlaması için ağ topolojisini belgeleyin, bu başvuru gereksiz karmaşıklık olmaksızın pratik rehberlik sağlar.

Ağ profesyonelleri, sistem yöneticileri, siber güvenlik uzmanları ve bulut mühendisleri, tanılama araç kitlerinin bir parçası olarak traceroute'a bağlıdırlar. Bu araç, güvenilir ağ bağlantısını korumaktan, üretim sistemlerini desteklemekten veya çok atlamalı ağ ortamlarındaki sorunları araştırmaktan sorumlu olan herkes için gereklidir.

Sıkça Sorulan Sorular

Kod Uygulaması

import subprocess
import platform
import re

def traceroute(host: str, max_hops: int = 30) -> list[dict]:
    """Run traceroute and parse output."""
    system = platform.system()
    if system == "Windows":
        cmd = ["tracert", "-h", str(max_hops), host]
    else:
        cmd = ["traceroute", "-m", str(max_hops), host]

    result = subprocess.run(cmd, capture_output=True, text=True, timeout=60)
    lines = result.stdout.splitlines()
    hops = []
    for line in lines[1:]:  # skip header
        # Parse hop number and RTT values
        match = re.match(r"\s*(\d+)\s+(.+)", line)
        if match:
            hop_num = int(match.group(1))
            rest = match.group(2)
            times = re.findall(r"([\d.]+)\s*ms", rest)
            hostname = re.search(r"([\w.-]+)\s+\(", rest)
            hops.append({
                "hop": hop_num,
                "host": hostname.group(1) if hostname else "*",
                "times_ms": [float(t) for t in times],
            })
    return hops

hops = traceroute("google.com", max_hops=15)
for hop in hops:
    avg = sum(hop["times_ms"]) / len(hop["times_ms"]) if hop["times_ms"] else None
    avg_str = f"{avg:.1f} ms" if avg else "*"
    print(f"{hop['hop']:2d}  {hop['host']:<40} {avg_str}")

Comments & Feedback

Comments are powered by Giscus. Sign in with GitHub to leave a comment.