Trong Linux, bộ công cụ mạng truyền thống bao gồm ifconfig, netstat, route,… từng được sử dụng phổ biến nhưng hiện tại đã chính thức bị tuyên bố lỗi thời, ngừng phát triển và bị loại bỏ khỏi các bản phân phối lớn như RHEL/CentOS 7+, Debian, và Ubuntu mới nhất. Trong bài viết dưới đây, mình sẽ cùng bạn tìm hiểu rõ về các lệnh Linux đã lỗi thời và giải pháp thay thế hiện đại, tiện ích hơn.
Những điểm chính
- Quan điểm của mình: Việc chuyển đổi từ net-tools sang iproute2 là yêu cầu bắt buộc đối với bất kỳ quản trị viên hệ thống nào muốn đảm bảo tính ổn định, tốc độ và khả năng tương thích tốt nhất cho máy chủ.
- Lý do không nên sử dụng lệnh cũ: Hiểu rõ các lý do quan trọng cần từ bỏ các lệnh
net-toolscũ, từ việc ngừng phát triển, hiệu suất thấp đến các rủi ro bảo mật. - Trường hợp ưu tiên lệnh mới: Nắm được các tình huống cụ thể nên sử dụng bộ công cụ
iproute2hiện đại, đặc biệt là khi làm việc với hệ thống tải cao và container. - Bảng tham chiếu chuyển đổi: Có được một bảng tra cứu nhanh, giúp bạn dễ dàng chuyển đổi từ các lệnh cũ sang các lệnh mới tương ứng.
- Phân tích chi tiết các trường hợp phổ biến: Thành thạo cách sử dụng các lệnh mới để thay thế hoàn toàn các lệnh cũ, đồng thời hiểu rõ các ưu điểm vượt trội của chúng.
- Giải đáp thắc mắc (FAQ): Có được câu trả lời cho các câu hỏi thực tế về việc liệu có nên cài đặt lại
net-tools, tốc độ củaiproute2và khi nào nên dùngnetstat.
Vì sao không nên sử dụng các lệnh Linux đã lỗi thời?
Mặc dù người dùng vẫn có thể cài đặt thủ công các gói lệnh cũ thông qua kho lưu trữ bổ sung, nhưng việc sử dụng sẽ gây ra nhiều vấn đề về kỹ thuật:
- Gói phần mềm không còn được duy trì: Hiện nay, gói
net-toolsđã không còn nhận được các bản cập nhật tính năng mới trong nhiều năm qua, điều này dẫn đến những nguy cơ tiềm ẩn về lỗ hổng bảo mật cho hệ thống. - Khả năng tương thích bị hạn chế: Các câu lệnh cũ không còn hỗ trợ tốt cho những công nghệ mạng hiện đại như Network Namespaces, Bonding, VLAN hoặc các cấu hình IPv6 phức tạp.
- Hiệu suất xử lý thấp: Những công cụ cũ hoạt động bằng cách đọc dữ liệu từ hệ thống file
/proc, cơ chế này gây ra độ trễ lớn khi hệ thống phải xử lý lượng kết nối lớn. Trong khi đó, các công cụ mới giao tiếp trực tiếp với Kernel thông qua Netlink API nên mang lại tốc độ phản hồi nhanh chóng hơn. - Không được tích hợp mặc định: Việc lệ thuộc vào các lệnh cũ sẽ gây khó khăn cho quản trị viên khi làm việc trên các hệ thống tối giản hoặc môi trường Container (như Docker/Kubernetes), bởi vì các nền tảng này hiện nay mặc định chỉ tích hợp sẵn bộ công cụ
iproute2.

Khi nào nên ưu tiên các lệnh Linux hiện đại?
Người quản trị hệ thống nên chuyển hẳn sang các công cụ mới trong các tình huống sau:
- Khi hệ thống chịu tải cao: Các lệnh cũ đọc file hệ thống có thể gây độ trễ lớn, trong khi các lệnh mới truy xuất trực tiếp từ Kernel cho tốc độ phản hồi nhanh chóng hơn.
- Khi làm việc với Container: Lệnh cũ thường không tương thích với Network Namespace nên bạn hãy sử dụng lệnh mới để quản lý và hiển thị chính xác các interface ảo hay bridge mạng phức tạp.
- Khi viết Script tự động hóa: Các lệnh hiện đại hỗ trợ xuất dữ liệu ra chuẩn JSON giúp lập trình viên xử lý dữ liệu chính xác tuyệt đối thay vì phải cắt lọc văn bản thô.
- Khi quản lý IP phụ: Lệnh
ip addrcho phép gán nhiều IP trên cùng một card mạng một cách tự nhiên, thay thế hoàn toàn cơ chế tạo alias giả lập củaifconfig. - Khi dùng các bản phân phối tối giản: Hầu hết các hệ điều hành hiện đại mặc định không còn cài net-tools nên việc thành thạo iproute2 giúp bạn thao tác được ngay trên mọi môi trường.

