{"id":22772,"date":"2019-07-20T00:00:38","date_gmt":"2019-07-19T22:00:38","guid":{"rendered":"https:\/\/eltallerdelbit.com\/?p=22772"},"modified":"2020-09-03T22:46:20","modified_gmt":"2020-09-03T20:46:20","slug":"configurar-wifi-estatica-raspbian-stretch","status":"publish","type":"post","link":"https:\/\/eltallerdelbit.com\/configurar-wifi-estatica-raspbian-stretch\/","title":{"rendered":"Configurar wifi estatica en Raspbian Stretch"},"content":{"rendered":"
\n
\n
\nCONTENIDOS:<\/p>\n
<\/p>\n
Matar procesos\u00a0wpa_supplicant<\/em><\/strong><\/a><\/p>\n<\/li>\n<\/ul>\n <\/p>\n <\/p>\n Decimos que se ha complicado porque el funcionamiento que se consideraba habitual (a trav\u00e9s del archivo \/etc\/network\/interfaces<\/strong><\/em>) ha cambiado (aunque el archivo interfaces<\/em> siga siendo compatible).<\/p>\n Hace tiempo (y actualmente tambi\u00e9n funciona, aunque se desaconseja) se usaba el archivo \/etc\/network\/interfaces<\/em> para declarar las interfaces y configurarlas como est\u00e1ticas o din\u00e1micas (dhcp), la m\u00e1scara de red, la gateway, en el caso del wifi se configuraba tambi\u00e9n el ssid<\/em> y la clave wifi … lo t\u00edpico, vamos.<\/p>\n Hoy d\u00eda, en 2019, con Raspbian Stretch<\/em>, y tras las diversas actualizaciones de Raspbian<\/em>, la forma m\u00e1s adecuada de configurar la red en Raspberry<\/strong> para configurar una IP est\u00e1tica<\/strong> en lugar de din\u00e1mica, es por medio del archivo \/etc\/dhcpcd.conf<\/a> <\/em><\/strong>(aunque tambi\u00e9n hemos de revisar el archivo \/etc\/network\/interfaces) y para conectar a la red wifi pondremos su configuraci\u00f3n en \/etc\/wpa_supplicant .conf<\/em><\/strong><\/em>.<\/p>\n De hecho, en la parte superior del archivo interfaces<\/em> podremos leer:<\/p>\n # Tenga en cuenta que este archivo est\u00e1 escrito para ser usado con dhcpcd<\/br> M\u00e1s claro agua .. pero desde aqu\u00ed lo vamos a explicar y mostrar c\u00f3mo realizar la configuraci\u00f3n correctamente. <\/p>\n <\/p>\n Los archivos que entran en juego para configurar correctamente el Wifi en Raspbian<\/em><\/strong>, son:<\/p>\n <\/p>\n —> Vamos a ver c\u00f3mo tendr\u00eda que quedar los archivos de configuraci\u00f3n para activar la red Wifi correctamente: <\/p>\n —> \u00bfqu\u00e9 hay que cambiar en este archivo?:<\/p>\n Ya que vamos a configurar el Wifi a trav\u00e9s del archivo dhcpd.conf<\/strong><\/em>, y vamos a modificarlo, la configuraci\u00f3n de red se regir\u00e1 por dicho archivo. As\u00ed que en la interfaz eth0, lo dejaremos como “manual<\/em>“. <\/br>Despu\u00e9s, cuando el servicio dhcpcd<\/em> <\/strong>vaya a buscar la configuraci\u00f3n al archivo dhcpcd.conf<\/em><\/strong>, y no encuentre nada relativo a la interfaz eth0<\/em>, le asignar\u00e1 una direcci\u00f3n din\u00e1mica.<\/p>\n Y a la interfaz wlan<\/em> le asignar\u00e1 la direcci\u00f3n est\u00e1tica que despu\u00e9s veremos c\u00f3mo configurar en el archivo dhcpcd.conf<\/em><\/strong>.<\/p>\n —> en la interfaz eth0, hemos de cambiar la opci\u00f3n “dhcp<\/em>” por “manual<\/em>“.<\/p>\n <\/p>\n <\/p>\n <\/p>\n <\/p>\n <\/p>\n <\/p>\n <\/p>\n <\/p>\n <\/p>\n por el SSID al que se conectar\u00e1:<\/p>\n y despu\u00e9s la configuraci\u00f3n de<\/p>\n y<\/p>\n <\/p>\n <\/p>\n <\/p>\n Para configurar la conexi\u00f3n WiFi por SSH tenemos que editar el archivo\u00a0\/etc\/wpa_supplicant\/wpa_supplicant.conf<\/strong>\u00a0y a\u00f1adir al final del archivo las siguientes l\u00edneas:<\/p>\n <\/p>\n <\/p>\n <\/p>\n <\/p>\n Si funciona as\u00ed, es que tenemos un error en el archivo wpa_supplicant.conf<\/em><\/strong>. As\u00ed que tendremos que revisarlo y comprobar que las opciones que hemos introducido son correctas. <\/p>\n <\/p>\n o<\/p>\n Despu\u00e9s volvemos a ejecutar el comando anterior para conectar por terminal al wifi, o simplemente activamos la wifi y dejamos que se conecte con las opciones que ya hemos configurado previamente, con el comando:<\/p>\n <\/p>\n\n\r\n# Please note that this file is written to be used with dhcpcd\r\n# For static IP, consult \/etc\/dhcpcd.conf and 'man dhcpcd.conf'\r\n<\/pre>\n
\nO sea:<\/p>\n
\n# Para IP est\u00e1tica, consulte \/etc\/dhcpcd.conf y ‘man dhcpcd.conf’<\/p>\n
\n <\/p>\n\u00bfQu\u00e9 pasar\u00eda si nos ponemos a trastear en el archivo \/etc\/network\/interfaces<\/em> para asignar IP est\u00e1tica en interfaz Wlan (WIFI) ?<\/span><\/h3>\n
\nSi no editamos correctamente el archivo \/etc\/network interfaces<\/em> y el \/etc\/dhcpcd.conf<\/em>, tendremos problemas de red y de servicios (concr\u00e9tamente en el log<\/em> podremos ver errores que vienen del servicio networking<\/em> y del servicio dhcpcd<\/em><\/a>).<\/p>\n\n
\n <\/p>\nEl archivo \/etc\/network\/interfaces<\/em><\/strong><\/span><\/h3>\n
\nEl archivo \/etc\/network\/interfaces<\/em> hemos de dejarlo casi sin cambios. Digo casi, porque la red no la configuraremos con este archivo, sino con el archivo dhcpcd.conf<\/strong><\/em>, pero s\u00ed que hemos de cambiar una l\u00ednea para que la interfaz eth0 funcione y el servicio dhcpcd<\/em><\/strong> no nos de un error.
\n <\/p>\nCambios en el archivo \/etc\/network\/interfaces<\/em><\/span><\/h4>\n
\r\n# Please note that this file is written to be used with dhcpcd\r\n# For static IP, consult \/etc\/dhcpcd.conf and 'man dhcpcd.conf'\r\n\r\n# Include files from \/etc\/network\/interfaces.d:\r\nsource-directory \/etc\/network\/interfaces.d\r\n\r\nauto lo\r\niface lo inet loopback\r\n\r\nauto eth0\r\niface eth0 inet manual\r\n\r\nallow-hotplug wlan0\r\niface wlan0 inet manual\r\nwpa-conf \/etc\/wpa_supplicant\/wpa_supplicant.conf\r\n<\/pre>\n
\n<\/p>\nResumen de configuraci\u00f3n del archivo \/etc\/network\/interfaces<\/em><\/span><\/h4>\n
\n
Configuraci\u00f3n del archivo \/etc\/dhcpdcd.conf<\/em><\/strong><\/span><\/h3>\n
\nAhora veremos lo que hemos de modificar en el archivo \/etc\/dhcpcd.conf<\/em><\/strong>, para que las interfaces eth0<\/em> y wlan0<\/em> funcionen, as\u00ed como las configuraciones de iP est\u00e1tica (cuando lo deseemos):<\/p>\n\r\n#interface wlan0\r\nssid myssid\r\n# aqu\u00ed en lugar de \"interface wlan0\" podr\u00edamos poner \"ssid NOMBRE_DEL_SSID\"\r\n# De esa forma, la interfaz se configurar\u00e1 con la IP est\u00e1tica que hayamos configurado en cada SSID.\r\n<\/pre>\n
\r\nstatic ip_address=192.168.0.19\/24\r\nstatic routers=192.168.0.1\r\nstatic domain_name_servers=192.168.0.1 8.8.8.8\r\n<\/pre>\n
\n
\n <\/p>\nResumen y explicaci\u00f3n de la configuraci\u00f3n del archivo \/etc\/dhcpcd.conf<\/em><\/strong><\/span><\/h4>\n
\n
interface wlan0<\/pre>\n
ssid myssid<\/pre>\n
\n
interface eth0<\/pre>\n
\r\nip_address\r\nrouters\r\ndomain_name_servers\r\n<\/pre>\n
\n*N\u00f3tese que en el archivo \/etc\/network\/interfaces<\/em>, como coment\u00e1bamos antes, la interfaz eth0 la hemos declarado como manual<\/em><\/strong>, no como dhcp<\/em>, que era lo habitual al utilizar el archivo \/etc\/network\/interfaces<\/em><\/p>\n
\nCuando realicemos cambios en el archivo dhcpcd.conf<\/em><\/strong>, hemos de ejecutar los comandos:<\/p>\nsystemctl daemon-reload<\/pre>\n
systemctl restart dhcpcd.service<\/pre>\n
Configurar clave y encriptaci\u00f3n de la red Wifi en el archivo wpa_supplicant.conf<\/strong><\/em><\/span><\/h3>\n
\r\nnetwork={\r\n\r\nssid=\"MIREDWIFI\"\r\n\r\npsk=\"AFE2FE7BC2cmgfu4khgls\"\r\n\r\nkey_mgmt=WPA-PSK }\r\n<\/pre>\n
Comprobar Errores de Configuraci\u00f3n en el archivo \/etc\/wpa_supplicant\/wpa_supplicant.conf<\/em><\/strong><\/span><\/h3>\n
\nSi con la configuraci\u00f3n de dhcpcd.conf<\/em>, la wifi no funciona o no conecta correctamente, podemos probar a configurar la wifi desde \/etc\/network\/interfaces<\/em>, as\u00ed:<\/p>\n\r\nallow-hotplug wlan0\r\n\r\nauto wlan0\r\n\r\niface wlan0 inet dhcp\r\n\r\nwpa-ssid \"MISSID\"\r\n\r\nwpa-psk \"c6a295a4\"\r\n<\/pre>\n
\n
\n <\/p>\nConectar a red wifi desde la terminal de Linux<\/span><\/h3>\n
\nPodemos realizar la conexi\u00f3n wifi desde la terminal Linux<\/strong> con este comando:<\/p>\nsudo wpa_supplicant -Dnl80211 -iwlan0 -c\/etc\/wpa_supplicant\/wpa_supplicant.conf<\/pre>\n
\n
\n
\nPero si el proceso wpa_supplicant<\/em> ya est\u00e1 funcionando preciamente, tendremos que matar el proceso wpa_supplicant<\/em><\/strong> primero, porque sino no podremos conectar por wifi; podremos ver errores relacionados en el log.
\n <\/p>\nMatar procesos<\/a> wpa_supplicant<\/em><\/strong><\/span><\/h4>\n
\nPara matar los procesos wpa_supplicant<\/em> existentes, podremos hacerlo as\u00ed:<\/p>\nkillall wpa_supplicant<\/pre>\n
sudo kill -9 $(pidof wpa_supplicant)<\/pre>\n
ifup wlan0<\/pre>\n