Lệnh tracepath trong linux với các ví dụ dễ hiểu

Lệnh tracepath trong linux giúp bạn theo dõi đường đi của gói tin đến một địa chỉ mạng cụ thể, tương tự như traceroute nhưng đơn giản hơn. Nó sử dụng giao thức UDP hoặc ICMP để khám phá các hop trên đường đi mà không cần quyền root. Kết quả trả về sẽ cho bạn biết các router mà gói tin đi qua và thời gian trễ tại mỗi hop.

Lệnh tracepath trong linux là gì?

Lệnh command tracepath in linux là một công cụ dòng lệnh dùng để theo dõi đường đi mạng đến một đích cụ thể, tương tự như traceroute nhưng đơn giản hơn. Nó không yêu cầu quyền root để chạy và sử dụng giao thức UDP để khám phá các hop trên đường đi. Tracepath giúp bạn xác định các bộ định tuyến mà gói tin của bạn đi qua, cũng như thời gian trễ giữa các hop này. Điều này rất hữu ích để chẩn đoán các vấn đề về mạng, chẳng hạn như độ trễ cao hoặc mất gói tin. Nó hiển thị thông tin về địa chỉ IP và MTU (Maximum Transmission Unit) của mỗi hop trên đường đi. Bạn có thể sử dụng nó để kiểm tra kết nối mạng và tìm ra điểm nghẽn.

Tìm hiểu Mục đích của Lệnh tracepath

Trong bước này, bạn sẽ tìm hiểu về mục đích và cách dùng lệnh tracepath trong Linux.

Lệnh tracepath là một công cụ chẩn đoán mạng, dùng để theo dấu đường đi của các gói tin.

Công cụ này theo dấu đường đi từ máy chủ cục bộ đến một máy chủ từ xa, xác định các hop trung gian hoặc sự cố mạng.

Lệnh tracepath tương tự như lệnh traceroute, nhưng sử dụng cơ chế Path MTU Discovery (PMTUD).

PMTUD giúp xác định maximum transmission unit (MTU) dọc theo đường đi, giúp xác định các vấn đề liên quan đến phân mảnh gói tin.

Hãy bắt đầu bằng cách chạy lệnh tracepath đến một máy chủ từ xa:

$ sudo tracepath google.com
 1?: [LOCALHOST]                                         pmtu 1500
 1:  192.168.1.1                                           0.161ms
 1:  192.168.1.1                                           0.158ms
 2:  10.0.0.1                                              1.694ms
 3:  203.0.113.1                                           9.717ms
 4:  142.250.209.174                                      10.843ms
 5:  142.250.209.174                                      10.518ms
     Resume: pmtu 1500 hops 5 back 5

Ví dụ về đầu ra:

Đầu ra hiển thị đường đi của các gói tin từ máy chủ cục bộ đến máy chủ từ xa google.com.

Mỗi dòng đại diện cho một hop trên đường đi, và đầu ra bao gồm các thông tin sau:

  • Số thứ tự của hop
  • Địa chỉ IP của router trung gian hoặc thiết bị mạng
  • Thời gian khứ hồi (RTT) để gói tin đến hop đó và quay trở lại máy chủ cục bộ

Lệnh tracepath cũng báo cáo maximum transmission unit (MTU) dọc theo đường đi, trong trường hợp này là 1500 bytes.

Bằng cách chạy lệnh tracepath, bạn có thể xác định các sự cố mạng hoặc tắc nghẽn dọc theo đường đi.

Các sự cố có thể bao gồm độ trễ cao, mất gói tin hoặc các vấn đề về MTU.

Theo Dõi Đường Dẫn Đến Một Host Từ Xa Bằng tracepath

Trong bước này, bạn sẽ học cách sử dụng lệnh tracepath để theo dõi đường dẫn đến một host từ xa.

Bạn cũng sẽ xác định bất kỳ sự cố mạng nào trên đường đi bằng lệnh tracepath này.

Hãy bắt đầu bằng cách theo dõi đường dẫn đến một host từ xa, ví dụ như google.com:

$ sudo tracepath google.com
 1?: [LOCALHOST]                                         pmtu 1500
 1:  192.168.1.1                                           0.161ms
 1:  192.168.1.1                                           0.158ms
 2:  10.0.0.1                                              1.694ms
 3:  203.0.113.1                                           9.717ms
 4:  142.250.209.174                                      10.843ms
 5:  142.250.209.174                                      10.518ms
     Resume: pmtu 1500 hops 5 back 5

Ví dụ về đầu ra:

Đầu ra hiển thị đường dẫn mà các gói tin đi từ host cục bộ đến host từ xa google.com.

