How to configure a static IP address on CentOS 7 / RHEL 7

I am a new sysadmin and CentOS user. My system is configured to use DHCP. How can I switch from DHCP to static IP address on CentOS 7 desktop system? How do I setup a static TCP/IP address on my CentOS Linux 7 or Red Hat Enterprise Linux 7 server using command line option?

On CentOS 7 or RHEL 7 one need to use the NetworkManager daemon. It attempts to make networking configuration and operation as painless and automatic as possible by managing the primary network connection and other network interfaces, like Ethernet, WiFi, and Mobile Broadband devices. In this quick tutorial you will learn about configuring a network interface with a static IP address using ifcfg files located in /etc/sysconfig/network-scripts/ directory in a CentOS 7 and RHEL 7:

  1. Create a file named /etc/sysconfig/network-scripts/ifcfg-eth0 as follows:
  2. DEVICE=eth0
  3. BOOTPROTO=none
  4. ONBOOT=yes
  5. PREFIX=24
  6. IPADDR=
  7. Restart network service: systemctl restart network

How do I list network interfaces?

Type the following command:
# ip a

Fig.01: List NICs in a CentOS 7 server using ip command

Or use the following command:
# nmcli -p dev
Sample outputs:

Fig.02: nmcli command in action

Here is a typical DHCP configration for eth0 (stored in /etc/sysconfig/network-scripts/ifcfg-eth0 file):

How do I configure an eth0 interface with static network IP settings (method # 1)?

To configure an eth0 interface with static network settings using ifcfg files, edit or create a file with name ifcfg-eth0 in the /etc/sysconfig/network-scripts/ directory as follows:
# vi /etc/sysconfig/network-scripts/ifcfg-eth0
Update/edit as follows for static IP configuration:

# static IP address on CentOS 7 or RHEL 7#
# Server IP #
# Subnet #
# Set default gateway IP #
# Set dns servers #
# Disable ipv6 #
# This is system specific and can be created using 'uuidgen eth0' command #

Save and close the file. You do not need to specify the network or broadcast address as this is calculated automatically by the system. To restart networking service, enter:
# systemctl restart network


Verify new IP settings:
# ip a s eth0
Verify new routing settings:
# ip r
Verify DNS servers settings:
# cat /etc/resolv.conf
Verify the internet connectivity:
# ping -c 3
# ping -c 4

Sample session:

Fig.03: Testing networking and make sure everything is working

How do I configure an eth0 interface with static IP address on CentOS 7 / RHEL 7 using Network Manager (method # 2)?

You need to use the nmtui command. It is a curses?based TUI application for interacting with NetworkManager. To show a connection editor that supports adding, modifying, viewing and deleting connections. To view or setup a static IP using this tool for eth0, enter:
# nmtui edit eth0
Sample outputs:

Fig.04: nmtui is a curses?based TUI application for interacting with NetworkManager.


You learned how to set up static IP address on CentOS 7 or RHEL (Red Hat Enterprise Linux) 7.

🐧 Please support my work on Patreon or with a donation.
🐧 Get the latest tutorials on Linux, Open Source & DevOps via:
CategoryList of Unix and Linux commands
File Managementcat
FirewallAlpine Awall CentOS 8 OpenSUSE RHEL 8 Ubuntu 16.04 Ubuntu 18.04 Ubuntu 20.04
Network Utilitiesdig host ip nmap
OpenVPNCentOS 7 CentOS 8 Debian 10 Debian 8/9 Ubuntu 18.04 Ubuntu 20.04
Package Managerapk apt
Processes Managementbg chroot cron disown fg jobs killall kill pidof pstree pwdx time
Searchinggrep whereis which
User Informationgroups id lastcomm last lid/libuser-lid logname members users whoami who w
WireGuard VPNAlpine CentOS 8 Debian 10 Firewall Ubuntu 20.04
5 comments… add one
  • Jeremy Canfield Jan 8, 2017 @ 1:04

    Hi Vivek. I have been using your nixCraft site for years. Your site is wonderful. Should PEERDNS=yes and IPV6_PEERDNS=yes be added to ensure /etc/resolv.conf is updated?

  • GSK Dec 4, 2020 @ 14:11

    Thank you and it is work.
    For me DNS not required.

  • Anh Huynh Dec 21, 2020 @ 8:33

    Hi, i did as your guide but when i input “ip a s ens33”, there is no IP address assigned to this network card? Is this guide still works on RHEL 7.6?

    • 🐧 Vivek Gite Dec 21, 2020 @ 10:06

      yes, it works with RHEL 7.6/CentOS 7.6. Please check your config again.

Leave a Reply

Your email address will not be published. Required fields are marked *

Use HTML <pre>...</pre> for code samples. Problem posting comment? Email me @