This week I bought a Raspberry Pi 3 to function as an AirPlay streaming receiver, print server, and HomeKit hub for my Belkin WeMo devices. (I haven’t gotten to those projects yet, but I will post status updates as I go.) I sat down to start this project. Step 1: Set a static IP. Starting in Raspbian Jessie, which became available in September 2015, IP addresses are no longer set in /etc/network/interfaces, but rather in a different file, /etc/dhcpcd.conf. It has a slightly different format, so an example is provided below.
interface eth0
static ip_address=192.168.0.80
static routers=192.168.0.1
static domain_name_servers=8.8.8.8
In my case I replaced eth0 with wlan0, since I was setting this up over the Wi-Fi. After making these changes I was able to connect to the static IP from another computer via SSH, but unable to connect out to the internet. Running ifconfig yielded an empty gateway. You can also run this command to check your gateway settings:
sudo route -n
If you’re able to confirm the gateway is missing you can set one by running:
sudo route add default gw 192.168.x.x
After setting this outside internet access should start working.
Credit to this thread on StackExchange for being the page that led me to this solution.
UPDATE: It looks like this may need to be run on every boot. I will investigate further.
UPDATE 2: (12/10/2017) It turns out I’m just dumb. The above text originally read “static router” not “static routers.” The second route add command isn’t needed when you do this correctly.