Bảng tham chiếu chuyển đổi lệnh
Dưới đây là danh sách các lệnh thuộc gói net-tools đã bị thay thế và các lệnh tương ứng trong bộ iproute2 hoặc các gói hiện đại khác:
| Chức năng | Lệnh cũ | Lệnh mới |
|---|---|---|
| Cấu hình ARP | arp | ip neighbor hoặc ip n |
| Cấu hình Interface | ifconfig | ip addr, ip link |
| Cấu hình Tunnel | iptunnel | ip tunnel |
| Cấu hình Wireless | iwconfig | iw |
| Đổi tên Interface | nameif | ip link, ifrename |
| Thống kê mạng | netstat | ss, ip -s link, ip route |
| Bảng định tuyến | route | ip route hoặc ip r |
Phân tích chi tiết các trường hợp phổ biến
Thay thế ifconfig bằng ip addr
ifconfig (Cũ):
ifconfig
Từ kết quả trên cho thấy lệnh ifconfig cũ có một số hạn chế như:
- Không liệt kê tất cả interface như altname, master, link-netnsid,…
- Không hỗ trợ hiển thị theo định dạng CIDR.
- Không có thông tin qdisc, group, state, scope, valid_lft, preferred_lft.
- Không hiển thị đầy đủ các veth@ifXXX interface dùng cho container/Docker.
ip addr show (Mới):
ip addr show
ip link showKết quả cho thấy lệnh ip addr show hiển thị nhiều thông tin hơn về lớp mạng:
- Hỗ trợ hiển thị địa chỉ theo chuẩn CIDR.
- Hiển thị chi tiết trạng thái vật lý và logic:
state UP,LOWER_UP. - Cung cấp thông tin về vòng đời địa chỉ IP:
valid_lft,preferred_lft. - Tương thích hoàn toàn với cơ chế đặt tên interface mới như
enp3s0,ens18.

Thay thế netstat bằng ss
netstat và ss là các công cụ được ứng dụng trong việc kiểm tra các cổng đang mở hoặc các kết nối mạng:
netstat -tulnp (Cũ):
netstat -tulnp
Lệnh netstat hiển thị tốt các socket TCP/UDP đang ở trạng thái LISTEN kèm PID và tên chương trình. Tuy nhiên, chương trình chưa hỗ trợ đầy đủ cho chuẩn IPv6, không cho biết cụ thể socket đang gắn với interface nào và thiếu đi các khả năng lọc nâng cao theo trạng thái, cổng hay tiến trình.
Lỗi thường gặp: Khi chuyển sang dùng lệnh ss, nhiều bạn thường quên thêm quyền sudo hoặc chạy dưới quyền root (tham số -p). Điều này dẫn đến việc hệ thống từ chối hiển thị tên tiến trình đang chiếm giữ Port, khiến bạn phán đoán sai phần mềm nào đang gây ra lỗi mạng.
ss -tulnp (Mới):
ss -tulnp
ss có tốc độ truy xuất thông tin socket trực tiếp từ kernel space, đồng thời hiển thị đầy đủ thông tin tiến trình như users, pid, fd,… Lệnh này cũng hỗ trợ hiển thị các giao thức mở rộng như DCCP, raw sockets,… và trạng thái kết nối chi tiết như TIME-WAIT, ESTABLISHED.
Bảng chuyển đổi nhanh cho Netstat:
| Mục đích | Lệnh cũ | Lệnh mới |
|---|---|---|
| Liệt kê cổng mở | netstat -tulnp | ss -tulnp |
| Thống kê Interface | netstat -i | ip -s link |
| Xem bảng định tuyến | netstat -r | ip route |
| Xem Multicast | netstat -g | ip maddr |
Thay thế route bằng ip route
route -n (Cũ):
route -n
route -n tồn tại nhiều hạn chế như:
- Sử dụng định dạng mặt nạ mạng kiểu cũ
255.255.255.0, gây khó khăn khi tính toán subnet. - Các cờ như
U,Ghiển thị khó hiểu cho người mới bắt đầu. - Thiếu thông tin về nguồn và giao thức định tuyến.
ip route show (Mới):
ip route showip route show có nhiều ưu điểm nổi bật như:
- Cú pháp sử dụng định dạng CIDR (
/24,/16) trực quan, hiện đại. - Hiển thị rõ ràng các thông số nâng cao như
proto(giao thức),scope(phạm vi),src(địa chỉ nguồn ưu tiên). - Phù hợp khi debug các vấn đề định tuyến trong môi trường phức tạp như VPN, Docker, hoặc hệ thống có nhiều card mạng.

Câu hỏi thường gặp
Có thể cài đặt lại net-tools trên RHEL/CentOS 7+ để tiếp tục dùng ifconfig, route, netstat không?
Mặc dù bạn có thể cài đặt thủ công, nhưng không được khuyến khích vì gói net-tools đã ngừng được duy trì, không hỗ trợ công nghệ mạng hiện đại, và sẽ gây nguy cơ lỗ hổng bảo mật.
iproute2 và các lệnh mới có tốc độ nhanh hơn net-tools không?
Có vì công cụ mới giao tiếp trực tiếp với Kernel thông qua Netlink API, trong khi công cụ cũ phải đọc dữ liệu từ hệ thống file /proc gây độ trễ lớn khi xử lý lượng kết nối lớn.
Có nên dùng netstat thay vì ss trên các hệ thống cũ không?
Không nên ưu tiên netstat, trừ khi hệ thống đó quá cũ và không có sẵn gói iproute2.
Việc chuyển đổi lệnh Linux đã lỗi thời từ bộ công cụ net-tools sang iproute2 mang lại cho bạn hiệu suất cao hơn với cú pháp nhất quán và khả năng tương thích tuyệt đối với các công nghệ mạng mới. Chúc bạn nắm được những thông tin hữu ích và mời bạn các bài viết thuộc chủ đề Linux ngay bên dưới:




