ip — inspect and configure network interfaces

ifconfig is gone. ip is the one command that answers every 'what is my network doing' question.

ifconfig has been deprecated for over a decade, yet half the tutorials online still teach it. ip does everything it did — and everything it never could — in one command.

What it does

ip is the iproute2 suite's front door. It manages network interfaces (ip link), IP addresses (ip addr), routing tables (ip route), and the neighbor/ARP cache (ip neigh). It replaced the old net-tools commands — ifconfig, route, arp — which have been unmaintained for years and are often not even installed on modern distros.

Why it matters

When a machine 'has no network', ip is the first thing you reach for. Is the interface up? What address did DHCP hand out? Is there a default route? Is the gateway reachable? Each is one ip subcommand. It is also scriptable and machine-readable, which is why every modern Linux admin, Docker, and Kubernetes tooling leans on it.

Examples

ip -br addr
lo               UNKNOWN        127.0.0.1/8 ::1/128 
wlp0s20f3        UP             192.168.1.57/24 metric 600 fd5c:2d2b:cb4c:ef7:3e58:c2ff:fed8:5ef5/64 
docker0          DOWN           172.17.0.1/16 
br-703b0c8f3110  UP             172.23.0.1/16

-br (brief) gives one line per interface: state, IPv4, and IPv6. The fastest way to see what address each interface actually has.

ip route
default via 192.168.1.1 dev wlp0s20f3 proto dhcp src 192.168.1.57 metric 600 
192.168.1.0/24 dev wlp0s20f3 proto kernel scope link src 192.168.1.57 metric 600

The first line is the default route — where traffic with no more specific match goes. If this line is missing, you have no internet even with an address assigned.

ip -s link show wlp0s20f3
3: wlp0s20f3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DORMANT group default qlen 1000
    link/ether 3c:58:c2:d8:5e:f5 brd ff:ff:ff:ff:ff:ff
    RX:  bytes packets errors dropped  missed   mcast           
    1234567890 1234567      0       0       0       0 
    TX:  bytes packets errors dropped carrier collsns           
    987654321  987654      0       0       0       0

-s adds per-interface byte and packet counters. errors and dropped at zero is the sign of a healthy link; non-zero means a cable, driver, or duplex problem.

ip neigh
192.168.1.1 dev wlp0s20f3 lladdr 00:11:32:81:da:a6 REACHABLE 
192.168.1.147 dev wlp0s20f3 lladdr b8:27:eb:f9:59:ba STALE 
192.168.1.14 dev wlp0s20f3 lladdr 00:17:88:28:a9:f7 STALE

ip neigh is the modern ARP table: which IPs on your subnet have been resolved to MAC addresses. REACHABLE means recently confirmed alive; STALE means seen before but not recently.

ip link set wlp0s20f3 down && ip link set wlp0s20f3 up
$ ip link set wlp0s20f3 down
$ ip link set wlp0s20f3 up
$ ip -br link show wlp0s20f3
wlp0s20f3        UP             3c:58:c2:d8:5e:f5 <BROADCAST,MULTICAST,UP,LOWER_UP>

Bounce an interface to force it to renegotiate and re-run DHCP. The classic 'turn it off and on again' for a stuck NIC — no reboot needed.

Flags

FlagMeaning
addrshow or configure IP addresses on interfaces
linkshow or configure network interfaces (up/down, MTU, MAC)
routeshow or manipulate the routing table
neighshow or manipulate the neighbor (ARP) cache
-brbrief output — one compact line per interface
-sstatistics — add byte/packet counters to link output
-4 / -6restrict output to IPv4 or IPv6 only

Origin

ip comes from iproute2, written by Alexey Kuznetsov and released in 1999 as part of Linux 2.2's new networking stack. The old net-tools (ifconfig, route, arp) were built for the 2.0 era and never kept up. iproute2 was designed to be extensible — which is why ip has subcommands for things like policy routing and traffic control that ifconfig could never touch.

Fun fact

The 'ip' binary is actually a single program that dispatches on its first argument — ip addr, ip link, ip route are all the same executable. That is why the syntax is consistent across every subcommand, unlike the grab-bag of separate tools it replaced.

Fun facts

Pros

Cons

Takeaways