Lệnh tracert: cách dùng traceroute trên Windows, Mac và Linux

Điểm chính

Tracert (Windows) và traceroute (macOS và Linux) hiển thị mọi router nằm giữa máy tính của bạn và đích đến, kèm ba thời gian phản hồi cho mỗi hop. Chạy tracert example.com trong Command Prompt hoặc traceroute example.com trong Terminal; thêm -d (Windows) hoặc -n (Mac/Linux) để bỏ qua bước phân giải tên và có kết quả nhanh hơn. Dấu sao hoặc “Request timed out” ở một hop giữa đường thường chỉ có nghĩa là router đó bỏ qua các gói thăm dò. Timeout kéo dài đến cuối thường có nghĩa là đích đến loại bỏ các gói thăm dò của tracert: hãy kiểm tra xem website có tải được không và trace lại qua TCP 443; điều quan trọng là độ trễ hoặc mất gói kéo dài đến tận đích.

Kiểm tra ngay

Ví dụ lệnh tracert trên Windows hiển thị từng hop, ba thời gian phản hồi và một hop bị timeout, bên cạnh traceroute trên Mac và Linux
Ví dụ lệnh tracert trên Windows hiển thị từng hop, ba thời gian phản hồi và một hop bị timeout, bên cạnh traceroute trên Mac và Linux
Bắt đầu đọc
  1. Lệnh tracert là gì?
  2. Cách chạy tracert trên Windows
  3. Các tùy chọn của lệnh tracert
  4. Cách chạy traceroute trên Mac
  5. Cách chạy traceroute trên Linux
  6. Cách đọc kết quả tracert
  7. Tracert hoạt động như thế nào?
  8. So sánh tracert, traceroute, pathping và MTR
  9. Chạy traceroute trực tuyến
  10. Câu hỏi thường gặp về lệnh tracert

Lệnh tracert là gì?

Tracert (trace route) là lệnh của Windows cho biết đường đi mà lưu lượng mạng của bạn đi qua để đến một máy chủ khác — từng router (“hop”) trên đường và thời gian mỗi router phản hồi. Trên macOS và Linux, công cụ tương tự có tên là traceroute.

Đây là công cụ nên dùng khi một website chậm hoặc không truy cập được và bạn muốn biết sự cố nằm ở đâu: trong mạng nhà bạn, ở nhà mạng, ở đâu đó giữa đường hay tại chính máy chủ đích. Nếu ping cho biết một máy chủ có phản hồi hay không, thì tracert cho biết tuyến đường và vị trí nó bị đứt.

Trace tuyến đường từ 8 thành phố ngay bây giờ

Cách chạy tracert trên Windows

  • Nhấn Windows + R, gõ cmd rồi nhấn Enter (hoặc tìm Command Prompt trong menu Start).
  • Gõ tracert kèm theo tên miền hoặc địa chỉ IP, ví dụ tracert example.com, rồi nhấn Enter.
  • Chờ kết quả. Tracert thăm dò tối đa 30 hop, mỗi hop ba lần, và chờ tối đa 4 giây cho mỗi phản hồi — một lần trace suôn sẻ sẽ xong trong vài giây, nhưng nếu gặp nhiều timeout thì có thể mất vài phút. Nhấn Ctrl + C để dừng sớm, hoặc dùng -d và -w (xem bên dưới) để chạy nhanh hơn.
text
C:\> tracert example.com

Tracing route to example.com [203.0.113.10]
over a maximum of 30 hops:

  1     1 ms    <1 ms    <1 ms  192.168.1.1
  2     9 ms     8 ms     9 ms  10.20.0.1
  3    12 ms    11 ms    12 ms  198.51.100.33
  4     *        *        *     Request timed out.
  5    24 ms    23 ms    24 ms  203.0.113.1
  6    25 ms    24 ms    24 ms  203.0.113.10

Trace complete.

Mỗi dòng là một hop. Ba con số là ba lần thăm dò riêng biệt; địa chỉ bên phải là router đã trả lời. Hop 1 gần như luôn là router của chính bạn, còn dòng cuối cùng là đích đến. (Các địa chỉ công khai ở trên lấy từ dải địa chỉ dành riêng cho tài liệu.)

Các tùy chọn của lệnh tracert

Cú pháp là tracert [options] target (Microsoft). Các tùy chọn bạn thực sự sẽ dùng:

Tùy chọnChức năngVí dụ
-dKhông phân giải địa chỉ IP thành hostname — nhanh hơn nhiềutracert -d example.com
-h max_hopsSố hop tối đa (mặc định 30)tracert -h 15 example.com
-w timeoutSố mili giây chờ mỗi phản hồi (mặc định 4000)tracert -w 1000 example.com
-4Bắt buộc dùng IPv4tracert -4 example.com
-6Bắt buộc dùng IPv6tracert -6 example.com

Bạn có thể kết hợp tự do: tracert -d -w 1000 example.com cho kết quả trace nhanh và vẫn hữu ích nhất. Để lưu kết quả gửi cho bộ phận hỗ trợ của nhà mạng hoặc hosting, hãy chuyển hướng đầu ra vào một tệp: tracert -d example.com > trace.txt.

Tracert trên Windows không có tùy chọn cổng: nó luôn gửi ICMP echo request. Để trace theo cách một kết nối HTTPS bắt đầu, tức qua cổng TCP 443, hãy dùng sudo traceroute -T -p 443 trên Linux hoặc trong WSL, sudo traceroute -e -P TCP -p 443 trên Mac, hoặc traceroute trực tuyến của chúng tôi qua TCP 443.

Cách chạy traceroute trên Mac

Mở Terminal (Ứng dụng › Tiện ích) và chạy traceroute example.com. macOS mặc định gửi gói thăm dò UDP; thêm -I để dùng ICMP giống Windows — cách này thường nhận được phản hồi từ những router bỏ qua UDP. Các tùy chọn hữu ích: -n (không phân giải tên), -m 30 (số hop tối đa; mặc định trên macOS là 64), -w 2 (số giây chờ mỗi lần thăm dò) và -q 1 (một lần thăm dò mỗi hop thay vì ba).

bash
traceroute -n -I example.com

Cách chạy traceroute trên Linux

Chạy traceroute example.com. Nếu hệ thống báo không tìm thấy lệnh, hãy cài đặt nó (sudo apt install traceroute trên Debian/Ubuntu, sudo dnf install traceroute trên Fedora) hoặc dùng tracepath, công cụ thường được cài sẵn. Traceroute trên Linux mặc định gửi gói thăm dò UDP, 3 lần mỗi hop, tối đa 30 hop.

Tùy chọnChức năng
-nChỉ hiển thị địa chỉ IP (không tra cứu DNS)
-IDùng gói thăm dò ICMP echo (giống tracert trên Windows)
-TDùng gói thăm dò TCP SYN (mặc định cổng 80) — vượt qua được tường lửa chặn UDP/ICMP; cần sudo
-p portCổng đích cần thăm dò, ví dụ -T -p 443
-m max_ttlSố hop tối đa (mặc định 30)
-q nSố lần thăm dò mỗi hop (mặc định 3)
-w secondsThời gian chờ mỗi phản hồi
text
$ traceroute -n example.com
traceroute to example.com (203.0.113.10), 30 hops max, 60 byte packets
 1  192.168.1.1  0.612 ms  0.571 ms  0.534 ms
 2  10.20.0.1  8.911 ms  9.004 ms  8.872 ms
 3  * * *
 4  203.0.113.10  24.112 ms  23.980 ms  24.051 ms

Để kiểm tra đường đi đến một máy chủ web theo cách một kết nối HTTPS bắt đầu, hãy trace qua cổng TCP 443: sudo traceroute -T -p 443 example.com.

