/etc/network/interfaces

The /etc/network/interfaces file is used to configure network interfaces on Debian-based Linux distributions (such as Ubuntu, Debian, and others). This file contains network settings that define how each interface is configured, whether through static IP, DHCP, or manual configuration.

Structure of /etc/network/interfaces

The file is made up of sections that define the configuration for individual network interfaces. Each section can include settings such as IP addresses, netmasks, gateways, and other network options.

Here are the key configuration options commonly used in the /etc/network/interfaces file:

Common Directives

  • iface: This defines a network interface and its associated configuration.

    • iface <interface> <method>: The interface (<interface>) is configured using the specified method (<method>).

  • auto: Automatically brings up the network interface during boot.

  • allow-hotplug: Brings up the interface when it's detected (without waiting for boot).

  • address: Specifies the static IP address.

  • netmask: Specifies the subnet mask.

  • gateway: Specifies the default gateway.

  • dns-nameservers: Specifies the DNS server addresses.

  • dns-search: Specifies the DNS search domain.

  • dhcp: Indicates that the interface should use DHCP for obtaining network settings automatically.

  • bridge_ports: Defines the interfaces to be added to a bridge.

  • bridge_stp: Enables or disables Spanning Tree Protocol (STP) on the bridge.

  • vlan-raw-device: Associates a VLAN interface with a physical network interface.

Example Configuration

  1. Static IP Configuration

    This example configures an interface eth0 with a static IP address.

    # /etc/network/interfaces
    
    # Loopback interface
    auto lo
    iface lo inet loopback
    
    # Ethernet interface with static IP
    auto eth0
    iface eth0 inet static
        address 192.168.1.100
        netmask 255.255.255.0
        gateway 192.168.1.1
        dns-nameservers 8.8.8.8 8.8.4.4
    • The eth0 interface is set with the static IP 192.168.1.100, netmask 255.255.255.0, and gateway 192.168.1.1. DNS servers are set to Google's 8.8.8.8 and 8.8.4.4.

  2. DHCP Configuration

    This example configures the interface eth0 to obtain its IP address via DHCP.

    # /etc/network/interfaces
    
    # Loopback interface
    auto lo
    iface lo inet loopback
    
    # Ethernet interface using DHCP
    auto eth0
    iface eth0 inet dhcp
    • The eth0 interface is set to use DHCP to automatically obtain an IP address.

  3. Multiple Interfaces with Static IPs

    You can configure multiple interfaces with static IP addresses.

    # /etc/network/interfaces
    
    # Loopback interface
    auto lo
    iface lo inet loopback
    
    # First Ethernet interface
    auto eth0
    iface eth0 inet static
        address 192.168.1.100
        netmask 255.255.255.0
        gateway 192.168.1.1
    
    # Second Ethernet interface
    auto eth1
    iface eth1 inet static
        address 192.168.2.100
        netmask 255.255.255.0
    • The system has two interfaces: eth0 and eth1, each with a static IP.

  4. Bridge Configuration

    If you're using network bridging, you can configure a bridge interface like this:

    # /etc/network/interfaces
    
    # Loopback interface
    auto lo
    iface lo inet loopback
    
    # Bridge interface (br0)
    auto br0
    iface br0 inet static
        address 192.168.1.100
        netmask 255.255.255.0
        gateway 192.168.1.1
        bridge_ports eth0 eth1
        bridge_stp off
    • The bridge interface br0 is created by combining eth0 and eth1 and is assigned a static IP.

  5. VLAN Configuration

    If you're using VLANs, you can create a VLAN interface as follows:

    # /etc/network/interfaces
    
    # Loopback interface
    auto lo
    iface lo inet loopback
    
    # VLAN configuration
    auto vlan10
    iface vlan10 inet static
        address 192.168.10.100
        netmask 255.255.255.0
        vlan-raw-device eth0
    • This configuration creates a VLAN interface vlan10 on eth0 with a static IP.

  6. Allow Hotplugging an Interface

    If you want an interface to be automatically brought up when it's plugged in (e.g., for USB network devices), you can use allow-hotplug.

    # /etc/network/interfaces
    
    # Loopback interface
    auto lo
    iface lo inet loopback
    
    # Hotplugging an interface (e.g., eth0)
    allow-hotplug eth0
    iface eth0 inet dhcp
    • The interface eth0 is configured to automatically come up when it is detected and use DHCP.

Managing Network Interfaces

After making changes to /etc/network/interfaces, you can apply them using the following commands:

  • Restart the networking service to apply the changes:

    sudo systemctl restart networking
  • Bring up an interface manually:

    sudo ifup eth0
  • Bring down an interface manually:

    sudo ifdown eth0
  • Check the interface status:

    ip a show eth0

Conclusion

The /etc/network/interfaces file is a key configuration file for network interfaces on Debian-based Linux systems. It allows you to configure interfaces for static IPs, DHCP, bridges, VLANs, and hotplugging. After editing this file, network changes can be applied by restarting the networking service or bringing interfaces up/down manually.

Last updated