Un Raspberry Pi es un mini-ordenador que permite a los usuarios hacer prácticamente cualquier cosa. Podemos utilizarlo desde como un servidor hasta como una completa videoconsola retro, todo según el sistema operativo que utilicemos y las configuraciones que apliquemos. En este tutorial os vamos a enseñar cómo configurar un Raspberry Pi para funcionar como un router Wi-Fi.

Pasos iniciales

Lo primero que debemos hacer es instalar el sistema operativo en nuestro Raspberry Pi. En nuestro caso hemos utilizado la última versión de Raspbian, aunque se puede utilizar cualquier otro sistema (aunque los comandos podrían variar).

Una vez instalado el sistema operativo en nuestro micro SD lo ejecutamos por primera vez para completar la instalación y configuración del mismo (por ejemplo, en el caso de Raspbian completar el asistente de “sudo raspi-config“).

Una vez configurado y con el dispositivo funcionando y conectado a Internet mediante RJ-45 actualizamos las fuentes de software, las aplicaciones y el sistema tecleando:

sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade

Una vez con nuestro sistema actualizado podemos seguir con el tutorial para configurar nuestro Raspberry Pi para funcionar como un router.

Comprobar que nuestra tarjeta USB Wi-Fi es detectada y funciona en modo AP

Lo primero que haremos será comprobar que el dispositivo detecta la tarjeta. Para ello tecleamos:

lsusb

Y nos debería aparecer allí listada. Una vez que aparece ejecutaremos otro comando para comprobar que la tarjeta Wi-Fi puede funcionar en modo AP:

iw list

Si en el resultado que nos aparece en pantalla podemos ver la línea: Mode: AP, la tarjeta es compatible para realizar esta configuración, de lo contrario, debemos buscar otra tarjeta cuyo chipset permita configurarla como punto de acceso, o AP.

Instalar software necesario y dependencias

La mayor parte del software necesario viene por defecto instalado en Raspbian, aunque los únicos que podrían darnos problemas son el servidor DHCP y el servicio de creación de puntos de acceso, que podemos instalar manualmente (en caso de no estar disponible) tecleando:

sudo apt-get install isc-dhcp-server hostapd

Una vez llegados a este punto podemos reiniciar nuestro Raspberry para empezar con la configuración.

Configuración

Todas las configuraciones se realizan desde el terminal, a modo texto. Nosotros vamos a utilizar el editor nano y siempre antes de editar algún archivo crearemos una copia del mismo de manera que si ocurre algún error lo podamos restaurar.

Configurar el servidor DHCP

Lo primero que configuraremos será el servidor DHCP. Para ello editaremos el siguiente archivo:

sudo cp /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf.orig
sudo nano /etc/dhcp/dhcpd.conf

En este archivo debemos buscar una serie de líneas. Las siguientes están por defecto sin comentar, las comentamos con una almohadilla # delante de manera que dejen de estar habilitadas quedando de la siguiente manera:

#option domain-name "example.org";
#option domain-name-servers ns1.example.org, ns2.example.org;

Buscaremos el elemento #authoritative; que por defecto estará comentado y lo descomentamos para activarlo, quedando:

authoritative;

Para finalizar configuraremos la red en la que funcionará el servidor DHCP (en nuestro ejemplo en la red 192.168.2.0). Para ello nos situamos al final del documento y añadimos:

subnet 192.168.2.0 netmask 255.255.255.0 {
range 192.168.2.2 192.168.2.30;
option broadcast-address 192.168.2.255;
option routers 192.168.2.1;
default-lease-time 600;
max-lease-time 7200;
option domain-name "local";
option domain-name-servers 8.8.8.8, 8.8.4.4;
}

Guardamos los cambios y cerramos el archivo.

Abriremos un nuevo archivo de configuración del servidor, tecleando:

sudo cp /etc/default/isc-dhcp-server /etc/default/isc-dhcp-server.orig
sudo nano /etc/default/isc-dhcp-server

En este documento buscaremos (al final) la línea INTERFACES=”” y la cambiamos por:

INTERFACES="wlan0"

El servidor DHCP ya está configurado. Seguimos con el tutorial.

Configurar la conexión WLAN y Ethernet

Lo primero que haremos será desconectar la tarjeta Wi-Fi. Para ello tecleamos:

sudo ifdown wlan0

A continuación abriremos el fichero “interfaces”:

sudo cp /etc/network/interfaces /etc/network/interfaces.orig
sudo nano /etc/network/interfaces

Y lo configuraremos de la siguiente manera:

auto lo
iface lo inet loopback
iface eth0 inet dhcp
allow-hotplug wlan0
iface wlan0 inet static
address 192.168.2.1
netmask 255.255.255.0

Comentamos o borramos las demás líneas. Guardamos los cambios y cerramos el documento. Para aplicar los cambios al momento debemos teclear:

sudo ifconfig wlan0 192.168.2.1

Configurar el punto de acceso

Una vez más, editaremos otro fichero tecleando:

sudo cp /etc/hostapd/hostapd.conf /etc/hostapd/hostapd.conf.orig
sudo nano /etc/hostapd/hostapd.conf

Y en este archivo borramos lo que haya (si hay algo) y pegamos:

interface=wlan0
ssid=RaspiAP
hw_mode=g
channel=6
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=2
wpa_passphrase=password
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP

Podemos cambiar tanto el SSID por el nombre que queramos dar a nuestra red como el canal en channel y la wpa_passphrase con la contraseña, en texto plano, que queramos utilizar para conectarnos.

Para finalizar con la configuración abrimos un nuevo archivo de configuración tecleando:

sudo cp /etc/default/hostapd /etc/default/hostapd.orig
sudo nano /etc/default/hostapd

Descomentamos y cambiamos la línea #DAEMON_CONF=”” por:

DAEMON_CONF="/etc/hostapd/hostapd.conf"

Guardamos y cerramos el archivo para finalizar. Ya casi hemos finalizado, sólo quedan unos ajustes menores y configurar Raspbian para que todo esto se ejecute al inicio del sistema de forma automática.

Configuraciones finales

Aunque nuestro router-punto de acceso ya está configurado y es funcional, no podemos conectarnos a Internet a través de él ni se ejecutan las configuraciones de forma automática al iniciar. Para que esto funcione debemos seguir unos últimos pasos que listamos a continuación.

Configurar reenvío de paquetes

Para que Raspberry Pi reenvíe los paquetes desde él mismo hasta el router para poder salir a Internet debemos configurar los siguientes elementos:

Abrimos y editamos el fichero sysctl:

sudo cp /etc/sysctl.conf /etc/sysctl.conf.orig
sudo nano /etc/sysctl.conf

En este documento buscaremos la línea “# net.ipv4.ip_forward=1” y la descomentaremos, quedando:

net.ipv4.ip_forward=1

Guardamos y cerramos el documento. Para que los cambios tengan efecto al momento teclearemos:

sudo sysctl -p /etc/sysctl.conf

Habilitamos la NAT tecleando:

sudo iptables -t nat -A POSTROUTING -j MASQUERADE

Y guardamos las reglas iptables para que los cambios persistan (instalamos el siguiente paquete: sudo apt-get install iptables-persistent y seguimos el asistente).

Configurar arranque automático

Para que el punto de acceso y el servidor DHCP arranquen de forma automática con nuestro dispositivo debemos indicarlo específicamente y habilitar los servicios para que se activen junto a Raspbian. Para ello desde el terminal tecleamos:

sudo update-rc.d hostapd enable
sudo update-rc.d isc-dhcp-server enable

Último ajuste

Antes de finalizar, hay un fichero de WPAsupplicant que puede dar problemas en algunas ocasiones, por lo que para asegurarnos de que esto no ocurre lo movemos a una ruta segura tecleando:

