Công cụ ip thuộc gói iproute2 là thành phần cốt lõi trong hệ sinh thái mạng Linux hiện đại, thay thế dần các tiện ích cổ điển như ifconfig, route, hay arp. Cú pháp tổng quát của nó được thiết kế theo mô hình đối tượng–hành động:
ip [OPTIONS] OBJECT {COMMAND | help}
Trong đó:
- OBJECT xác định loại tài nguyên mạng cần thao tác — bao gồm
link,addr,route,rule,neigh,tunnel,xfrm, và nhiều đối tượng khác liên quan đến định tuyến chính sách, multicast, hoặc bảo mật mạng. - OPTIONS điều chỉnh cách hiển thị hoặc phạm vi áp dụng: ví dụ
-4(chỉ IPv4),-6(chỉ IPv6),-s(hiển thị thống kê chi tiết),-h(định dạng dễ đọc),-o(một dòng/một bản ghi),-f inet(tương đương-4). - COMMAND là hành động cụ thể như
add,del,flush,show,set,chg— luôn yêu cầu chỉ rõ đối tượng và tham số liên quan.
Mọi cấu hình bằng ip đều mang tính tạm thời — sẽ mất khi hệ thống khởi động lại. Để duy trì vĩnh viễn, cần cập nhật vào tệp cấu hình mạng tương ứng (ví dụ: /etc/sysconfig/network-scripts/ifcfg-eth0 trên RHEL/CentOS hoặc /etc/netplan/*.yaml trên Ubuntu 18.04+).
1. Các đối tượng phổ biến và chức năng
link — Quản lý trạng thái và thuộc tính thiết bị vật lý/virtual (UP/DOWN, MTU, QDisc)
addr — Gán/xóa địa chỉ IP/IPv6 cho giao diện
route — Thao tác bảng định tuyến (thêm, xóa, sửa route)
neigh — Kiểm soát bảng ARP (IPv4) hoặc NDISC (IPv6)
rule — Định nghĩa quy tắc định tuyến đa bảng (policy routing)
tunnel — Thiết lập và giám sát các đường hầm mạng (GRE, IPIP…)
xfrm — Quản lý các biến đổi bảo mật IPSec (SA, policy)
Tên đối tượng có thể viết đầy đủ, rút gọn (ví dụ address → addr) hoặc thậm chí chỉ một ký tự (a).
2. Một số tùy chọn quan trọng
-4 Tương đương -f inet (chỉ IPv4)
-6 Tương đương -f inet6 (chỉ IPv6)
-s Hiển thị thông tin mở rộng (ví dụ: đếm packet, lỗi)
-h Định dạng số liệu theo đơn vị dễ đọc (K/M/G)
-o Xuất mỗi mục trên một dòng, dùng dấu gạch chéo ngược (\) thay newline
-r Giải quyết tên miền thay vì in địa chỉ IP thô
3. Thực hành với các tác vụ thường gặp
Hiển thị địa chỉ IP
Liệt kê toàn bộ địa chỉ trên mọi giao diện:
ip -br addr show
Hoặc dạng chi tiết hơn:
ip addr show
Xem thông tin chỉ trên giao diện ens33:
ip addr show dev ens33
$ ip -br addr show
lo UNKNOWN 127.0.0.1/8 ::1/128
ens33 UP 192.168.1.42/24 fe80::a00:27ff:fe1d:5e7c/64
docker0 DOWN 172.17.0.1/16
Thêm/xóa địa chỉ IP động
Gán địa chỉ phụ (secondary) cho ens33:
ip addr add 192.168.1.200/24 dev ens33
Xóa địa chỉ cụ thể:
ip addr del 192.168.1.200/24 dev ens33
Xóa toàn bộ địa chỉ IPv4 trên giao diện:
ip -4 addr flush dev ens33
Quản lý trạng thái giao diện
Tắt/gỡ kích hoạt thiết bị:
ip link set dev ens33 down
ip link set dev ens33 up
Thay đổi MTU hoặc đặt nhãn giao diện:
ip link set dev ens33 mtu 1400
ip link set dev ens33 name eth-main
Định tuyến cơ bản
Xem bảng định tuyến hiện tại:
ip route show
Thêm route mạng con qua giao diện:
ip route add 10.10.50.0/24 via 192.168.1.1 dev ens33
Thêm route mặc định mới:
ip route replace default via 192.168.1.254 dev ens33
Xóa route mặc định hiện tại:
ip route del default
Quản lý bảng ARP/NDISC
Hiển thị các mục đã học:
ip neigh show
Xóa mục không hợp lệ:
ip neigh flush nud failed
Thêm mục tĩnh (static ARP):
ip neigh add 192.168.1.100 lladdr 00:11:22:33:44:55 dev ens33 nud permanent