Cách đọc kết quả tracert

  • Timeout ở một hop giữa đường nhưng các hop sau vẫn trả lời (* hoặc “Request timed out”): bình thường. Nhiều router được cấu hình để bỏ qua hoặc giới hạn tần suất trả lời các gói thăm dò này. Đường đi vẫn ổn.
  • Timeout từ một hop cho đến cuối: sau hop cuối cùng có trả lời, không còn gì trả lời các gói thăm dò. Nếu website vẫn tải được, đích đến hoặc tường lửa phía trước nó chỉ đang loại bỏ các gói thăm dò: hãy trace lại qua TCP 443 trước khi đổ lỗi cho đường đi. Nếu website cũng không tải được, hãy ghi lại hop cuối cùng có phản hồi; đó là mạng bạn cần liên hệ. Trên trình duyệt, tình huống này thường hiện ra là ERR_CONNECTION_TIMED_OUT.
  • Độ trễ tăng vọt và giữ ở mức cao cho mọi hop phía sau (ví dụ 10 ms → 120 ms → 121 ms → 125 ms): độ trễ là thật và bắt đầu từ hop đó — thường là một tuyến kết nối đường dài hoặc một mạng bị nghẽn. Độ trễ tăng vọt chỉ ở một hop rồi giảm lại ngay sau đó chỉ là do router đó trả lời chậm, có thể bỏ qua.
  • “Destination host unreachable” hoặc “Destination net unreachable” (!H hoặc !N trên Mac và Linux, !X khi bị chặn có chủ ý): một router báo rằng nó không thể chuyển gói đi. “Net” nghĩa là nó không có tuyến đến mạng đó, “host” thường nghĩa là router cuối không tiếp cận được chính máy chủ. Hãy kiểm tra lại địa chỉ; nếu đúng, sự cố nằm ở router đã báo lỗi hoặc phía sau nó.
  • Địa chỉ IP private (192.168.x.x, 10.x.x.x, 172.16–31.x.x) hoặc địa chỉ dùng chung 100.64–127.x.x ở các hop đầu tiên: đó là router của bạn, rồi đến mạng nội bộ của nhà mạng. Hop 1 chậm cho thấy vấn đề ở Wi-Fi hoặc router; độ trễ tăng ở hop kế tiếp thì nằm ở đường truyền đến nhà mạng. Nếu trace dừng ở đó, hãy bắt đầu với Wi-Fi đã kết nối nhưng không có internet.
  • Trace kết thúc tại đích với thời gian thấp: đường truyền mạng vẫn ổn, nên website chậm nhiều khả năng là do máy chủ hoặc DNS — hãy kiểm tra bằng công cụ Tra Cứu DNS và Kiểm Tra Tốc Độ DNS của chúng tôi.

Tracert hoạt động như thế nào?

Mỗi gói tin IP có một bộ đếm TTL (time to live) mà mỗi router sẽ giảm đi một; khi giá trị này về 0, router loại bỏ gói tin và gửi lại thông báo ICMP “Time Exceeded”. Tracert tận dụng cơ chế này: nó gửi gói thăm dò với TTL bằng 1, rồi 2, rồi 3 và cứ thế tiếp tục, để từng router trên đường lần lượt lộ diện cho đến khi máy đích trả lời.

Mỗi hệ điều hành dùng loại gói thăm dò khác nhau. Tracert trên Windows gửi ICMP echo request (cùng loại gói tin với ping). Traceroute trên macOS và Linux mặc định gửi gói UDP đến các cổng cao. Tường lửa xử lý các loại gói này khác nhau, đó là lý do cùng một lần trace có thể trông khác nhau trên Windows và Linux — và cũng là lý do có các tùy chọn -I và -T.

So sánh tracert, traceroute, pathping và MTR

Công cụNền tảngPhù hợp nhất cho
tracertWindowsKiểm tra nhanh đường đi bằng gói thăm dò ICMP
traceroutemacOS, LinuxKiểm tra đường đi bằng gói thăm dò UDP, ICMP (-I) hoặc TCP (-T trên Linux, -e -P TCP trên Mac)
pathpingWindowsChạy một lần trace, sau đó đo tỷ lệ mất gói tại mọi hop trong khoảng 25 giây mỗi hop
mtrmacOS, Linux (và Windows qua WinMTR)Trace trực tiếp, cập nhật liên tục kèm tỷ lệ mất gói và độ trễ của từng hop
tracepathLinuxTraceroute không cần quyền root, đồng thời dò được path MTU

Với các sự cố chập chờn, pathping (Microsoft) hoặc mtr tốt hơn một lần tracert đơn lẻ, vì hiện tượng mất gói chỉ thỉnh thoảng mới xảy ra sẽ không lộ ra qua ba lần thăm dò.

Chạy traceroute trực tuyến

Trace từ máy tính của bạn chỉ cho thấy đường đi xuất phát từ mạng của bạn. Để xem một website có truy cập được từ nơi khác hay không — hoặc để kiểm tra mà không cần terminal — hãy dùng Traceroute trực tuyến của chúng tôi: công cụ này trace cùng lúc từ 8 thành phố qua ICMP, TCP 443 hoặc UDP và hiển thị từng hop kèm tỷ lệ mất gói, vị trí và mạng của nó. Kết hợp với Công Cụ Ping trực tuyến để đo độ trễ và tỷ lệ mất gói, và Tra Cứu IP để xem ai sở hữu địa chỉ IP của một hop.