Mỗi dòng đại diện cho một hop trong đường dẫn, và đầu ra bao gồm các thông tin sau:

  • Số thứ tự của hop
  • Địa chỉ IP của router trung gian hoặc thiết bị mạng
  • Thời gian khứ hồi (RTT) để gói tin đến hop đó và quay trở lại host cục bộ

Lệnh tracepath cũng báo cáo đơn vị truyền tải tối đa (MTU) dọc theo đường dẫn, là 1500 bytes trong trường hợp này.

Bạn cũng có thể sử dụng lệnh tracepath để theo dõi đường dẫn đến một host từ xa khác, ví dụ như example.com:

$ sudo tracepath example.com
 1?: [LOCALHOST]                                         pmtu 1500
 1:  192.168.1.1                                           0.161ms
 1:  192.168.1.1                                           0.158ms
 2:  10.0.0.1                                              1.694ms
 3:  203.0.113.1                                           9.717ms
 4:  93.184.216.34                                        10.843ms
 5:  93.184.216.34                                        10.518ms
     Resume: pmtu 1500 hops 5 back 5

Bằng cách chạy lệnh tracepath đến các host từ xa khác nhau, bạn có thể xác định bất kỳ sự cố mạng nào.

Bạn cũng có thể tìm ra các tắc nghẽn dọc theo đường dẫn, chẳng hạn như độ trễ cao, mất gói tin hoặc các vấn đề về MTU.

Khắc phục sự cố mạng với tracepath

Trong bước này, bạn sẽ học cách sử dụng lệnh tracepath để khắc phục các sự cố mạng.

Hãy bắt đầu bằng cách mô phỏng sự cố mạng bằng cách chặn kết nối đến một host từ xa sử dụng tường lửa iptables:

$ sudo iptables -A OUTPUT -d 8.8.8.8 -j DROP

Lệnh này sẽ chặn tất cả lưu lượng truy cập đi đến địa chỉ IP 8.8.8.8, một trong các máy chủ DNS công cộng của Google.

Bây giờ, hãy thử theo dõi đường dẫn đến 8.8.8.8 bằng lệnh tracepath:

$ sudo tracepath 8.8.8.8
 1?: [LOCALHOST]                                         pmtu 1500
 1:  192.168.1.1                                           0.161ms
 1:  192.168.1.1                                           0.158ms
 2:  10.0.0.1                                              1.694ms
 3:  no reply
 4:  no reply
 5:  no reply
     Resume: pmtu 1500 hops 5 back 2

Ví dụ về đầu ra:

Đầu ra cho thấy lệnh tracepath có thể theo dõi đường dẫn đến hop thứ ba, nhưng sau đó gặp thông báo "no reply".

Thông báo "no reply" cho thấy kết nối bị chặn hoặc host từ xa không phản hồi.

Để khắc phục sự cố này, bạn có thể thử các cách sau:

  1. Kiểm tra các quy tắc tường lửa để đảm bảo rằng kết nối đang bị chặn như mong đợi:

    $ sudo iptables -L
    Chain OUTPUT (policy ACCEPT)
    target     prot opt source               destination
    DROP       all  --  anywhere             8.8.8.8
  2. Thử ping host từ xa để xem kết nối có thực sự bị chặn hay không:

    $ ping 8.8.8.8
    PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
    ^C
    --- 8.8.8.8 ping statistics ---
    3 packets transmitted, 0 received, 100% packet loss, time 2023ms

    Đầu ra cho thấy kết nối đang bị chặn, được chỉ ra bởi 100% packet loss.

  3. Xóa quy tắc tường lửa để khôi phục kết nối:

    $ sudo iptables -D OUTPUT -d 8.8.8.8 -j DROP

Bằng cách sử dụng lệnh tracepath để xác định điểm kết nối bị chặn, bạn có thể nhanh chóng khắc phục sự cố mạng.

Việc này giúp bạn xác định nguyên nhân gốc rễ của vấn đề một cách hiệu quả.

Kết luận cho linux tracepath command

Vậy là bạn đã nắm được cách sử dụng lệnh tracepath để theo dõi đường đi của gói tin trên mạng rồi đấy! Hy vọng hướng dẫn này giúp bạn dễ dàng hơn trong việc chẩn đoán các vấn đề kết nối. Linux tracepath command là một công cụ đơn giản nhưng vô cùng hữu ích, đặc biệt khi bạn cần xác định điểm nghẽn mạng. Hãy thử nghiệm với các tùy chọn khác nhau để hiểu rõ hơn về cách thức hoạt động của nó. Đừng ngần ngại tìm hiểu thêm các lệnh mạng khác trong Linux để nâng cao kỹ năng quản trị hệ thống của bạn. Chúc bạn thành công trên con đường khám phá thế giới Linux rộng lớn và đầy thú vị! Hãy nhớ rằng, thực hành thường xuyên là chìa khóa để thành thạo bất kỳ công cụ nào.

Last Updated : 15/10/2025