Базовый синтаксис
ip [-OPTIONS] OBJECT [COMMAND [ARGUMENTS]]
Главные OBJECT'ы (объекты):
| object | про что |
|---|---|
addr | IP-адреса на интерфейсах |
link | сетевые интерфейсы (up/down, MAC, MTU, type) |
route | таблица маршрутизации |
neigh | соседи (ARP/NDP) |
rule | policy-routing rules |
netns | network namespaces (см. namespaces) |
tunnel | tunnel-интерфейсы (gre, ipip, sit) |
xfrm | IPsec |
monitor | live-стрим netlink-событий |
Полезные опции
-br- brief формат (одна строка на запись)-4/-6- только IPv4 / IPv6-c- colorize-j- JSON вывод (отлично для скриптов)-s- статистика (счётчики)
Примеры по объектам
addr
bash
ip -4 -br addr # компактный список IPv4
ip addr show eth0 # один интерфейс детально
sudo ip addr add 10.0.0.5/24 dev eth0
sudo ip addr del 10.0.0.5/24 dev eth0
link
bash
ip -br link # все интерфейсы кратко
sudo ip link set eth0 down / up
sudo ip link set eth0 mtu 9000
sudo ip link set eth0 address aa:bb:cc:00:11:22
sudo ip link add veth0 type veth peer name veth1 # см. [[veth-pair]]
route
bash
ip route # все маршруты
ip route get 8.8.8.8 # какой выберется для адреса
sudo ip route add 10.5.0.0/16 via 10.0.0.1
sudo ip route add default via 192.168.1.1
sudo ip route del 10.5.0.0/16
neigh
bash
ip neigh # ARP-таблица (см. [[arp]])
sudo ip neigh flush all
sudo ip neigh add 10.0.0.5 lladdr aa:bb:cc:dd:ee:ff dev eth0
netns
bash
sudo ip netns add red
ip netns list
sudo ip netns exec red bash # выполнить команду внутри netns
sudo ip link set veth1 netns red
ip monitor - live-события
Очень полезный режим для дебага сетевых событий:
bash
ip monitor # стрим всех netlink-событий: link/addr/route/neigh
ip monitor route # только изменения маршрутов
Когда что-то «само» меняется - посмотри что monitor покажет.
JSON для автоматизации
bash
ip -j addr show eth0 | jq '.[0].addr_info[] | select(.family=="inet") | .local'
▸"10.0.0.5"
Это правильный способ парсинга ip в скриптах - не grep по тексту.