Trace tuyến đường mà không cần terminal

Chạy traceroute đến bất kỳ tên miền hoặc địa chỉ IP nào từ 8 thành phố cùng lúc, qua ICMP, TCP 443 hoặc UDP, và xem từng hop cùng tỷ lệ mất gói, độ trễ, mạng và vị trí của nó.

Nguồn

  1. tracert, Microsoft
  2. pathping, Microsoft
  3. traceroute(8), Linux man-pages

Câu hỏi thường gặp về lệnh tracert

Làm thế nào để chạy lệnh tracert?

Trên Windows, mở Command Prompt và gõ tracert kèm theo tên miền hoặc địa chỉ IP, ví dụ tracert example.com. Trên macOS hoặc Linux, mở Terminal và gõ traceroute example.com.

“Request timed out” trong tracert nghĩa là gì?

Hop đó không trả lời gói thăm dò trong thời gian chờ. Nếu các hop sau vẫn trả lời, router chỉ đang bỏ qua hoặc giới hạn tần suất gói tracert và không có vấn đề gì. Nếu mọi hop sau nó đều timeout nhưng website vẫn tải được, thì đích đến hoặc tường lửa phía trước nó đang loại bỏ các gói thăm dò chứ không phải lưu lượng của bạn; nếu website cũng không tải được, kết nối bị đứt ngay tại điểm đó.

Tracert và traceroute khác nhau thế nào?

Chúng làm cùng một việc. Tracert là lệnh của Windows và gửi gói ICMP echo; traceroute là lệnh của macOS và Linux, mặc định gửi gói UDP, kèm tùy chọn cho ICMP (-I) hoặc TCP (-T trên Linux, -P TCP trên Mac).

Tracert trên Windows dùng loại gói thăm dò nào?

Thông điệp ICMP Echo Request, cùng loại gói với ping, với TTL tăng thêm một cho mỗi hop. Tracert trên Windows không thể gửi gói UDP hoặc TCP và cũng không chọn được cổng; traceroute trên macOS và Linux mặc định gửi UDP và có thể chuyển sang ICMP hoặc TCP.

Làm sao để tracert chạy nhanh hơn?

Dùng tracert -d để bỏ qua bước tra cứu hostname, và -w với thời gian chờ thấp hơn, ví dụ tracert -d -w 1000 example.com. Trên Mac hoặc Linux, dùng traceroute -n.

Tại sao traceroute hiện dấu sao (* * *)?

Mỗi dấu sao là một gói thăm dò không nhận được phản hồi. Tường lửa và router thường bỏ qua các gói thăm dò của traceroute, nên dấu sao ở một hop duy nhất thường vô hại.

Tracert kiểm tra bao nhiêu hop?

Mặc định tối đa 30 hop. Bạn có thể đổi giới hạn bằng -h trên Windows (tracert -h 15 example.com) hoặc -m trên Mac và Linux.

Tracert có cho biết mạng của tôi chậm ở đâu không?

Có. Hãy tìm hop đầu tiên mà độ trễ tăng vọt và giữ ở mức cao ở mọi hop phía sau. Tăng vọt ở hop 1 cho thấy vấn đề ở Wi-Fi hoặc router của bạn; ở hop kế tiếp là đường truyền giữa modem và nhà mạng; xa hơn nữa là mạng của nhà mạng hoặc internet nói chung.

Có công cụ tracert trực tuyến không?

Có. Traceroute trực tuyến của DNS Robot trace cùng lúc từ 8 thành phố qua ICMP, TCP 443 hoặc UDP, nên bạn có thể kiểm tra một tuyến đường mà không cần terminal và từ những nơi khác ngoài mạng của chính bạn.

Về tác giả

Shaik Vahid

Nhà sáng lập DNS Robot. Vahid đã làm nhiều năm trong bộ phận hỗ trợ hosting, xử lý tên miền, bản ghi DNS, chứng chỉ SSL và việc gửi email cho khách hàng. Anh xây dựng các công cụ của DNS Robot và viết những hướng dẫn này từ các lỗi mà mọi người thực sự gặp.

Traceroute

Truy vết tới website hay IP bất kỳ từ 8 thành phố, từng hop, nêu tên từng mạng