Tutorial Rasbperry Pi - Cómo crear un punto de acceso WiFi

Tutorial Rasbperry Pi - Cómo crear un punto de acceso WiFi

raspberry pi punto de acceso wifi nat tutorial geeky theory iptables portada Bienvenidos a un nuevo tutorial de Raspberry Pi, en el cual aprenderemos a crear un punto de acceso WiFi a través del cual tendremos acceso a Internet. Muchas veces he estado en sitios que tenían toma Ethernet pero no señal WiFi, por lo que conectar por ejemplo un teléfono o tablet era imposible. Sin embargo, con este tutorial tendremos una red WiFi para nosotros solos gracias a la Raspberry Pi.

Material necesario

  • Raspberry Pi.
  • Cable Ethernet.
  • Adaptador WiFi.
  • Tarjeta de memoria compatible (mínimo 4GB).

Instalación de Raspbian

Este tutorial lo he realizado tras instalar Raspbian en la Raspberry Pi. Puedes ver cómo hacerlo desde este tutorial. Una vez hecho esto, podemos seguir con los pasos siguientes.

Instalar los programas necesarios

Antes de nada, como siempre hay que hacer al instalar un nuevo sistema operativo, actualizamos los programas instalados con estos comandos:
sudo apt-get update
sudo apt-get upgrade
Tras esto, instalaremos dos programas que nos permitirán crear el punto de acceso WiFi: hostapd y isc-dhcp-server.
sudo apt-get install hostapd isc-dhcp-server
Configurar el servidor DHCP DHCP es el protocolo que hace que automáticamente se nos asigne una dirección IP al conectarnos a una red. Para configurarlo, abre su fichero de configuración:
sudo nano /etc/dhcp/dhcpd.conf
Busca las siguientes líneas:
option domain-name "example.org";
option domain-name-servers ns1.example.org, ns2.example.org;
Cuando las hayas encontrado, coméntalas con un caracter almohadilla '#' delante:
#option domain-name "example.org";
#option domain-name-servers ns1.example.org, ns2.example.org;
Ahora busca las siguientes líneas:
# If this DHCP server is the official DHCP server for the local
# network, the authoritative directive should be uncommented.
#authoritative;
Descomenta la tercera línea para que quede así:
# If this DHCP server is the official DHCP server for the local
# network, the authoritative directive should be uncommented.
authoritative;
Por último, añade las siguientes líneas al final del archivo:
subnet 192.168.100.0 netmask 255.255.255.0 {
    range 192.168.100.10 192.168.100.50;
    option broadcast-address 192.168.100.255;
    option routers 192.168.100.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;
}
Ya hemos terminado de modificar este archivo, así que ciérralo con las teclas CTRL+X y luego Y. A continuación, abriremos otro archivo de configuración:
sudo nano /etc/default/isc-dhcp-server
Busca la línea INTERFACES="" y entre las comillas añade "wlan0": INTERFACES="wlan0". Una vez hecho esto, cierra y guarda el archivo. Configurar una IP estática en wlan0 A continuación, configuraremos una dirección IP estática para wlan0. De esta manera, siempre será la misma. Para ello, desactivamos la interfaz wlan0 con el siguiente comando:
sudo ifdown wlan0
Una vez desactivada la interfaz, hay que modificar su configuración:
sudo nano /etc/network/interfaces
Después de la línea allow-hotplug wlan0, añade lo siguiente:
iface wlan0 inet static
  address 192.168.100.1
  netmask 255.255.255.0
Y comenta con un '#' las tres líneas siguientes. El archivo completo debe quedar así:
auto lo

iface lo inet loopback
iface eth0 inet dhcp

allow-hotplug wlan0

iface wlan0 inet static
  address 192.168.100.1
  netmask 255.255.255.0

#iface wlan0 inet manual
#wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
#iface default inet dhcp
Cierra el archivo y guárdalo. Tras esto, asigna la IP a la interfaz wlan0 y habilítala con el siguiente comando:
sudo ifconfig wlan0 192.168.100.1

Configurar el punto de acceso

