Lewati ke konten
🛠️ToolsShed

Traceroute Reference

Referensi perintah traceroute lengkap untuk Linux, macOS, dan Windows.

Perintah

traceroute <host>

Bendera

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

Contoh

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

Cara Kerja

Traceroute memetakan jalur jaringan dari komputer Anda ke host tujuan. Mengirim paket dengan nilai TTL (Time To Live) yang meningkat dan mencatat respons setiap router, menampilkan alamat IP dan waktu respons di setiap hop. Ini membantu mendiagnosis masalah konektivitas jaringan dan memahami jalur perutean.

Tentang alat ini

Traceroute adalah alat diagnostik yang memetakan jalur jaringan yang diambil oleh paket data yang bepergian dari komputer Anda ke host tujuan, menampilkan setiap lompatan router menengah dan waktu yang diperlukan untuk mencapai masing-masing. Memahami bagaimana data bepergian di Internet sangat penting bagi administrator jaringan, pengembang, dan profesional IT yang perlu mendiagnosis masalah konektivitas, mengidentifikasi masalah latensi, atau memahami perilaku rute. Referensi Traceroute ini menyediakan panduan perintah lengkap untuk sistem Linux, macOS, dan Windows, mencakup sintaks, opsi, dan contoh dunia nyata untuk setiap platform.

Cukup cari perintah traceroute untuk sistem operasi Anda dan jelajahi penjelasan terperinci tentang opsi yang tersedia—baik Anda perlu menyesuaikan ukuran paket, mengubah lompatan maksimal, menetapkan nomor port tertentu, atau mengonfigurasi nilai batas waktu. Apakah Anda mengatasi masalah koneksi lambat ke server jarak jauh, menyelidiki mengapa paket sedang dijatuhkan di lompatan tertentu, atau mendokumentasikan topologi jaringan untuk perencanaan infrastruktur, referensi ini memberikan panduan praktis tanpa kerumitan yang tidak perlu.

Profesional jaringan, administrator sistem, spesialis keamanan siber, dan insinyur cloud semuanya mengandalkan traceroute sebagai bagian dari perangkat alat diagnostik mereka. Alat ini sangat penting bagi siapa saja yang bertanggung jawab untuk mempertahankan konektivitas jaringan yang andal, mendukung sistem produksi, atau menyelidiki masalah di lingkungan jaringan multi-hop.

Pertanyaan yang Sering Diajukan

Implementasi Kode

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.