RPi Setting up a static IP in Debian

From eLinux.org
Revision as of 09:51, 21 August 2019 by Freq (talk | contribs) (DHCPCD Configuration as primary static IP configuration, using systemd)
Jump to: navigation, search


This page is may need to be merged with other page(s) including Configuring a Static IP address on your Raspberry Pi. Please help to merge the articles, or discuss the issue on the talk page.

Using a static IP can be very useful in case you wish to easily access your RPi without need to get its IP address every time it boots or reconnects to the network (i.e. using SSH, (S)FTP services).

To achieve this there are a few quick steps to be followed.

You only need to modify the file /etc/network/interfaces

Before you do, backup the current version of the interfaces file, if there is already one present:

 pi@raspberry: sudo cp /etc/network/interfaces /etc/network/interfaces.sav

You can edit the file with any text editor such as nano or vim.

We need root privileges, so we use sudo:

 pi@raspberry: sudo vi /etc/network/interfaces

In the interfaces file look for a line such as:

 iface eth0 inet dhcp

This is to enable the DHCP client. You do not want this to work any more.

Put a hash at the beginning of the line to disable it or delete it:

 #iface eth0 inet dhcp

In the file you must insert the following lines:

 # The loopback interface
 auto lo
 iface lo inet loopback
 auto eth0
 iface eth0 inet static
 #your static IP
 #your gateway IP
 #your network address "family"

Only the address and netmask data are strictly required.

If for example your LAN is configured to have IP adresses in the range x.x.x.1 to x.x.x.255, you will put x.x.x.0 in the network line.

"address" is the IP you want the RPi will assume (in the proper range, as described above). pay attention not to use an IP already used by another device in your LAN or that can be assigned to a device by your router by DHCP (set the DHCP range of the router wisely in order to avoid potential overlaps).

"netmask" will "always" be

gateway is usually x.x.x.1 (your router IP or the one given by your ISP)

You now need to restart the network:

 pi@raspberry:sudo /etc/init.d/networking restart

You may now be disconnected from your RPi if you are working through the network. Connect again to the RPi using the static IP you chose and you should now be fine.

You may receive the following error upon executing this command, and no longer have network access even though the network indicators are active. "Running /etc/init.d/networking restart is deprecated because it may not re-enable some interfaces" Solution if you experience this, connect keyboard and "sudo reboot", or do it the hard way.

This command may work if the 'restart' command fails:

 pi@raspberry:sudo /etc/init.d/networking reload

Fallback to static IP if DHCP fails

DHCPCD Configuration as primary static IP configuration, using systemd

Using your favorite text editor, open /etc/dhcpcd.conf

The following example will set a Static IP by means of a service:

  1. Example Wired Static IP

interface eth0

       static ip_address=
       static routers=
       static domain_name_servers=

-Save your configuration and issue the following command:

sudo systemctl enable dhcpcd.service

-Your static address will be accessible upon your next reboot or network restart.

Further reading