Site Tools


ifupdown

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
ifupdown [February 11, 2026 at 13:55] yanevskivifupdown [May 14, 2026 at 11:38] (current) – external edit 127.0.0.1
Line 1: Line 1:
 +# ifupdown
 +**ifupdown** is the traditional network manager on [[gnu-linux|GNU/Linux]] systems. It has since been replaced by [[systemd-networkd|systemd-networkd]]. 
  
 +It was especially commmon in Debian systems before Debian 12 (Bookworm).
 +
 +The "if" part is short for "interface". "up" and "down" refer to `ifup` and `ifdown` commands, which are used to bring an interface link up and down + run some configuration scripts.
 +
 +
 +## Install
 +On Debian 10 and Debian 11:
 +```
 +sudo apt install ifupdown
 +```
 +Don't install ifupdown if you're using a different network manager, such as systemd-networkd!
 +
 +## Manual
 +
 + - `man ifup`
 + - `man ifdown`
 + - `man ifquery`
 + - `man interfaces`
 +
 +## /etc/network/interfaces
 +All configuration lies in `/etc/network/` directory. The following is a list of files in that directory
 +```
 + $ ls /etc/network
 +if-down.d  if-post-down.d  if-pre-up.d  if-up.d  interfaces  interfaces.d
 +```
 +
 +The main configuration file is `/etc/network/interfaces`. The `*.d` directories contain auxiliary configuration and scripts.
 +
 +The following is the minimal possible configuration. It only configures the loopback interface. Configuring the loopback interface gives you addresses `127.0.0.1` (IPv4) and `::1` (IPv6). These are home addresses so that you can ping yourself `ping 127.0.0.1` (hence why it's called a "loopback"). Lines that begin with '#' are comments. You can comment out or change any parts of the configuration file.
 +```bash
 +# /etc/network/interfaces
 +
 +# Loopback
 +auto lo
 +iface lo inet loopback
 +
 +# ... place your other config here ...
 +```
 +
 +## Configuration examples
 +
 +To configure a loopback device (the only device that's technically necessary)
 +```bash
 +# Loopback
 +auto lo
 +iface lo inet loopback
 +```
 +
 +To configure an `eth0` interface dynamically (IPv4):
 +```bash
 +# IPv4 dynamic (DHCPv4)
 +allow-hotplug eth0
 +iface eth0 inet dhcp
 +```
 +
 +To configure an `eth0` interface statically (IPv4):
 +```bash
 +# IPv4 static
 +auto eth0
 +iface eth0 inet static
 +    address 192.168.1.50
 +    netmask 255.255.255.0
 +    gateway 192.168.1.1
 +```
 +
 +To configure an `eth0` interface dynamically (IPv6):  
 +The interface acquires IPv6 through SLAAC via Router Advertisements (RA).  
 +No DHCPv6 required.
 +```bash
 +# IPv6 dynamic
 +auto eth0
 +iface eth0 inet6 auto
 +    accept_ra
 +```
 +
 +To configure an `eth0` interface statically (IPv6):
 +```bash
 +# IPv6 static
 +auto eth0
 +iface eth0 inet6 static
 +    address 2001:db8:1::50
 +    netmask 64
 +    gateway 2001:db8:1::1
 +```
 +
 +To configure an `eth0` interface statically (IPv4 + IPv6): 
 +```bash
 +# IPv4 static block
 +iface eth0 inet static
 +    address 192.168.1.50
 +    netmask 255.255.255.0
 +    gateway 192.168.1.1
 +
 +# IPv6 static block
 +iface eth0 inet6 static
 +    address 2001:db8:1::50
 +    netmask 64
 +    gateway 2001:db8:1::1
 +```
 +
 +Full configuration (loopback + IPv4 + IPv6)
 +```bash
 +# /etc/network/interface
 +
 +# Loopback
 +auto lo
 +iface lo inet loopback
 +
 +# IPv4 static block
 +iface eth0 inet static
 +    address 192.168.1.50
 +    netmask 255.255.255.0
 +    gateway 192.168.1.1
 +
 +# IPv6 static block
 +iface eth0 inet6 static
 +    address 2001:db8:1::50
 +    netmask 64
 +    gateway 2001:db8:1::1
 +```
 +
 +## Commands (ifup ifdown ifquery)
 +There are three commands you should know about
 +
 + - `ifup` - Reads `/etc/network/interface` and brings an interface up
 + - `ifdown` - Reads `/etc/network/interface` and brings an interface down
 + - `ifquery` - Reads `/etc/network/interface` and tells you some information about the interface
 +
 +Bringing an `eth0` interface up:
 +```
 + # ifup eth0
 +```
 +
 +Bringing all interfaces up
 +```
 + # ifup -a
 +```
 +
 +Bringing `eth0` interface down
 +```
 + # if down eth0
 +```
 +
 +These examples assume your network interface is named `eth0` by [[udev|udev]].
 +
 +## Relation to ifconfig and route
 +The commands `ifconfig` and `route` seem related to `ifup`, `ifdown` and `ifquery`. However the former two are rather low-level commands that modify the kernel state. The latter three are high-level commands that sit on top of the former two.
 +
 +The `ifconfig` and `route` commands are themselves considered legacy and replaced with [[ip-command|ip]] command (provided by iproute2 package) in a similar way systemd-networkd replaces ifupdown.
 +
 +## Links
 +
 + - https://manpages.debian.org/unstable/ifupdown/
 + - https://manpages.debian.org/unstable/ifupdown/interfaces.5.en.html
 + - https://manpages.debian.org/unstable/ifupdown/ifquery.8.en.html
 + - https://manpages.debian.org/unstable/ifupdown/ifdown.8.en.html
 + - https://manpages.debian.org/unstable/ifupdown/ifup.8.en.html