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

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 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=192.168.2.203
  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

Fig.01: List NICs in a CentOS 7 server using ip commandOr use the following command:
# nmcli -p dev
Sample outputs:
Fig.02: nmcli command in action

Fig.02: nmcli command in actionHere is a typical DHCP configration for eth0 (stored in /etc/sysconfig/network-scripts/ifcfg-eth0 file):

DEVICE="eth0"
ONBOOT=yes
NETBOOT=yes
UUID="41171a6f-bce1-44de-8a6e-cf5e782f8bd6"
IPV6INIT=yes
BOOTPROTO=dhcp
HWADDR="00:08:a2:0a:ba:b8"
TYPE=Ethernet
NAME="eth0"

How do I configure an eth0 interface with static network 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:

HWADDR=00:08:A2:0A:BA:B8
TYPE=Ethernet
BOOTPROTO=none
# Server IP #
IPADDR=192.168.2.203
# Subnet #
PREFIX=24
# Set default gateway IP #
GATEWAY=192.168.2.254
# Set dns servers #
DNS1=192.168.2.254
DNS2=8.8.8.8
DNS3=8.8.4.4
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
# Disable ipv6 #
IPV6INIT=no
NAME=eth0
# This is system specific and can be created using 'uuidgen eth0' command #
UUID=41171a6f-bce1-44de-8a6e-cf5e782f8bd6
DEVICE=eth0
ONBOOT=yes

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

Verification

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 cyberciti.biz
# ping -c 4 google.com

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

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

How do I configure an eth0 interface with static network settings 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.

Leave a Reply

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