In this tutorial I will share different methods you can use to restart your network with RHEL/CentOS environment. I will cover both RHEL/CentOS 7 and 8 releases as with RHEL/CentOS 8 there are some major changes in terms of how networking is handled. Now Red Hat is completely moving towards Network Manager and is trying to ditch the legacy initscripts.
Some Background and Changes with RHEL/CentOS 8
If you are coming from RHEL/CentOS 5 or 6 then you will be familiar with SysV scripts to restart any service i.e.
# service network restart
With RHEL/CentOS 7 the SysV scripts are deprecated (although you may still use these commands but they can be removed any time and shouldn’t be used). Now all the system services, partitions, sockets are handled by systemd.But that is a different topic altogether, now with RHEL/CentOS 7 we used
# systemctl restart network
But with RHEL/CentOS 8 we get below error for this command
# systemctl restart network
Failed to restart network.service: Unit network.service not found.
This is because with RHEL/CentOS 7, the network scripts were part of
initscripts rpm, which is removed as part of RHEL/CentOS 8 and is
migrated to network-scripts rpm
I have already written a detailed
guide on this topic and the steps to use legacy network restart
commands.
Now considering all these changes, we have multiple methods which we can
use to restart network in RHEL/CentOS release. But before we jump there,
let us understand if our interface is managed by NetworkManager or not
as your command and steps to restart network would vary accordingly.
How to check if interface is configured with NetworkManager
There are couple of methods to verify if your Ethernet is configured via
NetworkManager or manually using
ip
command or some
other method:
Use nmcli con show to list the active connections
# nmcli con show
NAME UUID TYPE DEVICE
eth0 31e959d2-1c5f-46ea-a122-1f4c0f74d938 ethernet eth0
If you can see your interface in the output then it means that the
interface is configured with NetworkManager
Alternatively grep for NM_CONTOLLED in
/etc/sysconfig/network-scripts/ifcfg-ethXX
# grep NM_CONTROLLED /etc/sysconfig/network-scripts/ifcfg-eth1
NM_CONTROLLED=no
It is also possible you get a blank output, in such case you can use
nmcli to verify but most likely the interface was configured with
NetworkManager which is why you don’t see any entry for
NM_CONTROLLED.
So now you know if your interface is configured via NetworkManager or not.
ethXX,
in your case the interface name may vary.
Method 1: Using systemctl restart NetworkManager
You can use nmcli
or nmtui to configure your network. Once the network configuration
is done, you can use systemctl to restart the NetworkManager service
# systemctl restart NetworkManager
This should update your network changes. But if your network is not
managed by NetworkManager, this command will do no change to your
interface configuration.
Method 2: Using ifup and ifdown
Use this command with precaution as this can bring down your active interface which you may be using for SSH connections locking you out of the system. The only way to recover the network access by connecting to your server via console.
ifup and ifdown without
any restrictions
On RHEL/CentOS 8 with NetworkManager
With RHEL/CentOS 8, the ifup and ifdown commands are part of
NetworkManager rpm unlike older releases where these were part of
initscripts rpm.
# rpm -qf `which ifup`
NetworkManager-1.20.0-3.el8.x86_64
So since you are using NetworkManager, you can also use ifup and
ifdown to refresh the network configuration of any interface. For
example you did some changes for eth1, so to refresh the changes first
bring down the interface and then bring it up
# ifdown eth1 && ifup eth1
This should update your network configuration.
On RHEL/CentOS 8 without NetworkManager
On RHEL/CentOS 8 if your network interface is not managed by
NetworkManager then you must install network-scripts to be able to
use ifup and ifdown command.
# dnf -y install network-scripts
Next you can check the rpm ownership for ifup
# rpm -qf `which ifup`
NetworkManager-1.20.0-3.el8.x86_64
network-scripts-10.00.4-1.el8.x86_64
Now ifup is part of both NetworkManager and network-scripts rpm.
Next you can use ifdown eth1 && ifup eth1
# ifdown eth1 && ifup eth1
WARN : [ifdown] You are using 'ifdown' script provided by 'network-scripts', which are now deprecated.
WARN : [ifdown] 'network-scripts' will be removed in one of the next major releases of RHEL.
WARN : [ifdown] It is advised to switch to 'NetworkManager' instead - it provides 'ifup/ifdown' scripts as well.
Similar WARN is visible for ifup action.

ifup and ifdown interface
Since network-scripts is added just to support fallback behaviour, it
throws WARNING every time you use ifup or ifdown without
NetworkManager.
Method 3: Using nmcli networking
We can also use the command-line tool “nmcli networking” for
controlling NetworkManager to restart network and update network
configuration.
# nmcli networking off && nmcli networking on
This command will bring down all the NetworkManager interfaces and
then will bring them up.
IMPORTANT: It is important that you execute the command in this format
as if you try to execute separately then your server may become
unreachable as the first command will bring down all the
NetworkManager managed interfaces
Method 4: using nmcli con up and down
With nmcli we can also use nmcli con up or con down similar to
traditional ifup and ifdown to de-activate and activate individual
network interface instead of restarting all the networking interfaces on
the server.
# nmcli con down eth1 && nmcli con up eth1
Connection 'eth1' successfully deactivated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/14)
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/15)
IMPORTANT: It is important that you execute the command in this format
as if you try to execute separately then your server may become
unreachable as the first command will bring down all the
NetworkManager managed interfaces
Method 5: Using nmtui
We also have NetworkManager TUI which is an alternative to nmcli
command. Users who are not comfortable with nmcli command line, they
can use nmtui to manage their network
To de-activate or activate a network interface using nmtui, execute
nmtui as root user on the Linux server terminal
# nmtui
This should open a window, next select “Activate a Connection” to update the network configuration

Activate a connection
Select the interface which you would wish to deactivate and re-activate.
nmtui from graphical console independent of SSH or network
connection.

De-activate eth1
Next Activate the respective interface

Activate eth1
Once your interface is active, you can come back and exit the nmtui
session.

Method 6: Using systemctl restart network
ifup and ifdown without
any restrictions
With RHEL/CentOS 8, the initscripts rpm has been deprecated hence this
command will not work by default.We must manually install
network-scripts rpm from the RHEL/CentOS 8 repository to be able to
restart network using this command.
# dnf -y install network-scripts
Next you should be able to use the legacy command even on RHEL/CentOS 8 to restart your network interface
# systemctl restart network
Conclusion
In this tutorial I shared different possible methods to restart network
service and individual network cards on different Red Hat and CentOS
distributions. Red Hat is now pushing the usage of NetworkManager and
legacy initscripts is already deprecated. We can expect the
network-scripts support to also be dropped in near future so you should
already start switching to NetworkManager in your environment.
Lastly I hope the steps from the article to restart network on RHEL/CentOS 7/8 Linux was helpful. So, let me know your suggestions and feedback using the comment section.


