ifrename − rename network interfaces based on various static criteria


ifrename [-c configfile] [-p] [-d] [-u] [-v] [-V] [-D] [-C]
ifrename [-c configfile] [-i interface] [-n newname]


Ifrename is a tool allowing you to assign a consistent name to each of your network interface.

By default, interface names are dynamic, and each network interface is assigned the first available name (eth0, eth1...). The order network interfaces are created may vary. For built-in interfaces, the kernel boot time enumeration may vary. For removable interface, the user may plug them in any order.

Ifrename allow the user to decide what name a network interface will have. Ifrename can use a variety of selectors to specify how interface names match the network interfaces on the system, the most common selector is the interface MAC address.

Ifrename must be run before interfaces are brought up, which is why it’s mostly useful in various scripts (init, hotplug) but is seldom used directly by the user. By default, ifrename renames all present system interfaces using mappings defined in /etc/iftab.


-c configfile

Set the configuration file to be used (by default /etc/iftab). The configuration file define the mapping between selectors and interface names, and is described in iftab(5).
If configfile is "-", the configuration is read from stdin.


Probe (load) kernel modules before renaming interfaces. By default ifrename only check interfaces already loaded, and doesn’t auto-load the required kernel modules. This option enables smooth integration with system not loading modules before calling ifrename.


Enable various Debian specific hacks. Combined with -p, only modules for interfaces specified in /etc/network/interface are loaded.

-i interface

Only rename the specified interface as opposed to all interfaces on the system. The new interface name is printed.

-n newname

When used with -i, specify the new name of the interface. The list of mappings from the configuration file is bypassed, the interface specified with -i is renamed directly to newname. The new name may be a wildcard containing a single ’*’.
When used without -i, rename interfaces by using only mappings that would rename them to newname. The new name may not be a wildcard. This use of ifrename is discouraged, because inefficient (-n without -i). All the interfaces of the system need to be processed at each invocation, therefore in most case it is not faster than just letting ifrename renaming all of them (without both -n and -i).


Enable name takeover support. This allow interface name swapping between two or more interfaces.

Takeover enable an interface to ’steal’ the name of another interface. This works only with kernel 2.6.X and if the other interface is down. Consequently, this is not compatible with Hotplug. The other interface is assigned a random name, but may be renamed later with ’ifrename’.
The number of takeovers is limited to avoid circular loops, and therefore some complex multi-way name swapping situations may not be fully processed.
In any case, name swapping and the use of this feature is discouraged, and you are invited to choose unique and unambiguous names for your interfaces...


Enable udev output mode. This enables proper integration of ifrename in the udev framework, udevd(8) will use ifrename to assign interface names present in /etc/iftab. In this mode the output of ifrename can be parsed directly by udevd(8) as an IMPORT action. This requires udev version 107 or later.


Dry-run mode. Ifrename won’t change any interface, it will only print new interface name, if applicable, and return.

In dry-run mode, interface name wildcards are not resolved. New interface name is printed, even if it is the same as the old name.
Be also aware that some selectors can only be read by root, for example those based on ethtool), and will fail silently if run by a normal user. In other words, dry-run mode under a standard user may not give the expected result.


Verbose mode. Ifrename will display internal results of parsing its configuration file and querying the interfaces selectors. Combined with the dry-run option, this is a good way to debug complex configurations or trivial problems.


Count matching interfaces. Display the number of interface matched, and return it as the exit status of ifrename.

The number of interfaces matched is the number of interface on the system for which a mapping was found in the config file (which is different from the number of interface renamed).


Jean Tourrilhes − jt@hpl.hp.com




ifconfig(8), ip(8), iftab(5).

More Linux Commands

Tk_SetOptions(3) - process configuration options (Man Page)
These procedures handle most of the details of parsing configuration options such as those for Tk widgets. Given a description of what options are supported, th

mk_modmap(8) - translate a Linux keytable file into an xmodm
The mk_modmap command tries to translate a Linux console keytable file into a file that can be parsed by xmodmap, and used within X. It outputs the results to s

gluPartialDisk(3gl) - draw an arc of a disk - Linux man page
gluPartialDisk renders a partial disk on the $ z ~=~ 0 $ plane. A partial disk is similar to a full disk, except that only the subset of the disk from start thr

texinfo(5) - software documentation system - Linux man page
Texinfo is a documentation system that uses a single source file to produce both online information and printed output. It is primarily designed for writing sof

ip-link(8) network device configuration - Linux manual page
ip link add - add virtual link link DEVICE specifies the physical device to act operate on. NAME specifies the name of the new virtual device. TYPE specifies th

XkbKeyHasActions(3) - Determines if the key corresponding to
XkbKeyHasActions.3 - A key action defines the effect key presses and releases have on the internal state of the server. For example, the expected key action ass

XML::Twig.3pm (Manual - Linux man page)....................
This module provides a way to process XML documents. It is build on top of XML::Parser. The module offers a tree interface to the document, while allowing you t

mknod(2) - create a special or ordinary file (Man Page).....
The system call mknod() creates a filesystem node (file, device special file, or named pipe) named pathname, with attributes specified by mode and dev. The mode

mke2fs.conf(5) - Configuration file for mke2fs (Man Page)...
mke2fs.conf is the configuration file for mke2fs(8). It controls the default parameters used by mke2fs(8) when it is creating ext2, ext3, or ext4 filesystems. T

xdr_opaque_auth(3) - library routines for remote procedure c
These routines allow C programs to make procedure calls on other machines across the network. First, the client calls a procedure to send a data packet to the s

sched(7) overview of scheduling APIs - Linux manual page....
API summary The Linux scheduling APIs are as follows: sched_setscheduler(2) Set the scheduling policy and parameters of a specified thread. sched_getscheduler(2

complain(8) set an AppArmor security profile to complain mod
aa-complain is used to set the enforcement mode for one or more profiles to complain mode. In this mode security policy is not enforced but rather access violat

We can't live, work or learn in freedom unless the software we use is free.