3.5. Configuring IP Networking with ifcfg Files

download PDF
As a system administrator, you can configure a network interface manually, editing the ifcfg files.
Interface configuration (ifcfg) files control the software interfaces for individual network devices. As the system boots, it uses these files to determine what interfaces to bring up and how to configure them. These files are usually named ifcfg-name, where the suffix name refers to the name of the device that the configuration file controls. By convention, the ifcfg file's suffix is the same as the string given by the DEVICE directive in the configuration file itself.

Configuring an Interface with Static Network Settings Using ifcfg Files

For example, to configure an interface with static network settings using ifcfg files, for an interface with the name enp1s0, create a file with the name ifcfg-enp1s0 in the /etc/sysconfig/network-scripts/ directory, that contains:
  • For IPv4 configuration
  • For IPv6 configuration
    You do not need to specify the network or broadcast address as this is calculated automatically by ipcalc.
    For more IPv6 ifcfg configuration options, see nm-settings-ifcfg-rh(5) man page.


In Red Hat Enterprise Linux 7, the naming convention for network interfaces has been changed, as explained in Chapter 11, Consistent Network Device Naming. Specifying the hardware or MAC address using HWADDR directive can influence the device naming procedure.

Configuring an Interface with Dynamic Network Settings Using ifcfg Files

To configure an interface named em1 with dynamic network settings using ifcfg files:
  1. Create a file with the name ifcfg-em1 in the /etc/sysconfig/network-scripts/ directory, that contains:
  2. To configure an interface to send a different host name to the DHCP server, add the following line to the ifcfg file:
    To configure an interface to send a different fully qualified domain name (FQDN) to the DHCP server, add the following line to the ifcfg file:


    Only one directive, either DHCP_HOSTNAME or DHCP_FQDN, should be used in a given ifcfg file. In case both DHCP_HOSTNAME and DHCP_FQDN are specified, only the latter is used.
  3. To configure an interface to use particular DNS servers, add the following lines to the ifcfg file:
    where ip-address is the address of a DNS server. This will cause the network service to update /etc/resolv.conf with the specified DNS servers specified. Only one DNS server address is necessary, the other is optional.
  4. To configure static routes in the ifcfg file, see Section 4.5, “Configuring Static Routes in ifcfg files”.
    By default, NetworkManager calls the DHCP client, dhclient, when a profile has been set to obtain addresses automatically by setting BOOTPROTO to dhcp in an interface configuration file. If DHCP is required, an instance of dhclient is started for every Internet protocol, IPv4 and IPv6, on an interface. If NetworkManager is not running, or is not managing an interface, then the legacy network service will call instances of dhclient as required. For more details on dynamic IP addresses, see Section 1.2, “Comparing Static to Dynamic IP Addressing”.
  5. To apply the configuration:
    1. Reload the updated connection files:
      # nmcli connection reload
    2. Re-activate the connection:
      # nmcli connection up connection_name

3.5.1. Managing System-wide and Private Connection Profiles with ifcfg Files

The permissions correspond to the USERS directive in the ifcfg files. If the USERS directive is not present, the network profile will be available to all users. As an example, the following command in an ifcfg file will make the connection available only to the users listed:
USERS="joe bob alice"
Also, you can set the USERCTL directive to manage the device:
  • If you set yes, non-root users are allowed to control this device.
  • If you set no, non-root users are not allowed to control this device.
Red Hat logoGithubRedditYoutubeTwitter


Try, buy, & sell


About Red Hat Documentation

We help Red Hat users innovate and achieve their goals with our products and services with content they can trust.

Making open source more inclusive

Red Hat is committed to replacing problematic language in our code, documentation, and web properties. For more details, see the Red Hat Blog.

About Red Hat

We deliver hardened solutions that make it easier for enterprises to work across platforms and environments, from the core datacenter to the network edge.

© 2024 Red Hat, Inc.