networkctl là công cụ dòng lệnh dùng để giám sát trạng thái các thiết bị mạng được quản lý bởi systemd-networkd. Lệnh này cho phép xem chi tiết cấu hình và liên kết, hỗ trợ quản trị viên chẩn đoán, xử lý sự cố mạng nhanh chóng. Trong bài viết dưới đây, mình sẽ hướng dẫn bạn cách dùng lệnh networkctl kiểm tra trạng thái các thiết bị mạng chi tiết, chính xác.
Những điểm chính
- Định nghĩa networkctl: Hiểu rõ
networkctllà công cụ dòng lệnh thuộcsystemd, dùng để giám sát trạng thái các thiết bị mạng được quản lý bởisystemd-networkd. - Cú pháp: Nắm vững cấu trúc câu lệnh và các tùy chọn phổ biến để truy xuất dữ liệu mạng chính xác từ cơ bản đến định dạng JSON nâng cao.
- Lợi ích khi sử dụng: Nắm được các ưu điểm của
networkctlnhư tích hợp sẵn, cung cấp trạng thái chuyên sâu và hỗ trợ gỡ lỗi hiệu quả. - Các trường hợp nên sử dụng: Biết được các trường hợp cụ thể nên dùng
networkctl, đặc biệt khi hệ thống sử dụngsystemd-networkdvà cần chẩn đoán trạng thái vận hành thực tế. - Cách sử dụng chi tiết: Thành thạo các lệnh thực tế để kiểm tra trạng thái dịch vụ, liệt kê và xem chi tiết thông tin các card mạng, cũng như bật/tắt thiết bị.
- Lưu ý khi sử dụng: Nắm được các lưu ý quan trọng khi sử dụng lệnh
networkctl. - Giải đáp thắc mắc: Có được câu trả lời cho các vấn đề thường gặp như cách xử lý lỗi “No networks available”, xem trạng thái DHCP và khả năng tích hợp với các công cụ giám sát khác.
networkctl là gì?
networkctl là một tiện ích dòng lệnh thuộc hệ sinh thái systemd, đóng vai trò là giao diện chính để tương tác với dịch vụ quản lý mạng systemd-networkd. Công cụ này cho phép quản trị viên truy xuất trạng thái thời gian thực của các liên kết mạng, kiểm tra cấu hình thiết bị và hỗ trợ đắc lực trong việc chẩn đoán, xử lý các sự cố kết nối trên hệ thống Linux mà không cần cài đặt thêm phần mềm bên ngoài.

Cú pháp và các tùy chọn phổ biến
Cú pháp cơ bản của lệnh là:
networkctl [OPTIONS...] COMMAND [LINK...]Trong đó:
- [OPTIONS…]: Là các tùy chọn đi kèm để thay đổi cách lệnh hoạt động hoặc định dạng đầu ra.
- COMMAND: Là mệnh lệnh chính bạn muốn thực hiện.
- [LINK…]: Là đối tượng tác động (thường là tên card mạng hoặc ID của card mạng).
Dưới đây là bảng tổng hợp các tùy chọn phổ biến thường được sử dụng cùng networkctl:
| Tùy chọn | Mô tả |
|---|---|
-a, --all | Hiển thị tất cả các liên kết mạng cùng với trạng thái của chúng. |
-s, --stats | Hiển thị thống kê lưu lượng mạng kèm theo trạng thái. |
-l, --full | Hiển thị đầy đủ thông tin đầu ra mà không cắt bớt nội dung (không ellipsize). |
-n, --lines=N | Kiểm soát số dòng nhật ký hiển thị (mặc định là 10). |
--drop-in=NAME | Dùng khi edit để chỉnh sửa file cấu hình bổ sung (drop-in) thay vì file chính. |
--json=MODE | Xuất kết quả dưới định dạng JSON (các chế độ: short, pretty, off) để phục vụ cho việc lập trình hoặc tự động hóa. |
--runtime | Thao tác trên tệp tạm thời trong /run/. |
--stdin | Đọc nội dung cấu hình từ standard input (không mở editor). |
--no-reload | Không tải lại các dịch vụ (networkd/udevd) sau khi thực hiện edit, mask hoặc unmask. |
--no-ask-password | Không hiển thị yêu cầu nhập mật khẩu khi thực hiện các tác vụ cần quyền quản trị. |
--no-legend | Ẩn phần tiêu đề cột và chú thích ở cuối, chỉ hiển thị dữ liệu thô. |
--no-pager | Hiển thị toàn bộ nội dung ngay lập tức thay vì phân trang (pipe into pager). |
-h, --help | In ra hướng dẫn sử dụng ngắn gọn và thoát chương trình. |
Những lợi ích khi sử dụng networkctl
Việc sử dụng networkctl mang lại nhiều lợi ích cho việc quản trị mạng trên Linux:
- Tích hợp sẵn và đồng bộ với hệ thống: networkctl là thành phần mặc định của bộ công cụ systemd, giúp người dùng quản lý mạng trên các bản phân phối Linux hiện đại mà không cần cài đặt thêm phần mềm bên thứ ba.
- Cung cấp trạng thái hoạt động chuyên sâu: Thay vì chỉ hiển thị trạng thái vật lý như các lệnh cũ, networkctl cho biết chính xác trạng thái vận hành của kết nối như routable, degraded hoặc configuring).
- Hỗ trợ gỡ lỗi cấu hình hiệu quả: Bạn có thể nhanh chóng xác định file cấu hình mạng nào đang được áp dụng cho từng thiết bị, giúp việc truy vết lỗi cấu hình trở nên dễ dàng hơn.
- Hiển thị thông tin quản trị toàn diện: networkctl tổng hợp đầy đủ các thông tin quan trọng như địa chỉ IP, DNS Server, NTP Server và trạng thái DHCP trong một giao diện dòng lệnh trực quan và dễ đọc.
- Hỗ trợ định dạng JSON: Lệnh này hỗ trợ xuất dữ liệu dưới dạng JSON, giúp các lập trình viên dễ dàng phân tích cú pháp và tích hợp vào các script tự động hóa.
- Quản lý cấu hình động: Người dùng có thể nạp lại các tệp cấu hình mạng hoặc gia hạn DHCP mà không cần khởi động lại toàn bộ hệ thống.
- Khả năng khám phá mạng: Công cụ hỗ trợ giao thức LLDP (Link Layer Discovery Protocol) để phát hiện các thiết bị lân cận trên cùng một liên kết vật lý.

