ip — Network Configuration
If you like this project, consider supporting me on Buy Me a Coffee ☕️
tags:
- network
- sysadmin
-
linux
ip — Network Configuration Utility
ip is the primary command-line tool from the iproute2 package for configuring network interfaces, routing, tunnels, and ARP entries on Linux. It replaces the legacy ifconfig, route, and arp commands, providing a unified and more powerful interface.
📚 Official Docs / Официальная документация: ip(8)
📍 Address Management
Show Addresses
ip addr # Show all addresses / Показать все адреса
ip addr show # Same as above / То же что выше
ip -brief addr # Brief format / Краткий формат
ip -4 addr # IPv4 only / Только IPv4
ip -6 addr # IPv6 only / Только IPv6
ip addr show dev eth0 # Show for specific interface / Показать для конкретного интерфейса
Add Addresses
sudo ip addr add 10.0.0.10/24 dev eth0 # Add IPv4 address / Добавить IPv4 адрес
sudo ip addr add 2001:db8::10/64 dev eth0 # Add IPv6 address / Добавить IPv6 адрес
sudo ip addr add 192.168.1.10/24 broadcast 192.168.1.255 dev eth0 # With broadcast / С broadcast
Delete Addresses
sudo ip addr del 10.0.0.10/24 dev eth0 # Delete address / Удалить адрес
sudo ip addr flush dev eth0 # Remove all addresses / Удалить все адреса
🔗 Link Management
Show Links
ip link # Show all links / Показать все ссылки
ip link show # Same as above / То же что выше
ip -brief link # Brief format / Краткий формат
ip -s link # With statistics / Со статистикой
ip -s -s link # Detailed statistics / Подробная статистика
Link Control
sudo ip link set eth0 up # Bring interface up / Поднять интерфейс
sudo ip link set eth0 down # Bring interface down / Опустить интерфейс
sudo ip link set eth0 mtu 1500 # Set MTU / Установить MTU
sudo ip link set eth0 address 00:11:22:33:44:55 # Change MAC / Изменить MAC
sudo ip link set eth0 promisc on # Enable promiscuous mode / Включить promiscuous режим
Create Virtual Interfaces
sudo ip link add veth0 type veth peer name veth1 # Create veth pair / Создать veth пару
sudo ip link add br0 type bridge # Create bridge / Создать bridge
sudo ip link set eth0 master br0 # Add to bridge / Добавить в bridge
Delete Links
sudo ip link delete veth0 # Delete interface / Удалить интерфейс
sudo ip link delete br0 type bridge # Delete bridge / Удалить bridge
🗺️ Routing
Show Routes
ip route # Show routing table / Показать таблицу маршрутизации
ip route show # Same as above / То же что выше
ip -4 route # IPv4 routes / IPv4 маршруты
ip -6 route # IPv6 routes / IPv6 маршруты
ip route get 8.8.8.8 # Show route to IP / Показать маршрут к IP
Add Routes
sudo ip route add 192.168.1.0/24 via 10.0.0.1 # Add route / Добавить маршрут
sudo ip route add default via 10.0.0.1 # Add default gateway / Добавить шлюз по умолчанию
sudo ip route add 192.168.1.0/24 dev eth0 # Add direct route / Добавить прямой маршрут
sudo ip route add 192.168.1.0/24 via 10.0.0.1 metric 100 # With metric / С метрикой
Delete Routes
sudo ip route del 192.168.1.0/24 # Delete route / Удалить маршрут
sudo ip route del default via 10.0.0.1 # Delete default gateway / Удалить шлюз по умолчанию
sudo ip route flush cache # Flush routing cache / Очистить кэш маршрутизации
🏘️ Neighbor (ARP/NDP)
Show Neighbors
ip neigh # Show ARP/NDP table / Показать таблицу ARP/NDP
ip neigh show # Same as above / То же что выше
ip -4 neigh # IPv4 neighbors (ARP) / IPv4 соседи (ARP)
ip -6 neigh # IPv6 neighbors (NDP) / IPv6 соседи (NDP)
Manage Neighbors
sudo ip neigh add 192.168.1.10 lladdr 00:11:22:33:44:55 dev eth0 # Add entry / Добавить запись
sudo ip neigh del 192.168.1.10 dev eth0 # Delete entry / Удалить запись
sudo ip neigh flush dev eth0 # Flush neighbors / Очистить соседей
🚇 Tunnels & VLANs
VLANs
sudo ip link add link eth0 name eth0.100 type vlan id 100 # Create VLAN / Создать VLAN
sudo ip addr add 192.168.100.1/24 dev eth0.100 # Add IP to VLAN / Добавить IP в VLAN
sudo ip link set eth0.100 up # Bring VLAN up / Поднять VLAN
GRE Tunnels / GRE
sudo ip tunnel add gre1 mode gre remote <REMOTE_IP> local <LOCAL_IP> ttl 255
sudo ip addr add 10.0.0.1/30 dev gre1
sudo ip link set gre1 up
VXLAN
sudo ip link add vxlan0 type vxlan id 42 dev eth0 dstport 4789 group 239.1.1.1
sudo ip addr add 10.0.0.1/24 dev vxlan0
sudo ip link set vxlan0 up
🌟 Real-World Examples
Basic Network Setup
# Configure static IP
sudo ip addr flush dev eth0
sudo ip addr add 192.168.1.10/24 dev eth0
sudo ip route add default via 192.168.1.1
sudo ip link set eth0 up
Temporary IP for Testing
# Add temporary IP
sudo ip addr add 10.0.0.100/24 dev eth0
# Test
ping -c 3 10.0.0.1
# Remove
sudo ip addr del 10.0.0.100/24 dev eth0
Bridge Configuration
# Create bridge
sudo ip link add br0 type bridge
sudo ip link set eth0 master br0
sudo ip link set eth1 master br0
sudo ip link set br0 up
sudo ip addr add 192.168.1.1/24 dev br0
Docker-Like Network
# Create bridge network
sudo ip link add docker0 type bridge
sudo ip addr add 172.17.0.1/16 dev docker0
sudo ip link set docker0 up
# Create veth pair
sudo ip link add veth0 type veth peer name veth1
sudo ip link set veth0 master docker0
sudo ip link set veth0 up
Multi-Homed Host
# eth0: Internal network
sudo ip addr add 192.168.1.10/24 dev eth0
sudo ip route add 192.168.0.0/16 via 192.168.1.1 dev eth0
# eth1: External network
sudo ip addr add 10.0.0.10/24 dev eth1
sudo ip route add default via 10.0.0.1 dev eth1
Policy Routing
# Create routing table
echo "200 custom" >> /etc/iproute2/rt_tables
# Add rule
sudo ip rule add from 192.168.1.0/24 table custom
sudo ip route add default via 10.0.0.1 table custom
Monitor Network Changes
# Watch addresses
ip -timestamp monitor address
# Watch routes
ip -timestamp monitor route
# Watch all
ip -timestamp monitor all
Quick Network Check
# Check network config
ip -br addr
ip -br link
ip route show
ip neigh show
💡 Best Practices
- Use
-brieffor quick overview / Используйте-briefдля быстрого обзора - Use
-4or-6to filter by IP version / Используйте-4или-6для фильтрации по версии IP - Changes with ip are temporary (lost on reboot) / Изменения с ip временные (теряются при перезагрузке)
- Use netplan/networkd for persistent config / Используйте netplan/networkd для постоянной конфигурации
- Use
ipinstead of deprecatedifconfig/ Используйтеipвместо устаревшегоifconfig - Monitor with
ip -timestamp monitor/ Мониторьте сip -timestamp monitor
🔧 Common Subcommands
| Subcommand | Description (EN / RU) |
|---|---|
ip addr |
Address management / Управление адресами |
ip link |
Link management / Управление ссылками |
ip route |
Routing / Маршрутизация |
ip neigh |
Neighbor/ARP / Соседи/ARP |
ip tunnel |
Tunnels / Туннели |
ip rule |
Policy routing / Политическая маршрутизация |
ip monitor |
Monitor changes / Мониторить изменения |
📋 Useful Options
| Option | Description (EN / RU) |
|---|---|
-4 |
IPv4 only / Только IPv4 |
-6 |
IPv6 only / Только IPv6 |
-brief |
Brief output / Краткий вывод |
-s |
Statistics / Статистика |
-d |
Details / Детали |
-timestamp |
Add timestamps / Добавить временные метки |
-json |
JSON output / JSON вывод |
⚠️ Important Notes
ipis part of iproute2 package /ipчасть пакета iproute2- Changes are not persistent / Изменения не постоянные
- Use NetworkManager or netplan for persistence / Используйте NetworkManager или netplan для постоянства
ipreplacesifconfig,route,arp/ipзаменяетifconfig,route,arp