ip — Network Configuration

If you like this project, consider supporting me on Buy Me a Coffee ☕️


tags:

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 / Удалить все адреса

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 / Подробная статистика
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
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

🔧 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

On this page

linux ip — Network Configuration Utility 📍 Address Management Show Addresses Add Addresses Delete Addresses 🔗 Link Management Show Links Link Control Create Virtual Interfaces Delete Links 🗺️ Routing Show Routes Add Routes Delete Routes 🏘️ Neighbor (ARP/NDP) Show Neighbors Manage Neighbors 🚇 Tunnels &amp; VLANs VLANs GRE Tunnels / GRE VXLAN 🌟 Real-World Examples Basic Network Setup Temporary IP for Testing Bridge Configuration Docker-Like Network Multi-Homed Host Policy Routing Monitor Network Changes Quick Network Check 💡 Best Practices 🔧 Common Subcommands 📋 Useful Options ⚠️ Important Notes 📚 Documentation Links