NỘI DUNG

Hosting tốc độ cao Vietnix - tốc độ tải trang trung bình dưới 1 giây
VPS siêu tốc Vietnix - trải nghiệm mượt mà, ổn định
22/04/2024
Lượt xem

Hướng dẫn cách sử dụng lệnh traceroute trong Linux

22/04/2024
11 phút đọc
Lượt xem

Đánh giá

5/5 - (164 bình chọn)

Bạn muốn tìm hiểu cách sử dụng lệnh traceroute trong Linux để theo dõi đường đi của gói tin? Bài viết này sẽ cung cấp cho bạn hướng dẫn chi tiết từ A đến Z, bao gồm cú pháp lệnh, các tùy chọn, cách giải thích kết quả và ví dụ thực tế. Hãy bắt đầu khám phá ngay!

Traceroute là gì?

Traceroute là một công cụ mạng quan trọng giúp theo dõi đường đi của gói tin từ máy tính của bạn đến một đích cụ thể. Traceroute hữu ích để chẩn đoán sự cố mạng, xác định vị trí tắc nghẽn và đánh giá hiệu suất mạng.

Traceroute là công cụ mạng giúp theo dõi đường đi của gói tin máy
Traceroute là công cụ mạng giúp theo dõi đường đi của gói tin máy

Linux cung cấp hai công cụ traceroute phổ biến:

  • traceroute: Đây là công cụ traceroute mặc định trên hầu hết các bản phân phối Linux.
  • mtr: MTR là công cụ traceroute nâng cao hơn, cung cấp thêm thông tin như thời gian ping và mất gói tin cho mỗi hop.

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

Traceroute là một công cụ mạng giúp theo dõi đường đi của một gói tin từ thiết bị của bạn đến một đích cụ thể. Traceroute hoạt động bằng cách gửi một chuỗi các gói tin ICMP (Internet Control Message Protocol) đến đích, mỗi gói có giá trị Thời gian sống (TTL) được tăng dần.

Giá trị TTL là số lần một gói tin có thể được chuyển tiếp bởi bộ định tuyến trước khi bị loại bỏ. Khi một gói tin được gửi, chúng sẽ đi qua một loạt các bộ định tuyến trên đường đến đích. Mỗi bộ định tuyến sẽ giảm giá trị TTL của gói tin đi 1. Khi giá trị TTL đạt 0, bộ định tuyến sẽ gửi thông báo ICMP Time Exceeded trở lại thiết bị nguồn.

Traceroute sử dụng thông tin này để xây dựng bản đồ đường đi của gói tin. Bản đồ này cho thấy các bộ định tuyến mà gói tin đã đi qua và thời gian cần thiết để đi qua mỗi bộ định tuyến.

Dưới đây là các bước chi tiết về cách thức hoạt động của traceroute:

  • Thiết bị nguồn gửi một gói tin ICMP với giá trị TTL là 1.
  • Gói tin đi qua bộ định tuyến đầu tiên. Bộ định tuyến giảm giá trị TTL của gói tin đi 1 và chuyển tiếp gói tin đến bộ định tuyến tiếp theo.
  • Quá trình này được lặp lại cho đến khi gói tin đến đích hoặc giá trị TTL đạt 0.
  • Khi giá trị TTL đạt 0, bộ định tuyến sẽ gửi thông báo ICMP Time Exceeded trở lại thiết bị nguồn.
  • Thiết bị nguồn ghi lại địa chỉ IP của bộ định tuyến đã gửi thông báo Time Exceeded và thời gian cần thiết để gói tin đến bộ định tuyến đó.
  • Thiết bị nguồn gửi một gói tin ICMP khác với giá trị TTL là 2.
  • Quá trình này được lặp lại cho đến khi gói tin đến đích hoặc traceroute hoàn thành.

Traceroute cung cấp các thông tin sau:

  • Địa chỉ IP của mỗi bộ định tuyến trên đường đi của gói tin
  • Tên miền của mỗi bộ định tuyến (nếu có)
  • Thời gian cần thiết để gói tin đi qua mỗi bộ định tuyến
  • Mất gói tin cho mỗi bộ định tuyến (tùy chọn)

Nếu bạn là người mới bắt đầu sử dụng Linux, có thể còn chưa quen với các thao tác và lệnh trên hệ điều hành này. Tìm hiểu ngay các câu lệnh trong Linux cơ bản sẽ giúp bạn thao tác cũng như làm việc hiệu quả hơn.

Hướng cài đặt lệnh traceroute trong Linux

Traceroute thường được cài đặt sẵn trên hầu hết các bản phân phối Linux. Để kiểm tra xem bạn có traceroute hay không, hãy mở terminal và nhập lệnh sau:

traceroute -h

Nếu traceroute được cài đặt, bạn sẽ thấy danh sách các tùy chọn có sẵn. Nếu không, bạn cần cài đặt chúng bằng trình quản lý gói của hệ thống.

Ví dụ, trên Ubuntu/Debian, bạn có thể sử dụng lệnh sau:

sudo apt install traceroute

MTR có thể không được cài đặt sẵn trên hệ thống của bạn. Để cài đặt MTR, hãy sử dụng lệnh thích hợp cho trình quản lý gói của bạn.

Ví dụ, trên Ubuntu/Debian, bạn có thể sử dụng lệnh sau:

sudo apt install mtr

Xác minh cài đặt

Sau khi cài đặt, bạn có thể xác minh cài đặt bằng cách chạy lệnh traceroute hoặc mtr với một đích cụ thể. Ví dụ, để theo dõi đường đi của gói tin đến trang web https://www.google.com/, bạn có thể sử dụng lệnh sau:

traceroute google.com

Hoặc:

mtr google.com

Lệnh sẽ hiển thị danh sách các hop (router) mà gói tin phải đi qua để đến đích, cùng với thời gian ping và mất gói tin cho mỗi hop.

Ví dụ về lệnh traceroute trong Linux

Xét một ví dụ sau:

traceroute www.blarneycastle.ie
Ví dụ về lệnh traceroute trong Linux
Ví dụ về lệnh traceroute trong Linux

Dòng đầu tiên cung cấp các thông tin như sau:

  • Đích và địa chỉ IP của nó.
  • Số lượng bước nhảy mà traceroute thực hiện trước khi dừng.
  • Kích thước gói tin UDP đang gửi.

Các dòng khác chứa thông tin về từng bước nhảy. Trước hết ta có thể thấy output hiển thị 11 bước nhảy từ máy tính đến website blarneycastle.ie. Ở bước nhảy 11 ta cũng có thể quan sát được rằng packet đã đến được đích cần tới.

Mỗi dòng chứa thông tin bước nhảy có định dạng như sau:

  • Tên hoặc địa chỉ IP của thiết bị.
  • Địa chỉ IP.
  • Thời gian hoàn thành một vòng đi cho mỗi lần test. Nếu có dấu * thì không có phản hồi gì cho lần thử này. Nếu thiết bị không phản hồi ở mọi lần thử thì ta sẽ nhận ba dấu *, cùng với đó thì tên thiết bị và địa chỉ IP cũng không được xác định.

Bây giờ hãy cùng kiểm tra kỹ hơn thông tin của từng bước nhảy:

  • Bước 1: Cổng gọi đầu tiên là DrayTek Vigor Router trên mạng cục bộ. Đây cũng chính là cách mà các gói tin UDP đi khỏi mạng cục bộ để vào internet.
  • Bước 2: Thiết bị không phản hồi, có thể vì thiết bị này được cấu hình để không gửi packet ICMP hoặc thời gian phản hồi quá chậm.
  • Bước 3: Có một thiết bị phản hồi nhưng ta không nhận được tên mà chỉ có địa chỉ IP của nó. Có một dấu * ở trong dòng này nên có một thiết bị đã không gửi phản hồi về.
  • Bước 4 và 5: Cũng không có phản hồi gì.
  • Bước 6: Một thiết bị thừ xa đã xử lý từng yêu cầu trong các UDP request. Trong đó phần tên và địa chỉ IP của từng thiết bị cũng được in ra trên màn hình. Hiện tượng này có thể xảy ra nếu ta gặp một mạng có số lượng phần cứng khá nhiều để xử lý traffic lớn.
  • Bước 7: Bước nhảy thực hiện hỏi UDP packet khi nó rời khỏi mạng ISP vừa rồi.
  • Bước 8: Chỉ có địa chỉ IP mà không có tên thiết bị.
  • Bước 9 và 10: Không nhận được phản hồi.
  • Bước 11: Cho biết ta đã đến được website đích.

Có thể thấy rằng gói tin trên internet có thể gặp rất nhiều trường hợp và muôn kiểu thiết bị khác nhau. Một số thiết bị có thể phản hồi nhưng không cho biết tên, nhiều thiết bị thậm chí còn không đưa ra phản hồi gì. Nhưng nói chung thì ta vẫn đến được đích trong 11 bước nhảy (ở ví dụ trên).

Hướng dẫn sử dụng lệnh traceroute trong Linux

