This article was written a long time ago. It should be improved to match the tone of the rest of the website. Update this article with recent work done on secondary IP.
Traditionally most enterprise environments used static IP. This is changing somewhat due to virtualization and the concept of stateless applications. But it's not quite there yet.
For your home server environment you might want to use Bonjour name resolution instead and just go by hostname.
Assuming your existing install is picking up DHCP correctly and your network is working fine. If you are learning using virtual machine softare like VMWare, ensure your guest OS network is set to use Bridged Networking. This will not work with sharing the network.
If possible, it is advised to be sure you can reach your machine via a console mechanism or experiment on a test machine first.
ifconfig
This will list your network cards. Usually you will see eth0 as being the network card enabled. Record the highlighted entries,
eth0 Link encap:Ethernet HWaddr 00:0c:29:35:62:69 inet addr:192.168.0.174 Bcast:192.168.0.255 Mask:255.255.255.0
Now I don't know how to get the rest on Ubuntu quite yet (now I do), so I go to a Windows machine on the same network and type,
ipconfig /all
Again, record the Default Gateway, line item 9, for the Ethernet adapter Local Area Connection,
Connection-specific DNS Suffix . : pham Description . . . . . . . . . . . : Broadcom NetLink (TM) Fast Ethernet Physical Address. . . . . . . . . : 00-15-C5-7F-D4-07 Dhcp Enabled. . . . . . . . . . . : Yes Autoconfiguration Enabled . . . . : Yes IP Address. . . . . . . . . . . . : 192.168.0.177 Subnet Mask . . . . . . . . . . . : 255.255.255.0 Default Gateway . . . . . . . . . : 192.168.0.1 DHCP Server . . . . . . . . . . . : 192.168.0.1 DNS Servers . . . . . . . . . . . : 192.168.0.1 Lease Obtained. . . . . . . . . . : March 13, 2009 11:25:09 AM Lease Expires . . . . . . . . . . : March 14, 2009 11:25:09 AM
Do a ping to verify that no other device is using the IP address. In this example we want to use 192.168.0.50,
ping 192.168.0.50 -c3 From 192.168.0.183 icmp_seq=1 Destination Host Unreachable From 192.168.0.183 icmp_seq=2 Destination Host Unreachable From 192.168.0.183 icmp_seq=3 Destination Host Unreachable --- 192.168.0.4 ping statistics --- 3 packets transmitted, 0 received, +3 errors, 100% packet loss, time 2025ms
Next on your Ubuntu machine,
sudo cp /etc/network/interfaces /etc/network/interfaces.v0.0 # Make a backup sudo ne /etc/network/interfaces # Where ne is your preferred text editor
The file will look like this,
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto eth0
iface eth0 inet dhcp
The area where you file might be different is eth0 may be ens3 or something similar. This changes depending on your version of Ubuntu and setup.
We modify the file and choose 192.168.0.50. Note that this ip address would never be assigned by my router as I modified the router's dhcp address range from 192.168.0.2 - 192.168.0.255 to only provide DHCP between 192.168.0.100 - 192.168.0.255. My router itself is using the ip address 192.168.0.1.
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto eth0
iface eth0 inet static
address 192.168.0.50
netmask 255.255.255.0
gateway 192.168.0.1
# Required as of Ubuntu 13.04 (in my testing, but I read 12.04 and up requires this)
dns-nameservers 192.168.0.1
# This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). # The loopback network interface auto lo iface lo inet loopback # The primary network interface auto eth0 iface eth0 inet static address 192.168.0.50 netmask 255.255.255.0 gateway 192.168.0.1 # Name servers are required for static entries. dns-nameservers 192.168.0.1
If you have not already, make sure are running from the console for this step. Otherwise you will be disconnected and have to connect again with the new ip address.
Now we restart the network services,
sudo /etc/init.d/networking restart
Verify by pinging your system from another machine.
After you know things are working you may want to uninstall the dhcp package. I have read (but not experienced myself) that after a certain amount of time it will take control and you will end up with a dhcp assigned ip.
sudo apt-get remove isc-dhcp-client dhcp3-client dhcpcd
Notes
Some instructions mention you need network and broadcast, but they are automatically calculated from the address and netmask values. In fact adding the wrong ones can prevent things from working so I recommend leaving them out.
If you have more than one dns server use the format, dns-nameservers 208.78.97.155 208.75.87.250
Questions for the You Reader
References
- http://www.debian-administration.org/articles/254
- Explains name servers are required for static entries - https://wiki.debian.org/NetworkConfiguration#Configuring_the_interface_manually