Lệnh traceroute: cài đặt, cách dùng và các tùy chọn -n, -I, -T

Môi trường thử nghiệmHọ RHELAlmaLinux 9.8Tài khoản rootDebian 12 · traceroute 2.1.2 tài khoản thườngKiểm tra ngày 2026-10-29
Lệnh mạngtraceroute

Để 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

  • ↪️ Họ RHEL dùng dnf, họ Debian dùng apt

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 traceroute
package traceroute is not installed

Họ 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 traceroute
Last 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 traceroute
Last 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 --version
Modern 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 --version
Modern traceroute for Linux, version 2.1.2
Copyright (c) 2016  Dmitry Butskoy,   License: GPL v2 or any later

Trê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

  • ↪️ Dạng cơ bản và cách đọc các dòng đầu ra

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.com
traceroute 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 ms

Dò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 maxSố hop tối đa kiểm tra — đặt bằng -m, mặc định 30
60 byte packetsKí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)
1Số 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 msThời gian khứ hồi của ba gói gửi tới một hop
198.51.100.77 … 198.51.100.13Dò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 · !XKý 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 localhost
traceroute 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 ms

Khi 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

  • ↪️ -n, -q, -m và các cách gửi -I, -T

--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 localhost
traceroute 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.1
traceroute to 127.0.0.1 (127.0.0.1), 30 hops max, 60 byte packets
 1  127.0.0.1  0.096 ms
traceroute -q 5 -n 127.0.0.1
traceroute 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.1
max hops cannot be more than 255

Mặ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.1
You do not have enough privileges to use this traceroute method.
socket: Operation not permitted
traceroute -T -n 127.0.0.1
You do not have enough privileges to use this traceroute method.
socket: Operation not permitted

Tà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_range
1	0

Giá 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ọnChức năngKết quả trong bài này
-nChỉ 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]
-IGửi gói bằng ICMP ECHOTài khoản thường nhận thông báo thiếu quyền và mã thoát 1
-TGử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
-UGửi bằng UDP với cổng đích cố định là 53example.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ọnChứ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)
-4Chỉ gửi bằng IPv4 (mặc định là IPv4 khi tên trả về cả địa chỉ IPv4 và IPv6)
-6Chỉ 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.

Trình mô phỏng lệnh traceroutetraceroute 2.1.2
[root@server work]#
Chỉ chạy trong trình duyệt của bạn và không gửi gói tin thật. Dùng ↑↓ để gọi lại các lệnh trước đó.

4️⃣ Hop không phản hồi trong traceroute

  • ↪️ Dòng * * * và tường lửa

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.com
traceroute 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 đọcKiểm tra lại
Một hop ở giữaHop đó 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ạyNế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ó cài đặt

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ã thoát không cho biết điều đó. Cả khi cách mặc định tới example.com ở hop thứ bảy lẫn khi -U không tới được đến hop thứ mười, mã thoát đều là 0. Tùy chọn sai, giá trị -m ngoài phạm vi và lỗi phân giải tên kết thúc với 2, còn -I và -T của tài khoản thường kết thúc với 1. Mã thoát chỉ phân biệt lỗi thực thi, nên để biết đã tới đích chưa, hãy xem dòng cuối có hiện địa chỉ đích hay không.

Theo tài liệu của Microsoft, tracert của Windows gửi ICMP Echo Request trong khi tăng dần TTL, còn traceroute của Linux mặc định gửi gói UDP (theo tài liệu hướng dẫn chính thức). Để kiểm tra trên Linux bằng cùng cách ICMP như tracert, hãy thêm -I.

Khi đặt TTL đầu tiên bằng -f, đầu ra bắt đầu từ hop đó. Theo tài liệu hướng dẫn chính thức, mặc định là 1, và -f 2 với 127.0.0.1 khiến số hop bắt đầu từ 2. Khi hop tối đa nhỏ hơn hop bắt đầu như -m 0, lệnh bị từ chối với [first hop out of range].

ℹ️ 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á.

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Prove your humanity: 3   +   3   =