Khi nào nên sử dụng lệnh networkctl
Bạn nên ưu tiên sử dụng lệnh networkctl trong các trường hợp sau đây để đảm bảo hiệu quả quản trị mạng:
- Khi hệ thống sử dụng systemd-networkd: networkctl là công cụ tương tác chuẩn dành riêng cho systemd-networkd, phổ biến trên các phiên bản Linux dành cho máy chủ.
- Khi cần chẩn đoán trạng thái vận hành thực tế: networkctl cho biết kết nối có thực sự định tuyến được, đang cấu hình hay bị suy giảm chức năng.
- Khi kỹ thuật viên cần xác định file cấu hình nguồn: Lệnh này giúp bạn tìm ra chính xác tập tin .network nào đang chịu trách nhiệm điều khiển một giao diện mạng cụ thể, giúp việc gỡ lỗi cấu hình sai trở nên nhanh chóng.
- Khi cần kiểm tra thông tin DNS và NTP theo từng giao diện: networkctl hiển thị trực quan các máy chủ DNS và NTP được cấp phát cho từng card mạng, giúp bạn xác minh xem DHCP server có cấp đúng thông tin hay không.
- Khi hệ thống gặp sự cố kết nối nhưng trạng thái vật lý vẫn bình thường: Việc kiểm tra bằng networkctl giúp loại trừ các lỗi ở tầng vật lý và tập trung vào lỗi ở tầng cấu hình dịch vụ hoặc cấp phát IP.

Cách sử dụng lệnh networkctl chi tiết
Bật dịch vụ networkctl
Các máy Linux thông thường sẽ không bật sẵn dịch vụ systemd-networkd nên khi chạy lệnh networkctl sẽ báo lỗi sau:

Bạn thực hiện bật dịch vụ qua systemctl bằng các lệnh sau:
sudo systemctl start systemd-networkd
sudo systemctl enable systemd-networkd
sudo systemctl status systemd-networkdTrong đó:
- start: Bật dịch vụ.
- enable: Mặc định luôn bật dịch vụ sau khi reboot.
- status: Trạng thái dịch vụ.
- systemd-networkd: Dịch vụ bạn muốn thao tác.

