Lệnh traceroute trong Linux là một công cụ hữu ích giúp bạn kiểm tra đường đi của file từ máy tính đến máy chủ đích. Traceroute theo dõi từng bước mà file vượt qua từ router đến các máy chủ trung gian, giúp bạn hiểu rõ hơn về hiệu suất và trạng thái của mạng. Trong bài viết này, mình sẽ hướng dẫn chi tiết cách sử dụng lệnh traceroute trong Linux, giúp bạn kiểm tra và tối ưu hóa kết nối mạng hiệu quả.
Những điểm chính
- Hiểu rõ về cách sử dụng lệnh Traceroute: Bạn sẽ nắm vững cách thức hoạt động và ứng dụng của lệnh traceroute để kiểm tra đường truyền mạng một cách hiệu quả.
- Biết cách cài đặt và cấu hình Traceroute trên Linux: Bạn sẽ dễ dàng cài đặt lệnh traceroute trên hệ thống Linux và có thể điều chỉnh các tham số để tối ưu hóa kết quả.
- Sử dụng Traceroute để phân tích mạng tốt hơn: Bạn sẽ biết cách sử dụng các tùy chọn như ẩn tên thiết bị, đặt timeout, số lần thử nghiệm và TTL để kiểm tra kết nối mạng chính xác hơn.
- Vietnix – Nhà cung cấp VPS linh hoạt, ổn định và bảo mật.
Traceroute là gì?
Traceroute là một công cụ mạng quan trọng giúp theo dõi đường đi 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.
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 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)
Như bạn thấy, Traceroute là một công cụ mạnh mẽ để theo dõi và phân tích hành trình gói tin mạng, giúp bạn hiểu rõ hơn về hiệu suất hệ thống. Tuy nhiên, để xử lý mượt mà các tác vụ mạng phức tạp một nền tảng máy chủ áo (VPS) mạnh mẽ là điều cần thiết. Dịch vụ VPS AMD của Vietnix chính là lựa chọn hoàn hảo, được trang bị bộ vi xử lý AMD EPYC mạnh mẽ, giúp nâng cao hiệu suất xử lý dữ liệu và tính toán phức tạp. Bên cạnh đó, VPS còn sử dụng ổ cứng NVMe Enterprise siêu tốc, mang lại khả năng truy cập dữ liệu nhanh chóng và độ bảo mật cao, đảm bảo hệ thống của bạn hoạt động ổn định ngay cả khi yêu cầu cao.
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.testingwordpress.com
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 www.testingwordpress.com
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 www.testingwordpress.com
Đặ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 www.testingwordpress.com
Đặ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.
Vietnix – Nhà cung cấp VPS linh hoạt, ổn định và bảo mật
Vietnix, với hơn 12 năm kinh nghiệm, cung cấp dịch vụ VPS chất lượng cao, tối ưu hiệu suất và bảo mật tối đa, đáp ứng nhu cầu phát triển hệ thống linh hoạt. Dịch vụ VPS của Vietnix mang lại quyền kiểm soát toàn diện từ việc quản lý tài nguyên, tối ưu hóa băng thông cho đến bảo mật hệ thống. Hơn nữa, VPS của Vietnix được trang bị máy chủ ảo truy cập dữ liệu tốc độ cao, giúp các ứng dụng và website của bạn luôn hoạt động mượt mà, không gián đoạn.
Thông tin liên hệ:
- Hotline: 18001093
- Email: sales@vietnix.com.vn
- Địa chỉ: 265 Hồng Lạc, Phường 10, Quận Tân Bình, Thành Phố Hồ Chí Minh.
- Website: https://vietnix.vn/
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ạ.