Table of Contents
Typically, in most network configurations, the IP address is assigned dynamically by the router DHCP server. Setting a static IP address may be required in different situations, such as configuring port forwarding or running a web server behind a NAT.
This post explains how to set up a static IP address on a CentOS 8/RHEL 8 server.
Find the available network interfaces
You can use any one of the below commands to list down the available network interfaces on the system.
ifconfig -a
The command prints a list of all the available network interfaces. In this example, the name of the interface is ens160.
# ifconfig -a
ens160: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.10.230.5 netmask 255.255.0.0 broadcast 10.10.255.255
inet6 fe80::7dc9:cd54:9e9b:6366 prefixlen 64 scopeid 0x20<link>
...
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
...
Configuring the Static IP Address of CentOS 8/RHEL 8
Method 1
1. In this method, we will edit the network interface file found under directory. For interface ens160, the file name would be .
# cat /etc/sysconfig/network-scripts/ifcfg-ens160
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=dhcp
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
...
NAME=ens160
UUID=a50387a1-cf51-4ed3-bbd4-a6f253f71e15
DEVICE=ens160
ONBOOT=yes
2. To assign a static IP address to the interface, update the interface file as per the requirement.
vi /etc/sysconfig/network-scripts/ifcfg-ens160
BOOTPROTO=none
IPADDR=192.168.1.10
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=192.168.1.1
DNS2=8.8.8.8
- Set BOOTPROTO: none.
- Specify the static IP address. Under addresses: you can add one or more IPv4 or IPv6 IP addresses that will be assigned to the network interface.
- Specify the gateway4.
- Under nameservers, set the IP addresses of the nameservers.
3. Restart the network service to take the changes go into effect.
systemctl restart NetworkManager.service
4. Use ifconfig -a command to verify the static ip address.
# ifconfig -a
ens160: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.10 netmask 255.255.255.0 broadcast 192.168.255.255
inet6 fe80::7dc9:cd54:9e9b:6366 prefixlen 64 scopeid 0x20<link>
...
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
Also, verify the DNS server entries in /etc/resolv.conf file.
# cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 8.8.8.8
nameserver 1.1.1.1
Finally, verify the internet connectivity using the ping command:
# ping -c 3 google.com
PING google.com (216.58.200.238) 56(84) bytes of data.
64 bytes from tsa03s01-in-f238.1e100.net (216.58.200.238): icmp_seq=1 ttl=58 time=20.2 ms
64 bytes from tsa03s01-in-f238.1e100.net (216.58.200.238): icmp_seq=2 ttl=58 time=20.4 ms
64 bytes from tsa03s01-in-f238.1e100.net (216.58.200.238): icmp_seq=3 ttl=58 time=19.5 ms
Method 2
You can also use nmtui, a text-based user interface for configuring network interfaces.
1. Run the following command to install NetworkManager Text User Interface nmtui if it is not installed.
sudo dnf -y install NetworkManager-tui
2. Run nmtui tool.
nmtui
3. Select Edit a connection and press Enter.
![Bg2203](https://bonguides-1e199.kxcdn.com/wp-content/uploads/2022/10/bg2203.png)
4. Select the network interface and then Edit.
![Bg2205](https://bonguides-1e199.kxcdn.com/wp-content/uploads/2022/10/bg2205.png)
5. In the following screen, change IPv4 Configuration from Automatic to Manual.
![Bg2209](https://bonguides-1e199.kxcdn.com/wp-content/uploads/2022/10/bg2209.png)
6. Set the IP Address, Gateway and DNS servers then enter OK.
![Bg2206](https://bonguides-1e199.kxcdn.com/wp-content/uploads/2022/10/bg2206.png)
To make above changes into the effect, deactivate and activate the connection or restart your server.
That’s it! You have assigned a static IP to your CentOS 8 or RHEL 8 server.