sudo mv /usr/share/dbus-1/system-services/fi.epitest.hostap.WPASupplicant.service /home/pi

Nuestro Raspberry Pi ya funciona como un router Wi-Fi

Una vez llegados a este punto ya podemos reiniciar nuestro Raspberry Pi. Cuando este vuelva a arrancar automáticamente creará el punto de acceso, podrá asignar direcciones IP a los hosts que se conecten a él y enrutará todo el tráfico procedente de la tarjeta Wi-Fi a través de la tarjeta de red hacia el router, siempre y cuando estemos conectados a uno.

Publicado por Rubén Velasco el 03 marzo 2015 , actualizado el 05 enero 2017

  • Edgar Ramirez

    Haciendo el proyecto me dice ue elservidor dhcp “is not running”, seguítus pasos al pie de la letra, tienes idea de que puedo hacer

    • ¿Has iniciado el proceso en /etc/init.d ?

      • Edgar Ramirez

        Te refieres a cuando agregamos al arranque automatico?

        • Automático o manual, desde init.d para iniciar el proceso.

  • Marwuin

    Muy bien explicado, gracias por compartir esta información. Tengo algunas dudas.
    1) Que alcance logró obtener (distancia de conexión)?.
    2) La conexión es estable?
    3) El RPi suministra la corriente suficiente para funcionar o sería recomendable usar alimentación externa?.
    4) Cuantos usuarios concurrentes se pueden conectar?.

  • Luis

    En primer lugar, enhorabuena por el tutorial.
    Tengo un problema a la hora de establecer el NAT y es:

    libkmod: ERROR ../libkmod/libkmod.c:554 kmod_search_moddep: could not open moddep file ‘/lib/modules/3.18.11-v7+/modules.dep.bin’
    iptables v1.4.14: can’t initialize iptables table `nat’: Table does not exist (do you need to insmod?)
    Perhaps iptables or your kernel needs to be upgraded.
    Llevo varios días y soy incapaz de arregrarlo. ¿Alguna solución ?
    Muchas gracias

    • ¿Qué versión de Linux tienes? Raspbian? Tienes actualizados los últimos paquetes (update && upgrade)?

  • Santiago Venegas

    si se puede desbloquear puertos como cualquier router wifi

  • Iván

    Muy buen post, pero me gustaría saber como lo hago para repetir una red wifi hacia una red cableada, lo contrario a lo del post, te agradecería mucho tu ayuda 🙂

    • Simplemente conectándote a la red inalámbrica vía Wi-Fi, ya tendrías acceso vía LAN.

  • Alejandro Villalobos

    Saludos, muchas gracias por la información muy clara y completa.
    He estado trabajando en hacer la configuración en modo cliente, es decir, que la RPi reciba internet desde wifi, y lo comparta por ethernet. Eso lo he hecho muy bien. Es mas o menos lo que usted hace aquí pero al confirmar las interfaces se debe tener en cuenta quien es la entrada y la salida.
    Mi duda es, que he hecho de todo para que la wifi arranque automáticamente, y no lo he logrado. Si levanto la interfaz manualmente con ifup wlan0 no hay problema, se configura la red wifi y acepta ip y todo. Pero al reiniciar no lo levanta.
    La red a la que me conecto es red abierta. No requiere clave.

    • Alejandro Villalobos

      Saludos, el problema que tenia para mantener la conexion de wifi automáticamente luego de reinicio era algo con el raspbian, ya que era inexplicable. Cambie el raspbian por el nuevo jessy-lite y configure identicamente y ahora si levantan las dos redes sin ningun problema

  • Shen

    Buenas tardes, siguiendo los pasos me encuentro con un problema mi carpeta de hostapd no tiene ninguna sub carpeta, lo que hay dentro es un archivo ifdownup.sh, como puedo hacer en ese caso? será la versión de hostapd que tengo o debo descargar alguno en particular?

  • Luis Fernando

    Lo intente en una raspberry pi 3 con su adaptador wifi, pero no funciono y se perdio la conexi’on a redes inalambricas

  • Nes

    Hola
    Me funcionó a la primera(casi) con una raspi, aunque allow-hotplug debe tener un guión enmedio (OJO a eso por lo de copiar y pegar desde la web). Pero en una raspi 2 hago lo mismo pero hostapd no acaba de iniciarse de forma automática ( pero si manualmente)
    Gracias

  • Carlos

    Hola tengo un problema cuando me conecto a la wifi que cree no tengo acceso a internet, he seguido todo al pie de la letra alguna idea de como solucionarlo.

  • JUAN CARLOS MARTINEZ SILVA

    excelente, he logrado hacerlo, luego instale el servidor dlna y ahora tengo videos en streaming, gracias por todo.

  • Edwin Mejía

    Ya encontré la solución al final de hacer el tutorial hay que escribir: sudo /usr/sbin/hostapd /etc/hostapd/hostapd.conf para que quede el access point activo!
    Y también en la parte donde dice:
    Habilitamos la NAT tecleando está incompleto ya que se deben poner todos estas lineas:
    sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
    sudo iptables -A FORWARD -i eth0 -o wlan0 -m state –state RELATED,ESTABLISHED -j ACCEPT
    sudo iptables -A FORWARD -i wlan0 -o eth0 -j ACCEPT la verdad que faltan muchos comandos para que funcionen: otra solución es que sigan la guia que yo seguí y me funcionó con una raspberry pi 3 en raspbian https://geekytheory.com/tutorial-rasbperry-pi-como-crear-un-punto-de-acceso-wifi/ una recomendación todo me funciona pero sin seguridad. O sea mi access point está abierto pero es mi unica manera por la cual me funciona

    • Hola,

      Gracias por tu comentario, pero el manual si se sigue paso a paso no debería haber problemas, porque lo hemos comprobado (tal vez se nos escape algo peeero)…

      Greacias nuevamnete!

  • Edwin Mejía

    Una consulta! En clase mi ingeniero quiere que la raspberry me funcione como puente. O sea, un compañero con un portal web para autenticarse me da internet a mi por ethernet y yo doy salida por wifi con el access point para que las personas se conecten libremente y les abra el portal del compañero y luego de autenticarse en el portal puedan acceder a internet. Pero mi ingeniero me dice que no debo configurar DHCP sino que mi amigo del portal me debe dar DHCP para que asigne las IPs automáticas a quienes se conecten a mi access point. ¿Es posible hacer eso? Mi pregunta es que sino configuro DHCP me seguirá funcionando? porque ya intenté omitir los pasos del DHCP y el access point sigue apareciendo pero cuando me conecto tan solo queda obteniendo Ip y nunca la obtiene. Me imagino que es porque le quito el DHCP pero quiero saber si me ayudan

  • David Castro

    muchas gracias por tan buen, en mi caso con raspberry pi 3 con wifi no podía hacer que funcionare repetía la señal wifi pero no consegua Internet y logre solucionarlo de una manera muy fácil en: sudo nano /etc/network/interfaces en la linea 4 de la imagen de este tutorial pone allow hotplug wlan0 lo unico que hize fue poner un guion asi
    allow-hotplug wlan0 en medio de allow y hotplug espero les sirva de algo
    gracias

  • David

    Tendria una pregunta ¿seria posible conectar a una vpn la raspberry? es decir, mi idea es conectarla via LAN y pasar por una VPN para que el Wifi que salga de la Raspberry venga por la VPN y los que se conecten a ella pasen por la VPN sin verlo. ¿Es posible?

    Gracias!

Últimos análisis

Valoración RZ
9
Valoración RZ
8
Valoración RZ
8
Valoración RZ
8
Valoración RZ
8
Valoración RZ
10
Valoración RZ
8