Learn how to – How To Configure static IP address on RHEL 8 / CentOS 8.
Question: How can I configure a static IP address on RHEL 8 / CentOS 8?. This guide will show you different ways of configuring a static IP address on RHEL 8 and CentOS 8 once available.
An IP address is an address used to uniquely identify a device on an IP network. For two computers to communicate with each other and share data, they need to have IP addresses set to their network interface. An IP address can be assigned manually (static IP Address) or via DHCP.
DHCP IP addressing assignment is commonly used for Desktops, Laptops, and Workstations. Assigning an IP address through DHCP to a server can cause drastic effects if the IP changes.
Method 1: Edit Network configuration file
The first method we will consider is manually making changes to the network interface configuration file. My RHEL 8 server has two network interfaces.
# ip link show 1: lo: mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 2: enp1s0: mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000 link/ether 52:54:00:8f:8c:86 brd ff:ff:ff:ff:ff:ff 3: enp7s0: mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000 link/ether 52:54:00:83:0b:b9 brd ff:ff:ff:ff:ff:ff
These are enp1s0
and enp7s0
. We will configure the second enp7s0
/etc/sysconfig/network-scripts/ifcfg-enp7s0
.
Create this file if it doesn’t exist, replacing enp7s0
with your network interface name.
sudo vi /etc/sysconfig/network-scripts/ifcfg-enp7s0
Edit the following contents to fit your network addressing scheme and paste into the file.
DEVICE=enp7s0
TYPE=Ethernet
NM_CONTROLLED=yes
ONBOOT=yes
BOOTPROTO=none
IPADDR=192.168.121.188
NETMASK=255.255.255.0
GATEWAY=192.168.121.1
DNS1=8.8.8.8
DNS2=4.2.2.2
IPV6INIT=no
USERCTL=no
PEERDNS=yes
Parameters/options used:
ONBOOT=yes : Ensure the interface comes upupom system start- NM_CONTROLLED=yes: Allow interface to be managed by Network Manager
- BOOTPROTO=none: Use specified network information for the interface
- IPV6INIT=no: Disable IPv6 initialization for this network interface
Restart your NetworkManager service after making the change
sudo systemctl restart NetworkManager
You should see the new IP address assigned to your network interface.
# ip addr show enp7s0 3: enp7s0: mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 52:54:00:83:0b:b9 brd ff:ff:ff:ff:ff:ff inet 192.168.121.188/24 brd 192.168.121.255 scope global noprefixroute enp7s0 valid_lft forever preferred_lft forever inet6 fe80::5054:ff:fe83:bb9/64 scope link valid_lft forever preferred_lft forever
Method 2: Set Static IP Address on RHEL 8 using nmcli
Nmcli is a command-line tool used to control NetworkManager and for reporting network status. With this command line tool, you can set RHEL 8 static IP address with few commands.
Check available connections.
# nmcli connection show NAME UUID TYPE DEVICE enp1s0 498869bb-0d88-4a4c-a83a-c491d1040b0b ethernet enp1s0 System enp7s0 75faabc3-f62c-9770-bfe5-9996ddb77891 ethernet enp7s0
You can delete and recreate connection.
# nmcli connection down 75faabc3-f62c-9770-bfe5-9996ddb77891 # nmcli connection delete 75faabc3-f62c-9770-bfe5-9996ddb77891 Connection 'System enp7s0' (75faabc3-f62c-9770-bfe5-9996ddb77891) successfully deleted.
Replace enp7s0
with your interface name and IP address information with your actual values in the following snippet.
INT="enp7s0"
IP_SUBNET="192.168.121.188/24"
GW="192.168.121.1"
DNS1="8.8.8.8"
DNS2="4.2.2.2"
Add a new connection for the interface.
nmcli connection add type ethernet autoconnect yes con-name ${INT} ifname ${INT}
The autoconnect yes
is equivalent to ONBOOT=yes
Add IP address and network subnet
nmcli connection modify ${INT} ipv4.addresses ${IP_SUBNET} ipv4.method manual
Set default gateway for the interface
nmcli connection modify ${INT} ipv4.gateway ${GW}
Set two DNS servers provides earlier.
nmcli connection modify ${INT} ipv4.dns ${DNS1}
nmcli connection modify ${INT} +ipv4.dns ${DNS2}
Check connections
# nmcli connection show NAME UUID TYPE DEVICE enp1s0 498869bb-0d88-4a4c-a83a-c491d1040b0b ethernet enp1s0 enp7s0 9f9dba41-b532-414c-b531-0c7978e0eb6b ethernet enp7s0
NetworkManager will populate configuration file for you to /etc/sysconfig/network-scripts/
directory. My example is as shown below.
# cat /etc/sysconfig/network-scripts/ifcfg-enp7s0 TYPE=Ethernet PROXY_METHOD=none BROWSER_ONLY=no BOOTPROTO=none DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_FAILURE_FATAL=no IPV6_ADDR_GEN_MODE=stable-privacy NAME=enp7s0 UUID=9f9dba41-b532-414c-b531-0c7978e0eb6b DEVICE=enp7s0 ONBOOT=yes IPADDR=192.168.121.188 PREFIX=24 GATEWAY=192.168.121.1 DNS1=8.8.8.8 DNS2=4.2.2.2
There is a tool called Nmtui
which has ncurses GUI but it is not a recommended way of setting static IP address on RHEL / CentOS based systems.
Conclusion
You should now have a static IP address configured on your RHEL 8 / CentOS 8 server. Stay connected for more in-depth and hands-on guides for Linux and Unix systems.
Tags:
- How to configure Static IP address on RHEL 8 / CentOS 8
- Setup static IP address on RHEL 8 / CentOS 8
- DHCP to Static IP address on RHEL 8 / CentOS 8
Leave a Reply
You must be logged in to post a comment.