Meta

Setting a static IP address in CentOS

Submitted by admin, on January 23rd, 2012

During a default install of CentOS it will try to either automatically obtain an IP address using DHCP, or it wont even set up the network interface automatically. While that may be fine for most desktop users, if you are wanting to set up a server, the chances are you will be wanting it to always have the same IP address.

There are two options for ensuring you get/use the same IP address at every boot. You could set up a IP address reservation on the DHCP server based on the hardware/mac address of the network interface, or alternativly, set the operating system to use a static IP address. If for whatever reason you dont want to go down the path of setting a DHCP reservation (you may not have access to the DHCP server; unsure how to set it up; etc), the only option is to set a static IP address on the PC itself.

The following steps will guide you through setting up your computer to use a static IP address on CentOS.

Assuming the network interface is supported and detected under CentOS, you will find that the configuration files required to set the IP address can be found under /etc/sysconfig/network-scripts.

The files to look for are ifcfg-eth# where # is the network interface number, starting from 0.

This example will assume that you want to set up the static IP address on the first network interface.

Open up the /etc/sysconfig/network-scripts/ifcfg-eth0 file in your favorite editor. This guide will be using the “vi” editor, but you can use “nano” or another editor.

Make sure you are logged in as “root”, or a user with root privileges.

Most of the lines in this file will be changing, so your best option is to remove all the lines except the first one, and copy the example format from the example below.

If you dont want to delete the lines, simply comment them out. This allows you to change it back easily at a later date if you want to. The # character at the beginning of the line indicates that it is commented out, and will be ignored.

If you are unsure what settings should go in this file, you can always run the ‘ifconfig’ command, which will output the current IP address settings obtained via DHCP (if DHCP is set up). The default gateway address can be obtained by using the ‘route’ command.

Once you have finished with the changes to the file, save and quit the editor.

You will also need to set up the DNS nameserver settings manually. These are stored in the /etc/resolv.conf file.

Open this file in your editor.

# vi /etc/resolv.conf

you will want at least 1 nameserver set up in this file. If one already exists, and is valid, great. If not, add one or more nameserver records in the format below.

nameserver 192.168.0.1

Depending on your setup, this could be your router’s IP, your ISP’s DNS server IP, or a 3rd party’s DNS server, such as Google’s (8.8.8.8 and 8.8.4.4), or OpenDNS.

Save and exit the editor.

To activate the changes you will need to reboot the PC, or simply restart networking (recommended).

I did try what you suggest. Reasonably sure I had this right as I had looked
at several examples and also at things on the web. I restarted the network and ifconfig
didn’t show a static link. On my old computer I get inet addr:192.168.0.28
I also restarted the computer without any luck. I started to think that maybe CentOS 6.3 had some “special” features. I will be on vacation for a couple of weeks, but will return to getting this computer working correctly.

By the way, for years I have run my own mail and http servers on my personal computer that only served me. This was because other servers such as my universities had restrictions that caused me problems. I am assuming that even in this simple case, I need a static IP???