Ahora toca configurar el punto de acceso (SSID, contraseña, tipo de seguridad, etc.). Para ello, vamos a crear un nuevo archivo con el siguiente comando:
sudo nano /etc/hostapd/hostapd.conf
Debido a que acabamos de crearlo, no tiene ningún contenido, por lo que hay que pegar lo siguiente:
interface=wlan0
driver=rtl871xdrv
ssid=RPi_PA
hw_mode=g
channel=6
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=2
wpa_passphrase=contrasena
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP
Podéis cambiar el SSID de RPi_PA (Raspberry Pi Punto de Acceso) al que queráis, así como la contraseña (wpa_passphrase). Asegúrate de que el archivo no tiene líneas extra ni espacios al final de cada línea. A continuación, debemos decirle a la Raspberry Pi dónde encontrar el archivo de configuración que acabamos de crear. Para ello, modificamos la línea #DAEMON_CONF del siguiente archivo:
sudo nano /etc/default/hostapd
La vamos a dejar así: DAEMON_CONF="/etc/hostapd/hostapd.conf". Acuérdate de quitar la almohadilla para descomentar la línea. Guarda y cierra el archivo. Configuración de NAT NAT (Network Address Translation) es el protocolo que permite que muchos clientes puedan conectarse a Internet a través de una única conexión IP "tunelando" la conexión. Debes hacer esto incluso si sólo vas a tener un cliente conectado. Abre el siguiente archivo de configuración:
sudo nano /etc/sysctl.conf
Añade la siguiente línea al final:
net.ipv4.ip_forward=1
Estos cambios se aplicarán cuando reiniciemos el sistema, pero para hacerlo inmediatamente puedes introducir lo siguiente en consola, que tiene el mismo objetivo que lo anterior:
sudo sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward"
Ahora hay que configurar las iptables para hacer la "traducción" entre la interfaz Ethernet (Eth0) y la WiFi (wlan0):
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
El problema de esto es que habría que ejecutar los comandos anteriores cada vez que encendamos la Raspberry Pi, pero para que sea automático introducimos lo siguiente:
sudo sh -c "iptables-save > /etc/iptables.ipv4.nat"
A continuación volvemos al archivo de configuración de las interfaces de red que hemos modificado con anterioridad:
sudo nano /etc/network/interfaces
Al final del todo, hay que añadir la línea siguiente:
up iptables-restore < /etc/iptables.ipv4.nat

Actualizar hostapd

Dependiendo de dónde hayáis comprado vuestro adaptador WiFi, este tutorial funcionará o no. Para intentar arreglarlo, actualizaremos a una versión nueva de hostapd que proporcionan desde AdaFruit:
wget http://adafruit-download.s3.amazonaws.com/adafruit_hostapd_14128.zip
unzip adafruit_hostapd_14128.zip
Ahora toca intercambiar la versión antigua por la nueva:
sudo mv /usr/sbin/hostapd /usr/sbin/hostapd.ORIG
sudo mv hostapd /usr/sbin
sudo chmod 755 /usr/sbin/hostapd

¿Funcionará?

Para ver si todo funciona correctamente, ejecuta este comando e intenta conectarte a la red WiFi que verás desde tu ordenador y que acabamos de crear:
sudo /usr/sbin/hostapd /etc/hostapd/hostapd.conf
raspberry pi punto de acceso wifi nat tutorial geeky theory iptables Puedes dejar de ejecutar el comando anterior y tener acceso a la terminal pulsando Control+C.

Últimos detalles

Ahora que ya sabemos que funciona, vamos a crear un daemon que se ejecutará cada vez que la Raspberry Pi se encienda:
sudo service hostapd start
sudo service isc-dhcp-server start
Es posible conocer el estado de los daemon con los siguientes comandos:
sudo service hostapd status
sudo service isc-dhcp-server status
Finalmente, para habilitar los daemon:
sudo update-rc.d hostapd enable
sudo update-rc.d isc-dhcp-server enable
Una vez hecho esto, ya tendremos nuestro punto de acceso WiFi configurado para que podamos acceder a Internet a través de nuestra Raspberry Pi conectada a un puerto Ethernet. Este tutorial ha quedado bastante largo y es un poco tedioso, pero merece la pena hacerlo porque es la primera parte de otro que publicaré pronto. ¡Un saludo!