Lệnh traceroute là một công cụ mạnh mẽ để chẩn đoán sự cố mạng và đánh giá hiệu suất mạng. Bằng cách sử dụng các tùy chọn khác nhau, bạn có thể tùy chỉnh hành vi của traceroute để thu thập thông tin chi tiết phù hợp với nhu cầu của mình. Cụ thể dưới đây là một số cách sử dụng traceroute cụ thể

Ẩn tên thiết bị

Ta có thể ẩn bớt tên thiết bị để dễ đọc dữ liệu hơn với option -n (no mapping):

traceroute -n blarneycastle.ie
Ẩn tên thiết bị với bằng cách sử dụng lệnh traceroute
Ẩn tên thiết bị với bằng cách sử dụng lệnh traceroute

Bây giờ ta có thể dễ dàng lọc ra những giá trị thời gian hoàn tất chuyến đi lớn để xác định xem đó có phải vị trí nghẽn cổ chai hay không. Có thể để ý tại bước nhảy 3 thì chỉ còn hai thiết bị phản hồi (ở phần trước là 3 thiết bị). Khi đó ta có thể nghiên cứu sâu hơn tại vị trí này để xác định lỗi.

Đặt giá trị timeout cho traceroute

Nếu ta tăng thời gian timeout mặc định (5 giây) thì sẽ nhận được nhiều phản hồi hơn. Cụ thể, hãy sử dụng option -w (wait time) rồi truyền thời gian vào lệnh như sau:

traceroute -w 7.0 blarneycastle.ie
Đặt giá trị timeout cho traceroute
Đặt giá trị timeout cho traceroute

Đặt số lần test

Theo mặc định thì traceroute sẽ gửi ba packet UDP đến mỗi bước nhảy. Ta có thể dùng option -q (number of queries) để điều chỉnh số lượng này.

Nếu muốn tăng tốc độ kiểm tra bằng traceroute thì hãy nhập lệnh dưới đây để giảm số lượng UDP ta cần gửi:

traceroute -q 1 blarneycastle.ie
Đặt số lần test
Đặt số lần test

Đặt giá trị TTL ban đầu

Giá trị TTL mặc định là 1, ta có thể tăng giá trị này để bỏ qua một số bước nhảy nếu cần. Ta đã biết được để đến website Blarney Castle thì cần tổng cộng 11 bước nhảy. Bây giờ hãy thử chỉnh giá trị TTL thành 11:

traceroute -f 11 blarneycastle.ie

Khi đó gói tin sẽ đến ngay được đích mà không cần thực hiện các bước nhảy trung gian.

Lời kết

Traceroute là một công cụ rất mạnh mẽ để kiểm tra việc định tuyến mạng, xem tốc độ kết nối, xác định vị trí nghẽn cổ chai,… Tuy nhiên, ta chỉ nên sử dụng lệnh traceroute cho những công việc cần thiết để tránh gửi quá nhiều gói tin UDP đến những thiết bị lạ.

THEO DÕI VÀ CẬP NHẬT CHỦ ĐỀ BẠN QUAN TÂM

Đăng ký ngay để nhận những thông tin mới nhất từ blog của chúng tôi. Đừng bỏ lỡ cơ hội truy cập kiến thức và tin tức hàng ngày

Chọn chủ đề :

Hưng Nguyễn

Co-Founder
tại

Kết nối với mình qua

Kết nối với mình qua

Theo dõi
Thông báo của
guest
0 Comments
Phản hồi nội tuyến
Xem tất cả bình luận

Tăng tốc độ website - Nâng tầm giá trị thương hiệu

Tăng tốc tải trang

95 điểm

Nâng cao trải nghiệm người dùng

Tăng 8% tỷ lệ chuyển đổi

Thúc đẩy SEO, Google Ads hiệu quả

Tăng tốc ngay

SẢN PHẨM NỔI BẬT

7 NGÀY DÙNG THỬ HOSTING

NẮM BẮT CƠ HỘI, THÀNH CÔNG DẪN LỐI

Cùng trải nghiệm dịch vụ hosting tốc độ cao được hơn 100,000 khách hàng sử dụng

ĐĂNG KÝ NHẬN TÀI LIỆU THÀNH CÔNG
Cảm ơn bạn đã đăng ký nhận tài liệu mới nhất từ Vietnix!
ĐÓNG

ĐĂNG KÝ DÙNG THỬ HOSTING

7 NGÀY MIỄN PHÍ

ĐĂNG KÝ DÙNG THỬ HOSTING

7 NGÀY MIỄN PHÍ

XÁC NHẬN ĐĂNG KÝ DÙNG THỬ THÀNH CÔNG
Cảm ơn bạn đã đăng ký thông tin thành công. Đội ngũ CSKH sẽ liên hệ trực tiếp để kích hoạt dịch vụ cho bạn nhanh nhất!
ĐÓNG