Liệt kê danh sách các thiết bị mạng
Để xem danh sách tổng quan các giao diện mạng đang có trên hệ thống, bạn gõ lệnh networkctl mà không cần tham số.
networkctl
Giải thích các thông số hiển thị:
- IDX (Index): Số thứ tự định danh của card mạng.
- LINK: Tên của thiết bị (ví dụ: eth0, wlan0, ens33).
- TYPE: Loại thiết bị kết nối.
- ethernet: Mạng có dây (LAN).
- wlan: Mạng không dây (Wifi).
- loopback: Giao diện mạng nội bộ (localhost).
- bridge: Cầu nối mạng ảo.
- OPERATIONAL: Trạng thái vận hành thực tế.
- routable: Đã kết nối, có IP và sẵn sàng truyền tải dữ liệu.
- carrier: Đã nhận diện liên kết vật lý (đã cắm dây hoặc bắt được sóng) nhưng chưa cấu hình IP.
- no-carrier: Không có tín hiệu kết nối (đứt dây hoặc chưa kết nối Wifi).
- degraded: Đang gặp lỗi hoặc thiếu cấu hình quan trọng.
- SETUP: Trạng thái quản lý của dịch vụ.
- configured: Đã được cấu hình thành công bởi systemd-networkd.
- unmanaged: Thiết bị đang được quản lý bởi công cụ khác (như NetworkManager) hoặc chưa được cấu hình.
Xem trạng thái tổng quan của hệ thống
Lệnh networkctl status sẽ hiển thị thông tin toàn cảnh về mạng của hệ thống, bao gồm các máy chủ DNS, NTP và Gateway đang được sử dụng.
networkctl status
Xem trạng thái chi tiết một card mạng
Để kiểm tra sâu hơn về một thiết bị như địa chỉ IP, địa chỉ MAC, Driver đang sử dụng,… bạn thêm tên thiết bị vào sau câu lệnh.
Ví dụ: Kiểm tra card wifi có tên wlp5s0:
networkctl status wlp5s0
Bật hoặc tắt thiết bị mạng
Trong quá trình khắc phục sự cố, bạn có thể cần khởi động lại giao diện mạng. networkctl hỗ trợ việc này thông qua hai lệnh up và down.
Tắt thiết bị:
sudo networkctl down <TÊN_INTERFACE>Bật thiết bị:
sudo networkctl up <TÊN_INTERFACE>
Lưu ý
Bạn cần thay thế bằng tên thiết bị thực tế (ví dụ: eth0).
Gia hạn địa chỉ IP
Lệnh networkctl với tùy chọn renew yêu cầu hệ thống gia hạn các cấu hình động, ví dụ như xin cấp lại IP từ DHCP server:
networkctl renew DEVICELệnh này rất hữu ích khi bạn muốn làm mới kết nối mạng mà không cần ngắt kết nối vật lý.
Tra cứu tài liệu hướng dẫn
Để tìm hiểu thêm về các tùy chọn nâng cao khác, hệ thống cung cấp tài liệu hướng dẫn đầy đủ thông qua các lệnh trợ giúp:
- Xem hướng dẫn nhanh:
networkctl -h- Xem tài liệu chi tiết (Manual page):
man networkctlNhững lưu ý khi sử dụng networkctl
Khi làm việc với networkctl, người dùng cần chú ý những điểm sau:
- Phụ thuộc dịch vụ systemd-networkd: Công cụ chỉ hiển thị thông tin chính xác khi dịch vụ này đang hoạt động.
- Dùng networkctl để giám sát, không phải để cấu hình: networkctl dùng để kiểm tra hoặc bật/tắt thiết bị, việc đặt IP tĩnh hay DNS phải thực hiện bằng cách sửa file cấu hình .network.
- Yêu cầu quyền quản trị: Các lệnh thay đổi trạng thái kết nối (up, down, renew) bắt buộc phải chạy dưới quyền sudo hoặc root.
- Trạng thái Degraded: Thông báo này nghĩa là thiết bị đã kết nối nhưng thiếu một số cấu hình (như DNS), không đồng nghĩa với việc mất mạng hoàn toàn.
- Trạng thái Routable và Online: Trạng thái routable nghĩa là liên kết đã có địa chỉ IP và có thể định tuyến, nhưng chưa chắc đã kết nối được Internet. Trạng thái online phụ thuộc vào việc tất cả các liên kết bắt buộc đã sẵn sàng hay chưa.

Câu hỏi thường gặp
Vì sao lệnh networkctl thông báo “No networks available”?
Nguyên nhân có thể do:
– Dịch vụ systemd-networkd chưa được khởi động hoặc bị tắt.
– File cấu hình .network cho thiết bị chưa tồn tại hoặc bị lỗi cú pháp.
– Thiết bị mạng chưa được gắn link hoặc driver chưa nhận.
Giải pháp: Bạn hãy kiểm tra và đảm bảo đã khởi động dịch vụ, xác thực file cấu hình và kiểm tra thiết bị phần cứng.
Lệnh networkctl có hỗ trợ xem trạng thái DHCP không,
Kết quả của networkctl status sẽ nêu rõ cách thiết lập IP (DHCP hay static), hiển thị địa chỉ IP nhận được, địa chỉ máy chủ DHCP và trạng thái cấp phát động hoặc tĩnh tương ứng.
networkctl có thể tích hợp với các công cụ giám sát như Prometheus không?
networkctl chủ yếu dùng để giám sát thủ công qua CLI. Tuy nhiên, bạn có thể kết hợp với script kiểm tra trạng thái định kỳ hoặc sử dụng API từ systemd-networkd cho việc tích hợp vào giải pháp giám sát như Prometheus hoặc Zabbix thông qua exporter hoặc cURL.
networkctl cung cấp khả năng quản trị, giám sát mạng chủ động: Từ phát hiện lỗi, truy vết cấu hình cho đến cập nhật trạng thái hoạt động của từng card mạng. Việc nắm vững và sử dụng thành thạo networkctl sẽ giúp bạn tiết kiệm thời gian khắc phục sự cố, đồng thời nâng cao tính minh bạch vận hành hệ thống mạng máy chủ. Chúc bạn thao tác thành công và hẹn gặp lại bạn trong các bài viết tiếp theo.




