RPi Setting up a static IP in Debian
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 address 192.168.1.118 #your gateway IP gateway 192.168.1.1 netmask 255.255.255.0 #your network address "family" network 192.168.1.0 broadcast 192.168.1.255
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 255.255.255.0
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:
interface eth0 static ip_address=10.100.129.18 static routers=10.100.129.1 static domain_name_servers=220.127.116.11
-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.