If you followed our article on how to SSH to your Raspberry Pi so that you can control it over a network, you might be tired of having to run the commands to find out what its current IP address is on your network.
Most networks assign IP addresses dynamically, which means each device on the network is assigned an IP address from a pool of available IP addresses. The address for a specific device may change over time if it is rebooted or the address is automatically reassigned for some reason. This is called DHCP – Dynamic Host Configuration Protocol.
Giving your Raspberry Pi a static IP address on your network means that it will always have the same address for you to connect to.
This article assumes you are running Raspberry Pi OS.
Step 1 – SSH to Your Raspberry Pi (or Attach a Screen & Keyboard)
It’s highly recommended that you set a static IP address using a screen and keyboard just in case you make a mistake – you may not be able to reconnect if the network configuration isn’t valid.
Step 2 – Find Out Which Interface is Connected
Run the following in your terminal to see what interfaces are connected:
ip addr show
Which will output something that looks like this:
Here you can see the connected network interfaces. Each entry in the above output represents an interface – each entry taking the format
number: name: details
The interface named lo is the LOOPBACK interface, used for the computer to communicate with itself. It’ll always be there on most systems.
Below is the only other connected network interface wlan0, the wireless network connection on this Raspberry Pi. We can tell it is connected as it says UP in the block of information next to it!
If the wired ethernet connection were connected rather than the wireless, you’d see eth0 instead of wlan0. It’s possible but unlikely on a default installation of Raspberry Pi OS that your network interfaces will have different names than those shown here.
Step 3 – Finding your Network and Gateway
You will probably want to assign your Raspberry Pi an IP address on the network it’s already connected to. To do so, we will need to know what network addresses we should use to talk to other devices already there.
Finding the Network
This current IP address assigned to your Raspberry Pi is visible in the previous step’s output.
The IP address following inet will tell you the current IP. Yours will be different but will be for a local IP address range.
Finding the Gateway
For your Raspberry Pi to talk to the outside world, it will also need to know the address of your gateway – your internet modem/router. Run the following to do so:
ip r show
This will output the current network routes configured on your system:
We are interested in the default route on the first line. This tells us that by default, traffic is routed via 220.127.116.11 – now we know the gateway’s address.
Finding Your DNS Servers
You will also need to know what DNS servers you are currently using (if any) if you wish to access the internet. These can be found by running:
Which will output the contents of the resolv.conf file as generated by your system.
Here you can see the default nameserver assigned is your router – 192.168.1.254.
Step 4 – Finding an Available IP Address
This step is dependent on the brand and configuration of the router you have.
When DHCP assigns an IP address automatically, your router will choose one from a range of IP addresses defined in its configuration. We should not assign the Raspberry Pi a static address that falls into that range, as otherwise, it may conflict if another device receives that address automatically.
You’ll have to check your router configuration or user manual to find out what this range is so that you can make sure you avoid using an address from it.
Step 5 – Assigning the IP Address to the Connected Interface
My network has a DHCP range of 192.168.100 to 192.168.200, from which addresses will be automatically assigned, so I will assign my Raspberry Pi the address:
This is to make sure that it doesn’t conflict with an existing IP (or the router’s IP address, which is 192.168.1.254).
Assigning a Static IP Address Temporarily
To assign a static IP address until the next reboot, just run:
sudo ip address add 192.168.1.201/24 dev wlan0
Replacing 192.168.1.201 with the IP address you wish to assign and wlan0 with the interface’s name to assign it to.
Assigning a Static IP Address Permanently
The network configuration will need to be edited to assign an address permanently. Edit the relevant configuration file by running:
sudo nano /etc/dhcpcd.conf
The configuration file(s) which you will need to edit will differ depending on your Linux distribution – this method is tested on Raspberry Pi OS in its default state
Add the following lines to the end of the file:
# Static IP Address interface wlan0 static ip_address=192.168.1.201/24 static routers=192.168.1.254 static domain_name_servers=192.168.1.254 18.104.22.168
- Lines beginning with # are comments and are not read as configuration entries
- interface is the name of the connected interface and tells the configuration that the configuration lines following it will be applied to that interface – for this example, it is wlan0
- static ip_address is the static IP address you wish to assign to this interface – 192.168.1.201 in this case
- static routers is the IP address of the gateway/router on your network. 192.168.1.254 is the IP address of the router for this example.
- static domain_name_servers are the DNS servers we wish to use for this network. As seen above, mine is 192.168.1.254 as my router acts as the DNS server. I’ve added a second DNS server separated from the first by a single space. 22.214.171.124 is Google’s DNS server, which will act as a second/fallback DNS server.
To apply these changes, save the document by pressing CTRL + X and pressing Y to save. Then, reboot.
Your Raspberry Pi now has a Static IP!