Linux ethtool command

Tìm hiểu về lệnh ethtool trong Linux: Công cụ "thần thánh" cho card mạng

Trong thế giới Linux đầy mạnh mẽ và linh hoạt, việc quản lý và cấu hình card mạng là một phần không thể thiếu đối với các nhà quản trị hệ thống. Trong số vô vàn công cụ hỗ trợ, ethtool nổi lên như một "vị cứu tinh", cung cấp khả năng chẩn đoán, cấu hình và tinh chỉnh card mạng một cách chi tiết và hiệu quả. Bài viết này sẽ đưa bạn đi sâu vào thế giới của ethtool, từ những khái niệm cơ bản đến các ví dụ thực tế, giúp bạn làm chủ công cụ này và tối ưu hóa hiệu suất mạng Linux của mình.

Ethtool là gì?

Ethtool là một tiện ích dòng lệnh được sử dụng trong Linux để hiển thị và thay đổi các thông số cấu hình của card mạng Ethernet. Nó cho phép bạn kiểm tra tốc độ liên kết, chế độ song công, hỗ trợ Wake-on-LAN, và nhiều thông số khác. Ngoài ra, ethtool còn có khả năng kiểm tra cáp mạng, thu thập thống kê lưu lượng và thậm chí là thực hiện các kiểm tra chẩn đoán phần cứng.

Tại sao bạn cần Ethtool?

Có rất nhiều lý do để bạn làm quen và sử dụng ethtool. Dưới đây là một vài ví dụ điển hình:

  • Chẩn đoán sự cố mạng: Khi mạng gặp sự cố, ethtool có thể giúp bạn nhanh chóng xác định nguyên nhân, ví dụ như tốc độ liên kết không đúng, lỗi cáp, hoặc cấu hình sai.
  • Tối ưu hóa hiệu suất mạng: Bằng cách điều chỉnh các thông số như MTU (Maximum Transmission Unit) hoặc TCP offload, bạn có thể cải thiện đáng kể hiệu suất mạng.
  • Kiểm tra phần cứng: Ethtool có thể cung cấp thông tin chi tiết về card mạng của bạn, giúp bạn đảm bảo rằng phần cứng hoạt động bình thường.
  • Quản lý Wake-on-LAN (WoL): Nếu bạn muốn bật hoặc tắt tính năng WoL trên card mạng, ethtool là công cụ lý tưởng.

Cài đặt Ethtool

Hầu hết các bản phân phối Linux hiện đại đều cài đặt sẵn ethtool. Tuy nhiên, nếu bạn chưa cài đặt, bạn có thể sử dụng trình quản lý gói của hệ thống để cài đặt nó. Ví dụ, trên Debian/Ubuntu:

sudo apt-get update
sudo apt-get install ethtool

Trên CentOS/RHEL/Fedora:

sudo yum install ethtool

Các lệnh Ethtool cơ bản

Dưới đây là một số lệnh ethtool cơ bản và thường dùng nhất:

  • Hiển thị thông tin card mạng:
    ethtool eth0
    Lệnh này sẽ hiển thị tất cả các thông tin về card mạng eth0, bao gồm tốc độ liên kết, chế độ song công, hỗ trợ Wake-on-LAN, và nhiều thông số khác.
  • Hiển thị thông tin trình điều khiển (driver):
    ethtool -i eth0
    Lệnh này hiển thị thông tin về trình điều khiển card mạng, bao gồm tên trình điều khiển, phiên bản và thông tin firmware.
  • Hiển thị thông tin liên kết:
    ethtool -s eth0
    Lệnh này thường được dùng để cấu hình tốc độ và chế độ song công, tuy nhiên, việc này thường được hệ thống tự động quản lý.
  • Thay đổi MTU (Maximum Transmission Unit):
    sudo ip link set mtu 9000 dev eth0
    Lệnh này đặt MTU của card mạng eth0 thành 9000 (Jumbo Frames). Lưu ý rằng việc thay đổi MTU có thể yêu cầu cấu hình tương ứng trên các thiết bị mạng khác.
  • Kiểm tra cáp mạng:
    ethtool -t eth0
    Lệnh này chạy kiểm tra cáp mạng để phát hiện các vấn đề về kết nối.

Ví dụ thực tế với Ethtool

Để hiểu rõ hơn về cách sử dụng ethtool, hãy cùng xem xét một vài ví dụ thực tế:

Ví dụ 1: Chẩn đoán sự cố tốc độ liên kết

Giả sử bạn nghi ngờ rằng card mạng của bạn không hoạt động ở tốc độ tối đa. Bạn có thể sử dụng lệnh ethtool eth0 để kiểm tra:

ethtool eth0
Settings for eth0:
        Supported ports: [ TP    MII ]
        Supported link modes:   10baseT/Half 10baseT/Full
                                100baseT/Half 100baseT/Full
                                1000baseT/Full
        Supported pause frame use: No
        Supports auto-negotiation: Yes
        Advertised link modes:  10baseT/Half 10baseT/Full
                                100baseT/Half 100baseT/Full
                                1000baseT/Full
        Advertised pause frame use: No
        Advertised auto-negotiation: Yes
        Link partner advertised link modes:  10baseT/Half 10baseT/Full
                                100baseT/Half 100baseT/Full
        Link partner advertised pause frame use: No
        Link partner advertised auto-negotiation: Yes
        Speed: 100Mb/s
        Duplex: Full
        Port: MII
        PHYAD: 1
        Transceiver: internal
        Auto-negotiation: on
        Supports Wake-on: pumbg
        Wake-on: g
        Current message level: 0x00000007 (7)
                               drv probe link
        Link detected: yes

Trong ví dụ trên, bạn có thể thấy rằng card mạng đang hoạt động ở tốc độ 100Mb/s và chế độ Full Duplex. Nếu bạn biết rằng card mạng và switch đều hỗ trợ tốc độ 1000Mb/s, bạn có thể thử kiểm tra cáp mạng hoặc cấu hình switch để đảm bảo rằng mọi thứ đều được thiết lập đúng cách.

Ví dụ 2: Bật Wake-on-LAN

Để bật tính năng Wake-on-LAN (WoL) trên card mạng eth0, bạn có thể sử dụng lệnh sau:

sudo ethtool -s eth0 wol g

Lệnh này sẽ bật tính năng WoL, cho phép bạn đánh thức máy tính từ xa bằng cách gửi một "magic packet" đến card mạng. Bạn có thể kiểm tra lại trạng thái WoL bằng lệnh ethtool eth0 và tìm dòng "Wake-on: g".

Ví dụ 3: Thay đổi MTU

Để thay đổi MTU (Maximum Transmission Unit) của card mạng eth0 thành 9000 (Jumbo Frames) bạn có thể sử dụng lệnh:

sudo ip link set mtu 9000 dev eth0

Tuy nhiên, cần lưu ý rằng việc sử dụng Jumbo Frames chỉ có ý nghĩa khi tất cả các thiết bị mạng trên đường truyền (router, switch, v.v.) đều hỗ trợ và được cấu hình cho Jumbo Frames. Nếu không, việc này có thể gây ra các vấn đề về kết nối.

Bảng so sánh Ethtool với các công cụ khác

Tính năng Ethtool ifconfig (deprecated) ip (iproute2)
Hiển thị thông tin card mạng Có, chi tiết Có, cơ bản Có, chi tiết
Thay đổi tốc độ và chế độ song công Không khuyến khích (thường tự động)
Kiểm tra cáp mạng Không Không
Quản lý Wake-on-LAN Không Không
Thay đổi MTU Không Có (ip link)
Tính khả dụng Rộng rãi Đã lỗi thời Rộng rãi

Các trường hợp sử dụng thực tế

  • Máy chủ: Trên các máy chủ, ethtool giúp quản trị viên theo dõi hiệu suất mạng, chẩn đoán sự cố và tối ưu hóa cấu hình. Ví dụ, trong một môi trường ảo hóa, ethtool có thể được sử dụng để theo dõi hiệu suất của các card mạng ảo (vNIC).
  • Máy tính để bàn: Mặc dù không phổ biến như trên máy chủ, ethtool vẫn có thể hữu ích cho người dùng máy tính để bàn để kiểm tra tốc độ liên kết, bật WoL, hoặc thay đổi MTU (nếu cần).
  • Thiết bị nhúng: Trên các thiết bị nhúng như router hoặc firewall, ethtool có thể được sử dụng để cấu hình và giám sát card mạng Ethernet.

FAQ (Câu hỏi thường gặp)

  1. Ethtool có an toàn không?

    Ethtool là một công cụ an toàn nếu được sử dụng đúng cách. Tuy nhiên, bạn nên cẩn thận khi thay đổi các thông số cấu hình, vì việc cấu hình sai có thể gây ra các vấn đề về mạng. Luôn luôn tham khảo tài liệu và hiểu rõ tác động của các thay đổi trước khi thực hiện.

  2. Làm thế nào để khôi phục cấu hình gốc sau khi thay đổi bằng ethtool?

    Khởi động lại card mạng hoặc khởi động lại hệ thống thường sẽ khôi phục cấu hình gốc. Bạn cũng có thể lưu cấu hình hiện tại trước khi thay đổi để có thể dễ dàng khôi phục lại sau này.

  3. Tại sao tôi không thể thay đổi một số thông số bằng ethtool?

    Một số thông số có thể bị giới hạn bởi trình điều khiển (driver) card mạng hoặc bởi phần cứng. Bạn cũng có thể cần quyền root (sudo) để thay đổi một số thông số nhất định.

Kết luận

Ethtool là một công cụ vô cùng mạnh mẽ và hữu ích cho việc quản lý và cấu hình card mạng trong Linux. Bằng cách nắm vững các lệnh cơ bản và hiểu rõ các tùy chọn cấu hình, bạn có thể tận dụng tối đa tiềm năng của card mạng và đảm bảo hiệu suất mạng tối ưu. Hy vọng bài viết này đã cung cấp cho bạn một cái nhìn tổng quan về ethtool và giúp bạn tự tin hơn trong việc sử dụng công cụ này.

Last Updated : 22/08/2025