Giới thiệu vấn đề: Khi mạng “chậm” không phải là lỗi của bạn
Hai giờ sáng, chuông điện thoại réo liên hồi. Hệ thống giám sát báo động: dịch vụ X gặp sự cố kết nối. Người dùng than phiền “chậm không thể chấp nhận được”. Tim bạn đập thình thịch. Hàng loạt câu hỏi ập đến: Firewall chặn? Cấu hình sai? Hay cáp quang bị đứt?
Để nhanh chóng tìm ra nguyên nhân gốc rễ, tôi luôn nghĩ ngay đến traceroute và mtr. Hai công cụ này không chỉ vạch ra đường đi của gói tin mà còn hé lộ chất lượng kết nối trên từng chặng.
Tôi vẫn nhớ như in một lần xử lý sự cố mạng khó nhằn: mất gói tin (intermittent packet loss) chỉ xảy ra vào giờ cao điểm. ping khi ấy cho kết quả chập chờn, không rõ ràng. Mãi đến khi dùng mtr, theo dõi liên tục trong nhiều giờ (chẳng hạn, từ 17h đến 22h), tôi mới phát hiện chính xác các hop trung gian rớt gói. Cuối cùng, tôi khoanh vùng được nhà cung cấp dịch vụ gặp vấn đề. Đó là lúc tôi nhận ra mtr không chỉ cho biết gói tin đi đâu, mà còn đi như thế nào.
Khái niệm cốt lõi: Gói tin của bạn đang đi đâu và chất lượng ra sao?
Traceroute: Thám tử đường đi của gói tin
traceroute là tiện ích mạng kinh điển, giúp theo dõi lộ trình gói tin IP từ máy bạn đến máy chủ đích. Nó hoạt động bằng cách gửi các gói tin đặc biệt (thường là UDP với cổng lớn, hoặc ICMP ECHO REQUEST) với giá trị Time To Live (TTL) tăng dần.
- TTL là gì? Mỗi khi một gói tin đi qua một router (hop), giá trị TTL của nó sẽ giảm đi 1. Khi TTL về 0, router sẽ hủy gói tin và gửi lại một thông báo ICMP “Time Exceeded” cho máy gửi.
- Cách hoạt động:
traceroutegửi gói tin đầu tiên với TTL=1. Router đầu tiên sẽ giảm TTL về 0, hủy gói và gửi thông báo “Time Exceeded”.tracerouteghi lại địa chỉ router này. Sau đó, nó gửi gói tin thứ hai với TTL=2, và router thứ hai sẽ phản hồi tương tự. Quá trình tiếp diễn cho đến khi gói tin đến đích, lúc này đích sẽ trả lời bằng ICMP Port Unreachable hoặc ICMP Echo Reply.
Kết quả của traceroute là danh sách các router (hop) mà gói tin đi qua, cùng với thời gian phản hồi (Round Trip Time – RTT) của mỗi hop. Điều này giúp bạn xác định được có bao nhiêu “chặng” và chặng nào có độ trễ cao.
MTR (My Traceroute): “Traceroute” liên tục với thống kê chi tiết
Nếu traceroute chỉ cho bạn “ảnh chụp” lộ trình gói tin tại một khoảnh khắc, thì mtr là sự kết hợp giữa ping và traceroute. Nó mang đến cái nhìn động, liên tục về chất lượng kết nối, gửi gói tin đều đặn và hiển thị thống kê cập nhật theo thời gian thực cho từng hop.
mtr là công cụ tôi tin dùng khi cần xác định vấn đề mất gói (packet loss) hay độ trễ. Đặc biệt, nó chỉ rõ vị trí gói tin gặp trục trặc trên đường đi, thông qua các thông số quan trọng như:
- Loss%: Tỷ lệ phần trăm gói tin bị mất tại hop đó.
- Snt: Số gói tin đã gửi đến hop đó.
- Last/Avg/Best/Wrst: Thời gian phản hồi (độ trễ) của gói tin cuối cùng, trung bình, tốt nhất và tệ nhất.
- StDev: Độ lệch chuẩn của độ trễ, cho biết độ ổn định của kết nối tại hop đó.
Với mtr, bạn có thể dễ dàng phát hiện các vấn đề như mất gói xảy ra tại một router cụ thể, hoặc độ trễ tăng đột biến ở một phân đoạn mạng nhất định, điều mà traceroute khó có thể làm được với một lần chạy duy nhất.
Thực hành chi tiết: Bắt tay vào “mổ xẻ” mạng
Trước khi bắt đầu, đảm bảo rằng bạn đã cài đặt các công cụ này trên hệ thống Linux của mình. Hầu hết các bản phân phối đều có sẵn trong repository.
Cài đặt mtr (nếu chưa có)
# Đối với Debian/Ubuntu
sudo apt update
sudo apt install mtr-tiny
# Đối với CentOS/RHEL
sudo yum install mtr -y
Sử dụng Traceroute cơ bản
Giả sử chúng ta muốn kiểm tra đường đi đến google.com:
traceroute google.com
Bạn sẽ thấy kết quả tương tự như sau:
traceroute to google.com (142.250.187.142), 30 hops max, 60 byte packets
1 _gateway (192.168.1.1) 0.370 ms 0.315 ms 0.287 ms
2 172.16.0.1 (172.16.0.1) 1.921 ms 1.910 ms 1.905 ms
3 10.0.0.1 (10.0.0.1) 2.520 ms 2.515 ms 2.508 ms
4 118.69.XXX.XXX (118.69.XXX.XXX) 6.321 ms 6.310 ms 6.305 ms
5 103.232.XXX.XXX (103.232.XXX.XXX) 7.892 ms 7.881 ms 7.875 ms
6 72.14.215.196 (72.14.215.196) 8.234 ms 8.225 ms 8.219 ms
7 142.251.52.129 (142.251.52.129) 8.210 ms 8.199 ms 8.192 ms
8 hcm02s09-in-f14.1e100.net (142.250.187.142) 8.185 ms 8.174 ms 8.168 ms
Giải thích:
- Mỗi dòng là một “hop” (một router) trên đường đi.
- Số đầu tiên (
1,2,3…) là số thứ tự của hop. _gateway,172.16.0.1… là hostname hoặc địa chỉ IP của router.- Ba giá trị
mstiếp theo là thời gian phản hồi (Round Trip Time – RTT) của ba gói tin kiểm tra được gửi đến hop đó. Nếu có* * *, nghĩa là không nhận được phản hồi từ hop đó (có thể do firewall chặn hoặc router không phản hồi ICMP).
Các tùy chọn hữu ích của Traceroute
-I: Sử dụng ICMP ECHO REQUEST thay vì UDP (giống nhưping). Thường hữu ích nếu UDP bị chặn.
traceroute -I google.com
-n: Không phân giải tên miền thành địa chỉ IP. Giúp kết quả trả về nhanh hơn.
traceroute -n google.com
-m [max_hops]: Giới hạn số hop tối đa.
traceroute -m 10 google.com
Sử dụng MTR để “soi” chất lượng đường truyền
Để có cái nhìn liên tục và chi tiết hơn, chúng ta dùng mtr. Mặc định, mtr chạy ở chế độ tương tác:
mtr google.com
Giao diện của mtr sẽ hiển thị như sau (liên tục cập nhật):
My traceroute [v0.93]
my_server.local (192.168.1.100) Wed Mar 18 02:30:00 2026
Keys: Pause Display modes Restart statistics Order of fields quit
Packets Pings
Host Loss% Snt Last Avg Best Wrst StDev
1.|-- _gateway (192.168.1.1) 0.0% 20 0.3 0.3 0.2 0.5 0.1
2.|-- 172.16.0.1 (172.16.0.1) 0.0% 20 1.9 1.9 1.8 2.1 0.1
3.|-- 10.0.0.1 (10.0.0.1) 0.0% 20 2.5 2.5 2.4 2.7 0.1
4.|-- 118.69.XXX.XXX (118.69.XXX.XXX) 0.0% 20 6.3 6.3 6.2 6.5 0.1
5.|-- 103.232.XXX.XXX (103.232.XXX.XXX) 0.0% 20 7.8 7.8 7.7 8.0 0.1
6.|-- 72.14.215.196 (72.14.215.196) 0.0% 20 8.2 8.2 8.1 8.3 0.1
7.|-- 142.251.52.129 (142.251.52.129) 0.0% 20 8.2 8.2 8.1 8.3 0.1
8.|-- hcm02s09-in-f14.1e100.net (142.250.187.142) 0.0% 20 8.1 8.1 8.0 8.2 0.1
Cách đọc kết quả MTR:
- Loss%: Đây là chỉ số cực kỳ quan trọng. Nếu Loss% tăng đáng kể tại một hop và duy trì ở các hop tiếp theo, khả năng cao vấn đề nằm ở router đó hoặc đường truyền sau nó. Tuy nhiên, nếu Loss% chỉ cao ở một hop duy nhất rồi giảm về 0% ở các hop sau, có thể router đó đang ưu tiên xử lý gói tin mạng hơn là phản hồi ICMP của
mtr(rate-limiting). Trong trường hợp này, chưa chắc đã có sự cố thực sự. - Avg/Wrst/StDev: Các chỉ số này cho thấy độ trễ trung bình, tệ nhất và độ lệch chuẩn. Độ trễ cao liên tục tại một hop và kéo dài đến các hop sau thường báo hiệu tắc nghẽn hoặc sự cố băng thông. StDev (độ lệch chuẩn) cao cho thấy độ trễ không ổn định, dễ gây giật lag cho người dùng.
Các tùy chọn hữu ích của MTR
-rhoặc--report: Chạy ở chế độ báo cáo, gửi số lượng gói tin xác định và sau đó in kết quả rồi thoát. Hữu ích cho việc ghi log hoặc script.
mtr -r -c 100 google.com
-n: Hiển thị địa chỉ IP thay vì hostname.
mtr -n google.com
-i [interval]: Thay đổi khoảng thời gian giữa các gói tin gửi (mặc định 1 giây).
mtr -i 0.1 google.com
Khi nào sử dụng cái nào?
- Sử dụng
traceroutekhi bạn chỉ cần một cái nhìn nhanh về lộ trình mạng và xác định các hop chính. Nó tốt cho việc kiểm tra định tuyến tĩnh. - Sử dụng
mtrkhi bạn nghi ngờ có packet loss, độ trễ không ổn định, hoặc cần giám sát chất lượng kết nối theo thời gian thực để chẩn đoán các vấn đề “intermittent” (xảy ra không thường xuyên) như trường hợp tôi đã gặp.mtrlà lựa chọn vượt trội để xác định vị trí cụ thể của sự cố.
Kết luận: Nắm bắt đường đi, nắm bắt vấn đề
Trong thế giới dịch vụ online 24/7, khả năng nhanh chóng xác định và khoanh vùng sự cố mạng là yếu tố then chốt. traceroute và mtr là hai công cụ cơ bản nhưng hiệu quả, mang đến cái nhìn sâu sắc về đường đi và chất lượng gói tin trên mạng. Nắm vững chúng sẽ giúp bạn giải quyết các vấn đề “mạng chậm” một cách tự tin hơn, đặc biệt là trong những tình huống khẩn cấp. Hãy đưa chúng vào bộ công cụ của mình, bạn sẽ thấy chúng là những trợ thủ đắc lực.

