Change IP address permanently with ifconfig in Debian

I know there are several tutorials on how to manually change IP settings. However, I have yet to find a solution that fits my needs. I need to be able to script something that changes the IP address settings of a host machine. I have tried /sbin/ifconfig eth0 192.168.0.5 netmask 255.255.255.0; /sbin/route add default gw 192.168.0.1.

This solution works until the machine is rebooted. I have tried running the scripted solution at @reboot by crontab from root. However, the settings do not take effect. I have noticed too that /etc/network/interfaces settings do no change after making ifconfig calls.

Is there a way to change IP address settings using ifconfig so that the settings do not change on reboot?


You likely have your machine set to DHCP at boot...

Do:

sudo vi /etc/sysconfig/networking-scripts/ifcfg-eth0

change BOOTPROTO to BOOTPROTO="static"

Then add in your settings... Mine looks like this:

DEVICE="eth0"
BOOTPROTO="static"
BROADCAST="192.168.254.255"
DNS1="192.168.254.25"
GATEWAY="192.168.254.254"
HWADDR="F2:24:08:AE:93:10"
IPADDR="192.168.254.236"
NETMASK="255.255.255.0"
ONBOOT="yes"
TYPE="Ethernet"

Save and do:

sudo service network restart

Now your IP address is static and won't change after reboot.


The solution I am currently using is to put said commands in /etc/rc.local. It is tested and this option is found to work.