Actualizado el 14 de mayo de 2020
Una vez que ya vimos en el artículo anterior como activar SSH sin monitor para conectarse a la Raspberry Pi, en este artículo vamos a ver como configurar la conexión WiFi y poner una IP fija o IP privada estática sin necesidad de utilizar un monitor y un teclado. También veremos al final del artículo cómo poner la IP fija desde el propio Raspbian.
Configurar la conexión WiFi sin necesidad de monitor
Para configurar la conexión a una red WiFi sin necesidad de utilizar un monitor y un teclado conectados a la Raspberry Pi tienes que insertar la tarjeta microSD a un ordenador, ya sea con GNU/Linux o con Windows y crear en la partición boot un archivo con el nombre wpa_supplicant.conf. Dentro de él tienes que poner el siguiente contenido:
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev update_config=1 country=ES network={ ssid="REDWIFI" psk="DFD4FD6FD3dsfds6dsffs" }
En la linea country tienes que poner las dos letras que identifican al pais donde estás. Puedes consultar las letras de cada país en la Wikipedia. En el caso de España ES.
En la línea ssid pon entre comillas el nombre de la red WiFi, en este caso REDWIFI.
En la línea psk la contraseña de la red, en este caso DFD4FD6FD3dsfds6dsffs.
Cuando tengas todo puesto con tus datos, guarda el archivo.

Poner una IP fija sin necesidad de monitor (headless)
Para configurar un IP fija sin conectar un monitor y un teclado a la Raspberry Pi tienes que hacerlo necesariamente desde un ordenador con GNU/Linux ya que tienes que modificar un archivo de la partición rootfs que está en formato ext4 y Windows no es capaz de leer y escribir en ese tipo de particiones.
Tienes que editar el archivo /etc/dhcpcd.conf de la partición rootfs. Y tienes que hacerlo con permisos de root ya que de lo contrario el archivo se abrirá en modo solo lectura y no te permitirá guardar los cambios. Para abrir el archivo y poderlo editar ejecuta la siguiente orden en una terminal del ordenador al que hayas conectado la tarjeta microSD sustituyendo usuario por tu nombre de usuario del equipo.
sudo nano /media/usuario/rootfs/etc/dhcpcd.conf
Y escribe al final del archivo las siguientes lineas:
interface wlan0 static ip_address=192.168.1.101/24 static routers=192.168.1.1 static domain_name_servers=8.8.8.8 8.8.4.4
En la primera línea, interface pon la tarjeta de red que quieras configurar, wlan0 en caso de la WiFi y eth0 en caso de la conexión por cable.
En ip_address escribe la IP que le quieras otorgar, en este caso 192.168.1.101, y al final le añade /24
Ahora, en el apartado routers pon la IP de tu router, en este caso 192.168.1.1
Y en la línea domain_name_servers pon los servidores DNS que quieras usar, en este caso he puesto los de Google, 8.8.8.8 y 8.8.4.4 separados por un espacio.

Guarda los cambios con Control + O y Enter y sal del editor nano con Control + X.
Ahora ya si puedes desmontar las dos particiones (boot y rootfs) de la microSD, sacar la tarjeta del equipo, insertarla en la Raspberry Pi y darle corriente.
Poner una IP fija desde Raspbian
Si lo que quieres es poner una IP fija en una Raspberry Pi que ya está funcionando, el procedimiento es muy similar.
sudo nano /etc/dhcpcd.conf
Para editar el fichero y escribe dentro de él las misma lineas que he explicado antes:
interface wlan0
static ip_address=192.168.1.101/24
static routers=192.168.1.1
static domain_name_servers=8.8.8.8 8.8.4.4
Sustituyendo los valores que necesites (la interface, la ip_adress, la ip del router y/o los DNS.
En la siguiente entrada veremos como regenerar las claves SSH para que no coincidan con las que tienen todas las instalaciones que usan la misma imágen que nosotros.
Si lo deseas también puedes consultar todos los artículos escritos en éste blog sobre la Raspberry Pi.
Cuando pongo la ip fija, me quedo sin internet, aunque me puedo conectar a la pi desde el ordenador, es decir, la ip fija funciona, pero la pi se queda sin poder navegar por internet con el chromium.
Sabes de alguna solución, porque llevo semanas intentando de todo y no hay nada que hacer.
Gracias de antemano y un saludo.
Ramón
Gracias a ti por comentar. Tiene pinta de ser un problema de DNS. ¿Has puesto correctamente la linea domain_name_servers?
Muchas gracias por tu aporte.
Un saludo!