I have this annoying problem that every time I restart my CentOS7.3, my interface name changes (all of them). Here is how I use my CentOS7.3:

Host Machine: CentOS7.0

VM: CentOS7.3 (recently updated, run via kvm)

Here is the background. I recently updated my VM that has CentOS7.0 to CentOS7.3 via yum update (offline upgrade via ISO). All was working in CentOS7.0, I did not have any persistent rules in /usr/lib/udev/rules.d. But when I updated it to CentOS7.3, the problem started. Every time I reboot the VM, the interface name changes from ethX to lanX. This happens every time I reboot (soft reboot/hard reboot). I found some article in RedHat that says refer to this article. Somewhat resembles my problem but not entirely the same, just went on and tried the fix but still the problem is there. Interface name still changes from ethX to lanX on every reboot.

I tried to single out the problem and arrived at NetworkManager. What I did was I added a field NM_CONTROLLEDon each of the ifcfg-ethX and set to no and it fixed the problem. But I need it to be managed by NetworkManager.

Is there any issue with NetworkManager in CentOS7.3?

Additional Info: NetworkManager-1.4.0-12 ← this is my version of NM


After trying the answer of @Sagar, it somewhat cleared things but did not fix the problem. Interface name still changes every reboot. But it did point me to Consistent Network Device Naming wherein it tells you the details of the naming scheme of red hat. Makes sense though as what @Sagar is saying you need to put net.ifnames=0 biosdevname=0on the kernel command line to revert back to old naming convention. As mention on that article, RHEL has some new name scheme being implemented. But still i can't seem to revert back to the old naming scheme. Any more inputs about the naming convention?

  • NetworkManager never renames interfaces. That is commonly done by udev. Note that there is an udev rule that checks ifcfg-rh files whether they mention a Mac address and an interface. if so, the interfaces are renamed.
    – thaller
    Jul 3, 2017 at 18:59
  • Do you mean that persistent rules in udev? I have none. I am also greping my mac address in my udev folder and found none. Which rules are you refering to?
    – lemoncodes
    Jul 4, 2017 at 0:05

1 Answer 1


Try this article. This may help you to put your interface to old native names as it was before RHEL/CentOS 7.
To restore the old naming convention, you need to edit the /etc/default/grub file and add net.ifnames=0 biosdevname=0 at the end of the GRUB_CMDLINE_LINUX variable:

GRUB_CMDLINE_LINUX="rd.lvm.lv=centos/swap vconsole.keymap=us crashkernel=auto rd.lvm.lv=centos/root vconsole.font=latarcyrheb-sun16 rhgb quiet net.ifnames=0 biosdevname=0"

Then, test the new configuration to see if no mistake has been made:

# grub2-mkconfig

If everything is fine, update the grub2 configuration:

# grub2-mkconfig -o /boot/grub2/grub.cfg

Dont forgot to rename your ifcfg-* file to appropriate once your network is up and interface name is stable.

  • 1
    link-only answers are susceptible to link-rot. Please edit your answer to include enough relevant information from the linked article to provide a stand-alone explanation. Jul 3, 2017 at 15:41
  • Im gonna try this feedback you in a bit
    – lemoncodes
    Jul 4, 2017 at 0:11
  • Somewhat cleared somethings but did not fix the problem. please refer to the updates on the post. Thanks
    – lemoncodes
    Jul 4, 2017 at 14:45
  • This may be coz your guest is running inside kvm. Your kvm configuration might be causing something to alter the udev. I read this article from the redhat, This somewhat resembles to your problem : access.redhat.com/solutions/2592561
    – Sagar
    Jul 6, 2017 at 11:02

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .