Ubuntu Static IP KB ID 0001892
Problem
Like most OSs out of the box the system is set to get it’s IP address from a DHCP server (i.e. dynamically). On the rare occasions I’m deploying Linux its to perform a specific task, so in nearly all cases I want it to have a static IP. Here is how to achieve that.
Solution : Ubuntu Static IP
Disable Cloud-Init
Since Ubuntu version 18.04, it has shipped with this enabled, you can proceed with it enabled, but the procedure is different and your efforts can be ignored, so I simply disable it. the first command sees if its running (if it yields any output, {as shown} then it is).
Remember: This procedure changes the IP address, if you are connected remotely by SSH for example, you may lose connectivity. Perform this at the console or ensure you can reconnect to the new IP address (post change).
apt-cache pkgnames | grep cloud-init sudo nano /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg
ENTER YOUR PASSWORD
Paste in the following, then save and exit (CTRL+X > Y > Enter).
network: {config: disabled}
Then reboot the machine.
reboot
Ubuntu Static IP Netplan
Ubuntu will apply a set of network configuration settings that are formatted as YAML. Before we create that file let’s look to find out what our network interface is called, what the current IP address and network range is, and where the default gateway (or default route) has been pointed to.
ip addr ip route
From the above we can see our interface is called ens33 (yours may be called something different like eth0), it has an IP address of 192.168.100.103/24 (i.e it has a netmask of 255.255.255.0), and its default gateway is 192.168.100.1 To see the current netplan we need to look in/etc/netplan as you can see (below) mines called 50-cloud-init.yaml (yours may have a slightly different name, so change to the directory and list is contents to make sure.
cd /etc/netplan
ls
sudoedit {name-of-your-netplan-file}.yaml
Here is an idea of what your file may currently look like.
And here is one I’ve edited to include the required IP 192.168.100.20/24 and the default route (gateway) 192.168.100.1, and my local DNS servers 192.168.100.10 and 192.168.100.3.
network: ethernets: ens33: dhcp4: no addresses: - 192.168.100.20/24 routes: - to: default via: 192.168.100.1 nameservers: addresses: [192.168.100.10,192.168.100.3] Version: 2
Save and exit the file, then apply the netplan (Note: if you are connected via SSH you may lose connectivity).
Note: For an example of setting up a bridged network see the link below.
sudo netplan apply
AT THIS POINT CHECK CONNECTIVITY