Deja un comentario


23 comentarios


kenia · Hace 12 horas

Hola Tengo un problema tengo una configuración de wifi en mi raspberry pi2 y hice cambio de router y no detecta el internet del router nuevo y me carca otra dirección ip como le puedo hacer para que detecte esta configuración de nuevo. Espero y me puedan ayudar

ivan · Hace 12 días

no funciona nada, partiendo porque ifdown wlan0 no funciona y al ejecutar sudo nano /etc/network/interfaces no muestra nada de lo que dices

Fernando · Hace 6 meses

Hola buenas, sabes que he estado intentando hacer esto con la Raspberry 2 y en la linea que trato de configurar las iptables "sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE" me sale el siguiente error: -"../libkmod/libkmod.c:557 kmod_search_moddep() could not open moddep file '/lib/modules/4.4.50-v7+/modules.dep.bin' iptables v1.4.21: can't initialize iptables table `nat': Table does not exist (do you need to insmod?) Perhaps iptables or your kernel needs to be upgraded." Esta todo actualizado, ¿a que se debera? ayuda porfavor.

Hector · Hace 6 meses

Hola, hay alguna forma fácil y rápida de apagar el punto de acceso y volver a conectarse a una red WiFi domestica y viceversa? me vendría muy bien para el proyecto que estoy haciendo ya que necesito instalar cosas en la raspberry pero también comprobar que mi APP y la raspberry se estan comunicando.

Carlos Espetia Ortuño · Hace 1 año

Hola, realice la configuracion paso a paso y la wifi si me aparece pero no puedo conectarme a ella....ayuda! gracias.

ZeroThai · Hace 8 meses

Eso eso es por las ultimas actualizaciones de Raspbian que machacaron el codigo para hacerlo compatible con la Raspberry pi 3. De momento no eh encontrado solución. en caso de encontrarla se agradece la información. De antemano Muchas Gracias. Posdata este usuario hace uso del modulo X300 para la Raspberry

Rait Lucas · Hace 1 año

Saludos mario, muchas gracias por el aporte, un gran trabajo, tengo una duda .. el montaje del punto de acceso se lo podrá realizar de forma inversa ? , es decir que capten la señal del router wifi el cual nos provee nuestro proveedor de Internet por medio del modulo wifi wlan0 y que este bote señal poR la interface de ethernet?. Por favor necesito esa ayuda :D

Wuilmer · Hace 1 año

Hola excelente el tutorial pero no tengo acceso a internet.

Moises Serrano · Hace 1 año

Exelente tutorial, pude crear la red y conectarme pero esta sin internet la red creada, como podria resolverlo?

Mentalmente · Hace 1 año

Me funciona todo salvo el daemon, no se porqué no consigo que funcione el daemon.

Vic · Hace 1 año

Buenos días, yo lo que intento hacer es un sniffer, que me capture las direcciones MAC de los dispositivos que detecte el punto de acceso, pero no se como recoger los datos. Estoy bastante verde en estos temas xD. Alguien me podría ayudar? Muchas Gracias de antemano y un Saludo.

Marwuin · Hace 2 años

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?.

Pablo Guzman · Hace 2 años

y como puede ser para q sea un punto de acceso falso, pero que la raspberry en si, si pueda tener internet? me explico; que la raspberry levante un punto de acceso falso, para poder ver algún contenido dentro de la "RPI" que se encuentre en wamp y que cuando quiera acceder a internet en el terminal de la raspberry pueda conectarse?

Cristo · Hace 2 años

Hola Mario, genial el tutorial, me ha encantado. Quería hacerte dos cuestiones: 1) ¿Cuantas conexiones/usuarios concurrentes permite la Raspberry Pi B+ trabajando como Access Point? 2) ¿Es posible definir un QoS (Quality of Service) en esta configuración (limitar el ancho de banda, número de conexiones concurrentes máximas, etc)? Gracias

