Lệnh traceroute: cài đặt, cách dùng và các tùy chọn -n, -I, -T
Để kiểm tra từng hop các router mà gói tin đi qua đến đích, hãy dùng lệnh traceroute. Trên máy chủ AlmaLinux 9.8 chưa cài traceroute nên chúng tôi đã cài bằng dnf, và khi theo dõi đường đi tới example.com trên máy chủ Debian 12 có sẵn traceroute 2.1.2, gói tin đã tới đích ở hop thứ bảy.
Đầu ra bên dưới là từ máy chủ Debian 12, chạy bằng tài khoản thường, chỉ có đầu ra rpm và dnf ở chương cài đặt là lấy từ máy chủ AlmaLinux 9.8 (tài khoản root). Tên máy chủ được đổi thành server1, địa chỉ router và đích trên đường đi được đổi thành địa chỉ ví dụ (192.0.2.x, 198.51.100.x, 203.0.113.x). Số phát hành của gói đã cài (phiên bản chính 2.1 giữ nguyên) và thời gian metadata của dnf cũng là giá trị ví dụ, còn thời gian phản hồi được giữ nguyên như đo thực tế.
1️⃣ Cài đặt traceroute
traceroute có được cài sẵn hay không tùy vào bản phân phối. Khi chạy trên máy chủ AlmaLinux 9.8, kết quả là [traceroute: command not found], và truy vấn bằng rpm cũng không thấy gói nào đã cài.
rpm -q traceroutepackage traceroute is not installedHọ RHEL cài bằng dnf. Khi thêm [--assumeno] để xem trước, chỉ có một gói traceroute từ kho baseos sẽ được cài, không có gói nào đi kèm.
dnf install --assumeno tracerouteLast metadata expiration check: 0:05:00 ago on Thu Oct 29 09:00:00 2026.
Dependencies resolved.
================================================================================
Package Architecture Version Repository Size
================================================================================
Installing:
traceroute x86_64 3:2.1.0-9.el9 baseos 56 k
Transaction Summary
================================================================================
Install 1 Package
Total download size: 56 k
Installed size: 107 k
Operation aborted.Dung lượng tải về là 56k và dung lượng sau khi cài là 107k. [--assumeno] là tùy chọn trả lời no cho mọi câu hỏi, nên không cài gì và kết thúc bằng [Operation aborted.] (theo tài liệu chính thức của dnf).
Việc cài đặt thực tế được thực hiện bằng [dnf install traceroute], bỏ [--assumeno].
dnf install tracerouteLast metadata expiration check: 0:20:00 ago on Thu Oct 29 09:00:00 2026.
Dependencies resolved.
================================================================================
Package Architecture Version Repository Size
================================================================================
Installing:
traceroute x86_64 3:2.1.0-9.el9 baseos 56 k
Transaction Summary
================================================================================
Install 1 Package
Total download size: 56 k
Installed size: 107 k
Downloading Packages:
traceroute-2.1.0-9.el9.x86_64.rpm 3.6 MB/s | 56 kB 00:00
--------------------------------------------------------------------------------
Total 97 kB/s | 56 kB 00:00
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
Preparing : 1/1
Installing : traceroute-3:2.1.0-9.el9.x86_64 1/1
Running scriptlet: traceroute-3:2.1.0-9.el9.x86_64 1/1
Verifying : traceroute-3:2.1.0-9.el9.x86_64 1/1
Installed:
traceroute-3:2.1.0-9.el9.x86_64
Complete!Dưới [Installed:] chỉ có gói traceroute, và quá trình cài kết thúc bằng [Complete!] mà không có gói phụ thuộc nào.
Sau khi cài, chúng tôi kiểm tra phiên bản bằng [traceroute --version].
traceroute --versionModern traceroute for Linux, version 2.1.0
Copyright (c) 2016 Dmitry Butskoy, License: GPL v2 or any laterĐường dẫn tệp thực thi tìm được bằng [command -v traceroute] là [/usr/bin/traceroute].
Họ Debian cài gói traceroute từ kho của bản phân phối bằng [apt install traceroute] (theo thông tin gói chính thức của Debian). Phiên bản đã cài được kiểm tra bằng --version.
traceroute --versionModern traceroute for Linux, version 2.1.2
Copyright (c) 2016 Dmitry Butskoy, License: GPL v2 or any laterTrên máy chủ Debian 12, gói traceroute đã được cài sẵn và phiên bản hiển thị là [Modern traceroute for Linux] 2.1.2.
2️⃣ Cách dùng lệnh traceroute
traceroute nhận một tên đích hoặc địa chỉ IP, rồi gửi các gói tin có TTL bắt đầu từ 1 và tăng dần từng đơn vị. Gói có TTL 1 hết hạn ở router đầu tiên, gói có TTL 2 hết hạn ở router thứ hai. Từ phản hồi [time exceeded] mà các router đó gửi về, traceroute in ra địa chỉ và thời gian khứ hồi của từng hop (theo tài liệu hướng dẫn chính thức).
Khi tới đích, đích phản hồi bằng [port unreachable] và kết thúc ở hop đó; nếu không tới được, quá trình tiếp tục đến số hop tối đa. Theo tài liệu hướng dẫn chính thức, mỗi hop gửi ba gói nên một dòng có ba giá trị thời gian, và mặc định kiểm tra tối đa 30 hop.
Với example.com, chúng tôi chỉ in địa chỉ bằng -n và chỉ kiểm tra đến hop thứ mười bằng -m 10.
traceroute -n -m 10 example.comtraceroute to example.com (203.0.113.154), 10 hops max, 60 byte packets
1 192.0.2.1 0.110 ms 0.083 ms 0.067 ms
2 192.0.2.2 0.348 ms 0.273 ms 0.263 ms
3 198.51.100.77 0.426 ms 0.337 ms 198.51.100.13 1.251 ms
4 198.51.100.49 0.968 ms 1.264 ms 198.51.100.53 1.148 ms
5 * * *
6 203.0.113.19 1.631 ms 203.0.113.25 2.549 ms 203.0.113.14 1.543 ms
7 203.0.113.154 1.544 ms 1.656 ms 1.607 msDòng đầu tiên hiển thị tên đích, địa chỉ thực sự được gửi tới, số hop tối đa và kích thước gói 60 byte. Địa chỉ đích phản hồi ở hop thứ bảy nên quá trình kết thúc mà không đi đến hop thứ mười, và toàn bộ lần chạy mất chưa đến một giây.
| Đầu ra | Ý nghĩa |
|---|---|
| traceroute to example.com (203.0.113.154) | Tên đích và địa chỉ phân giải từ tên, nơi gói tin thực sự được gửi tới |
| 10 hops max | Số hop tối đa kiểm tra — đặt bằng -m, mặc định 30 |
| 60 byte packets | Kích thước gói gửi đi — mặc định 60 byte với IPv4, 80 byte với IPv6 (theo tài liệu hướng dẫn chính thức) |
| 1 | Số hop — giá trị TTL gắn cho gói đó |
| 192.0.2.1 | Địa chỉ router đã phản hồi ở hop đó |
| 0.110 ms 0.083 ms 0.067 ms | Thời gian khứ hồi của ba gói gửi tới một hop |
| 198.51.100.77 … 198.51.100.13 | Dòng có hai địa chỉ vì các router khác nhau phản hồi từng gói ở cùng một hop |
| * * * | Cả ba gói đều không có phản hồi trong thời gian quy định — mỗi dấu sao là một gói |
| !H · !N · !P · !X | Ký hiệu không thể tới sau thời gian — không tới được máy chủ, mạng, giao thức, hoặc bị cấm về mặt quản trị (theo tài liệu hướng dẫn chính thức) |
Hop thứ ba và thứ tư có hai địa chỉ trên một dòng, hop thứ sáu có ba. Khi các router khác nhau phản hồi ba gói gửi tới một hop, traceroute in nối tiếp tất cả địa chỉ đã phản hồi, đúng như tài liệu hướng dẫn chính thức mô tả.
Khi chạy không có -n, traceroute đổi địa chỉ phản hồi thành tên máy chủ rồi in ra.
traceroute localhosttraceroute to localhost (127.0.0.1), 30 hops max, 60 byte packets
1 server1 (127.0.0.1) 0.068 ms 0.048 ms 0.028 msKhi chạy với localhost, cột hop hiển thị tên máy chủ của máy Debian 12, kèm địa chỉ 127.0.0.1 trong ngoặc.
3️⃣ Tùy chọn của traceroute
--help của traceroute 2.1.2 liệt kê 34 tùy chọn. Trong đó, chúng tôi đã chạy -n, -q, -m làm thay đổi đầu ra và -I, -T làm thay đổi gói gửi đi, bằng tài khoản thường trên máy chủ Debian 12.
[traceroute -n] chỉ in địa chỉ IP mà không đổi thành tên máy chủ. Khi thêm -n cho cùng localhost, cột hop chỉ còn 127.0.0.1.
traceroute -n localhosttraceroute to localhost (127.0.0.1), 30 hops max, 60 byte packets
1 127.0.0.1 0.073 ms 0.075 ms 0.025 ms-q đặt số gói gửi cho mỗi hop, mặc định là 3. Khi giảm còn -q 1 chỉ có một giá trị thời gian, khi tăng lên -q 5 có năm giá trị.
traceroute -q 1 -n 127.0.0.1traceroute to 127.0.0.1 (127.0.0.1), 30 hops max, 60 byte packets
1 127.0.0.1 0.096 mstraceroute -q 5 -n 127.0.0.1traceroute to 127.0.0.1 (127.0.0.1), 30 hops max, 60 byte packets
1 127.0.0.1 0.083 ms 0.028 ms 0.024 ms 0.022 ms 0.022 ms-m thay đổi số hop tối đa kiểm tra. Khi nhập 256, lệnh bị từ chối với [max hops cannot be more than 255].
traceroute -m 256 -n 127.0.0.1max hops cannot be more than 255Mặc định gói được gửi bằng UDP. -I gửi bằng ICMP ECHO, còn -T gửi bằng TCP SYN (mặc định cổng 80). Hai tùy chọn này dùng để kiểm tra lại bằng loại gói khác trên đường đi có lọc UDP. Khi chạy hai tùy chọn bằng tài khoản thường, lệnh để lại thông báo thiếu quyền và kết thúc với mã thoát 1.
traceroute -I -n 127.0.0.1You do not have enough privileges to use this traceroute method.
socket: Operation not permittedtraceroute -T -n 127.0.0.1You do not have enough privileges to use this traceroute method.
socket: Operation not permittedTài liệu hướng dẫn chính thức ghi cách mặc định và -U (cố định cổng đích 53) là các cách được phép với tài khoản thường. -I chỉ chạy được bằng tài khoản thường khi cài đặt kernel ping_group_range cho phép nhóm của tài khoản đó.
cat /proc/sys/net/ipv4/ping_group_range1 0Giá trị trên máy chủ Debian 12 là [1 0], theo tài liệu kernel Linux nghĩa là không cho phép nhóm nào. -T không thuộc các cách được phép với tài khoản thường, bất kể cài đặt này, nên hãy chạy hai tùy chọn này từ tài khoản có quyền root.
📌 Tùy chọn chính: kết quả chạy trong bài này
| Tùy chọn | Chức năng | Kết quả trong bài này |
|---|---|---|
| -n | Chỉ in địa chỉ IP mà không đổi thành tên máy chủ | Với localhost, cột hop chỉ còn 127.0.0.1 |
| -q | Đặt số gói gửi cho mỗi hop (mặc định 3) | -q 1 cho một giá trị thời gian, -q 5 cho năm giá trị |
| -m | Đặt số hop tối đa kiểm tra (mặc định 30) | Với -m 10, example.com kết thúc ở hop thứ bảy; -m 256 bị từ chối với [max hops cannot be more than 255] |
| -I | Gửi gói bằng ICMP ECHO | Tài khoản thường nhận thông báo thiếu quyền và mã thoát 1 |
| -T | Gửi gói bằng TCP SYN (mặc định cổng 80) | Tài khoản thường nhận thông báo thiếu quyền và mã thoát 1 |
| -U | Gửi bằng UDP với cổng đích cố định là 53 | example.com hiện * * * từ hop thứ bảy đến hop thứ mười, không thấy địa chỉ đích |
📎 Tùy chọn khác: theo tài liệu hướng dẫn chính thức
| Tùy chọn | Chức năng |
|---|---|
| -w | Đặt thời gian chờ phản hồi tối đa (mặc định 5 giây) |
| -p | Đặt cổng (UDP là cổng bắt đầu, TCP là cổng đích cố định, ICMP là số thứ tự bắt đầu) |
| -f | Đặt TTL bắt đầu (mặc định 1) |
| -N | Đặt số gói gửi đồng thời (mặc định 16, giảm xuống với router giới hạn tốc độ phản hồi) |
| -s | Đổi địa chỉ nguồn thành địa chỉ giao diện khác của máy chủ |
| -i | Đặt giao diện mạng để gói đi ra (mặc định theo bảng định tuyến) |
| -4 | Chỉ gửi bằng IPv4 (mặc định là IPv4 khi tên trả về cả địa chỉ IPv4 và IPv6) |
| -6 | Chỉ gửi bằng IPv6 |
🔲 Trình mô phỏng lệnh traceroute
Trong trình mô phỏng bên dưới, bạn có thể rút ngắn đường đi tới example.com bằng -m, hoặc tự nhập -n, -q, -f (hop bắt đầu) và -I, -T cần quyền với 127.0.0.1 và localhost.
4️⃣ Hop không phản hồi trong traceroute
Dù có thể đổi cách gửi, hop không phản hồi vẫn hiện là [* * *]. Theo tài liệu hướng dẫn chính thức, mỗi dấu sao là một gói không có phản hồi trong thời gian quy định, và thời gian chờ tối đa là 5 giây.
Khi thấy * * * ở hop giữa, rất dễ nghĩ đường đi bị đứt ở đó. Trên đường đi tới example.com gửi bằng cách mặc định, chỉ hop thứ năm là * * *, nhưng gói tin đã qua hop đó, đi qua hop thứ sáu và tới đích ở hop thứ bảy.
-U là cách gửi cố định cổng đích là 53. Khi gửi gói tới cùng example.com bằng -U, router ngay trước đích phản hồi ở hop thứ sáu, sau đó * * * kéo dài từ hop thứ bảy đến hop thứ mười và không thấy địa chỉ đích.
traceroute -U -n -m 10 example.comtraceroute to example.com (203.0.113.154), 10 hops max, 60 byte packets
1 192.0.2.1 0.176 ms 0.096 ms 0.661 ms
2 * * *
3 198.51.100.13 0.622 ms 0.586 ms 0.562 ms
4 198.51.100.49 0.898 ms 1.314 ms 198.51.100.53 1.159 ms
5 * * *
6 203.0.113.9 3.773 ms 203.0.113.27 3.275 ms 203.0.113.14 8.973 ms
7 * * *
8 * * *
9 * * *
10 * * *Tài liệu hướng dẫn chính thức giải thích rằng khi gửi bằng -U, chương trình phía đích thường không phản hồi nên không thấy được hop cuối. Trên đường đi có tường lửa lọc cổng UDP của traceroute hoặc ICMP ECHO, phía sau tường lửa đó cũng không có phản hồi và chỉ còn * * * kéo dài.
| Vị trí xuất hiện * * * | Cách đọc | Kiểm tra lại |
|---|---|---|
| Một hop ở giữa | Hop đó không phản hồi — nếu các hop sau phản hồi thì gói tin đã đi qua hop đó | Để nguyên và đọc các hop sau |
| Từ trước đích đến -m | Đích hoặc tường lửa phía trước lọc gói hoặc cổng đó (theo tài liệu hướng dẫn chính thức) | Cách mặc định / -T (root) / [-T -p cổng] |
| Hop thay đổi theo mỗi lần chạy | Nếu router giới hạn tốc độ phản hồi ICMP, một số phản hồi có thể bị thiếu (theo tài liệu hướng dẫn chính thức) | [-N 1] · [-w 5] |
Nếu dừng trước đích, hãy đổi cách gửi rồi kiểm tra lại. Tài liệu hướng dẫn chính thức giới thiệu -T là cách được tạo ra để đi qua tường lửa. Với đích có cổng mở rõ ràng như máy chủ thư, tài liệu giải thích rằng chỉ định cổng đó như [-T -p 25] có thể tới được ngay cả khi -I không tới được.
Dấu * ở hop giữa cũng có thể thay đổi theo cách gửi hoặc từng lần chạy. Hop thứ hai phản hồi khi chạy bằng cách mặc định, nhưng hiện * * * khi chạy bằng -U. Tài liệu hướng dẫn chính thức cho biết nếu router giới hạn tốc độ phản hồi ICMP, một số phản hồi có thể bị thiếu, và khuyên giảm số gói gửi đồng thời bằng [-N 1]. traceroute còn rút ngắn thời gian chờ dựa trên thời gian phản hồi đã nhận; nếu vì vậy mà * xuất hiện sớm, hãy chỉ định một thời gian chờ duy nhất như [-w 5] để tắt phép tính đó (theo tài liệu hướng dẫn chính thức).
5️⃣ tracepath thay cho traceroute
Trên máy chủ không cài được gói, hãy kiểm tra cùng đường đi bằng lệnh tracepath. Máy chủ AlmaLinux 9.8 không có traceroute nhưng có tracepath trong iputils 20210202. Ngược lại, máy chủ Debian 12 không có tracepath. Theo tài liệu hướng dẫn chính thức của tracepath, lệnh này chạy không cần quyền root nhưng có ít tùy chọn hơn và chỉ gửi UDP. Vì vậy, khi bạn cần đổi cách gửi bằng -I, -T hoặc gửi nhiều gói mỗi hop bằng -q để so sánh, hãy cài và dùng traceroute.
🔢 FAQ & nội dung đề xuất
Mạng · Thiết lập
[Linux] Lệnh ip: quản lý giao diện mạng và cài đặt
Lệnh ip kiểm tra và quản lý trạng thái giao diện mạng, địa chỉ IP và bảng định tuyến.
Tường lửa · Ubuntu
[Ubuntu] Thiết lập tường lửa UFW trên Ubuntu
Thiết lập để bật UFW, tường lửa mặc định của Ubuntu, và kiểm tra trạng thái cùng các quy tắc.
Mạng · DNS
Lệnh host trên Linux | lệnh tra cứu DNS
Lệnh host truy vấn DNS để đổi tên máy chủ thành địa chỉ IP và địa chỉ IP thành tên máy chủ.
ℹ️ Thông báo tiếp thị liên kết
Nội dung trên trang này có chứa liên kết affiliate (tiếp thị liên kết). Khi khách truy cập mua sản phẩm hoặc dịch vụ qua các liên kết này, trang sẽ nhận hoa hồng từ bên bán. Trong quá trình đó, số tiền người mua phải trả (sẽ giảm khi có chương trình khuyến mãi ↓) không hề tăng lên. Giá, khuyến mãi và tình trạng hàng được đăng theo thời điểm viết bài và có thể khác với thực tế, vì vậy hãy kiểm tra lại lần cuối với bên bán trước khi mua. Việc chọn và đánh giá sản phẩm dựa trên tiêu chí riêng của trang; việc có nhận hoa hồng hay không không ảnh hưởng đến thứ tự giới thiệu hay nội dung đánh giá.