How to setup static IP in Ubuntu Server 12.04?
sudo apt-get update
sudo apt-get upgradeifconfigsudo nano /etc/network/interfacesauto eth0 iface eth0 inet static address 192.168.1.150 netmask 255.255.255.0 network 192.168.2.0 broadcast 192.168.1.255 gateway 192.168.2.1 safesudo nano /etc/resolv.confDo not edit this file by hand --your changes will be overwritten # I add this nameserver 8.8.8.8 nameserver 8.8.4.4sudo apt-get remove dhcp-clientsudo /etc/init.d/networking restart*Running /etc/init.d/networking restart is deprecated because it may not enable again some interfaces *Reconfiguring network interfaces... ssh stop/waiting ssh start/running,process 1438
Where is the mistake? I'm not lazy. I Googled it for 3 days but without results. I tried everything.
After reboot the /etc/resolv.conf file is flashing to the original state.
3 Answers
This has two independent questions:
resolv.conf entries getting reset after a reboot
The way /etc/resolv.conf working has been changed in Ubuntu 12.04. This is because of implementation of foundations-p-dns-resolving as described here to overcome some limitations of static resolv.conf.
Here you can get more details:
You can override the new feature by removing the symbolic link /etc/resolv.conf and create a file named /etc/resolv.conf there. But before doing that refer the link I given above and see why it is strongly discouraged.
IP Address Vs Network and Gateway Conflict (Setting up a static IP)
Also, As pgschk pointed out, your IP address is not matching gateway and network entries. But that is not causing the /etc/resolv.conf to go to original state, but the reason I mentioned above.
Your gateway address is in a different subnet than your local IP address:
address 192.168.1.150 gateway 192.168.2.1
Also, the network address was specified in the .2 subnet also:
network 192.168.2.0
Do you use the 192.168.1/24 or the 192.168.2/24 subnet?
Edit:About your resolv.conf: This file is mainly updated by different packages (depending on your setup). Try specifying the nameservers in your /etc/network/interfaces file:
dns-nameservers 8.8.8.8 8.8.4.4
You can try this option :
Remove the
/etc/resolv.confand then creat a newresolv.conf.sudo nano /etc/resolv.confafter that add the flag:sudo chattr +i /etc/resolv.conf- with this+iflag, even root can't touch this file. But if you want to change the nameserver, change the flag to be:sudo chattr -i /etc/resolv.confthen add your newnameserver.
Then try to reboot and see what happens :).
I hope this solves your problem.