Daniel · Hace 2 años

Buenos días Mario. he intentado replicar el asunto pero al lanzar el servicio hostapd me da fallo y estoy casi seguro de que es el adaptador wifi. He probado con otro que tampoco funciona. ¿sería posible que indicaras el adaptador con el que te ha funcionado para ajustar la búsqueda? Muchas gracias de antemano

Moises Serrano · Hace 2 años

Saludos, podria repetir la senal de un router wifi sin estar conectado por cable?

Mario Pérez Esteso · Hace 2 años

Hola. Solo puedes si tienes dos tarjetas de red.

Moises Serrano · Hace 2 años

Que fino! se da el caso y tengo las 2, la que vino incluida en el kit y una tp-link, que cambiaria en el proceso?

Nicolas · Hace 2 años

Se puede montar un repetidor de wifi?

emeoa · Hace 2 años

Sirve para mi ubuntu? o.O

Mario Pérez Esteso · Hace 2 años

Sí, sirve.

Cedrick Jonathan Acevedo Mata · Hace 2 años

El asunto es que yo tengo una IP fija (de mi ISP) y quiero replicar la MAC del módem, qué ajustes tengo que hacer?

Tutorial Rasbperry Pi – Cómo crear un punto de acceso WiFi - Raspberry Pi | Raspberry Pi · Hace 2 años

[…] Seguir leyendo el tutorial | GeekyTheory […]

Tutorial Rasbperry Pi - Cómo crear un pu... · Hace 2 años

[…] Bienvenidos a un nuevo tutorial de Raspberry Pi, en el cual aprenderemos a crear un punto de acceso WiFi a través del cual tendremos acceso a Internet. Muchas veces he estado en sitios que tenían toma Ethernet pero no señal WiFi, por lo que conectar por ejemplo un teléfono o tablet era imposible. Sin embargo, con este tutorial tendremos una red WiFi para nosotros solos gracias a la Raspberry Pi.  […]

Tutorial Rasbperry Pi - Cómo crear un pu... · Hace 2 años

[…] “Bienvenidos a un nuevo tutorial de Raspberry Pi, en el cual aprenderemos a crear un punto de acceso WiFi a través del cual tendremos acceso a Internet. Muchas veces he estado en sitios que tenían toma Ethernet pero no señal WiFi, por lo que conectar por ejemplo un teléfono o tablet era imposible. Sin embargo, con este tutorial tendremos una red WiFi para nosotros solos gracias a la Raspberry Pi.”  […]

Alexis Juárez · Hace 2 años

Obtengo el siguiente error, será por el adaptador WiFi que estoy utilizando?

Mario Pérez Esteso · Hace 2 años

Sí, lo más probable es que sea eso. A mí me funciona correctamente. A ver si alguien ha tenido el mismo problema y te puede ayudar.

javier · Hace 1 año

tu sabes el fastidio? yo he intentado seguir el tutorial con la raspy 3 y mira. me pasa lo mismo que a ti

Jenifer Gonzalo Madrigal · Hace 1 año

intentad poner en el archivo sudo nano /etc/hostapd/hostapd.conf driver=nl80211

misi · Hace 2 años

Buenas, e seguido todos los pasos y puedo crear la red wifi, el problemas es que al intentar conectarse a ella con el celular (android) se queda en autenticado o obteniendo la direccion ip, al conectarme desde la computadora se hace imposible alguna sugerencia??

Jenifer Gonzalo Madrigal · Hace 1 año

A mi me pasa lo mismo, se queda en autentificando y nunca se conecta. Alguien ha conseguido resolver esto?

Luhy Ruhy · Hace 1 año

Quisiera saber si alguien ya ha encontrado una solución

Hector · Hace 6 meses

A mi lo mismo y creo que la solución es disminuir la encriptación de la red WiFi de WPA-2 a una WEP por ejemplo y si es para un proyecto propio incluso sin encriptar.