Configurar un servidor VPN con Raspberry Pi

vpn raspberry pi

Este artículo explica cómo convertir tu Raspberry Pi en un servidor VPN.

Me inspiré cuando uno de mis amigos se iba de viaje y quería una VPN.

La ventaja de tener una VPN, explicó, era que le permitía acceder a su red doméstica y a sus archivos.

Eso es bastante normal.

También mencionó que le resultaría más fácil entrar en las aplicaciones bancarias y otros servicios si se conecta a través de su red doméstica.

Tener una dirección IP en el extranjero arroja banderas rojas y haría que tuviera que hacer pruebas Captcha y 2FAs.

Así que eso me hizo pensar en si la Raspberry Pi podría funcionar en este caso.

Comprueba primero tu router

Un detalle importante aquí es comprobar si su router puede actuar como servidor VPN.

Esa sería la solución más fiable. Francamente, también era la solución más fácil y menos tediosa.

Tengo un TP-Link Archer C7 que tiene la capacidad de ejecutar un servidor VPN utilizando OpenVPN o PPTP VPN. En menos de cinco minutos, me siguió las instrucciones y logré ponerlo en marcha. 

Entonces todo lo que tuve que hacer fue instalar OpenVPN en mis dispositivos y utilizar el archivo de configuración.

Sin embargo, si tienes un router que no admite conexiones VPN, entonces sigue...

¿Qué necesito para crear un servidor Raspberry Pi?

Cable Ethernet, Raspberry Pi y router para configurar una PiVPN
Cable Ethernet, Raspberry Pi y router

En primer lugar, necesitarás una Raspberry Pi. 

Sería ideal tener una Raspberry Pi con una conexión ethernet por cable como la Raspberry Pi 4 para obtener la máxima fiabilidad y velocidad.

Si eliges estos dispositivos, entonces, necesitarás un cable ethernet para conectar la Raspberry Pi a tu router.

Y para que tu Raspberry Pi se conecte a través de ethernet con cable, debes desactivar la conexión inalámbrica.

Sin embargo, PiVPN ha funcionado con éxito en una Raspberry Pi de la serie Zero, por lo que también podrías utilizarla.

Instalar PiVPN

Logotipo de PiVPN
Logotipo de PiVPN

Dirígete a pivpn.io para obtener más información sobre el software.

Para instalarlo, ejecute el comando de instalación curl -L https://install.pivpn.io | bash en su Terminal.

Este paso puede tardar un poco, pero una vez hecho, verás esta pantalla de introducción.

Reserva de DHCP

El PiVPN es un servidor, por lo que necesita tener una dirección IP estática para funcionar correctamente. 

Si puede crear una reserva DHCP...

No todos los routers permiten crear una reserva DHCP, así que si no encuentras una sección para esta configuración, pasa a la siguiente sección.

Tengo un módem separado y un router que compré para poder crear una reserva DHCP para asegurar que PiVPN está en la misma dirección IP todo el tiempo.

Cada router es un poco diferente, así que tendrías que buscar en Google las instrucciones exactas para crear una reserva DHCP para tu router.

En caso de que uses un TP-Link Archer C7, como yo, irías a Avanzado > Red > Servidor DHCP.

Bajo la Reserva de la dirección sección, hice clic en Añadir. Necesitaba mi dirección MAC (que no aparece en PiVPN) y la dirección IP proporcionada por PiVPN.

Cómo encontrar su dirección MAC

encontrar dirección mac raspberry pi
Normalmente puedes encontrar la dirección MAC de tu Raspberry Pi a través de tu router o utilizar ifconfig

Hay dos maneras de encontrar su dirección MAC. 

Lo más conveniente es que mi router TP-Link mostró mi dirección MAC "DC-A6-32-88-AC-97" en la tabla de clientes DHCP.

Como alternativa, puede abrir un Terminal y escribir ifconfig.

Ya que estás conectado a través de ethernet por cable, busca "eth0" y en la línea donde dice éter, ahí es donde está su dirección MAC.

Si no puede crear una reserva DHCP,

dhcp reserva raspberry pi vpn o dirección ip estática

En este menú, pulse "No" para configurar una dirección IP estática.

En el siguiente menú, tendrás que configurar tu dirección IP estática a algo que no esté dentro del rango de direcciones IP que tu router asignará a los dispositivos.

Por ejemplo, mi router asigna a los dispositivos conectados una dirección IP de 192.168.0.100 a 192.168.0.249. Así, puedo asignar a PiVPN una dirección IP de 192.168.0.250.

Entonces te pedirá la dirección IP de la puerta de enlace. Puedes dejarla por defecto a menos que tengas una puerta de enlace diferente. Normalmente es la dirección IP de tu router.

Por último, pulse OK en PiVPN hasta llegar a la página "Usuarios locales".

Usuarios locales

En la página "Elegir un usuario", elegí el único usuario, pi.

En las últimas actualizaciones del sistema operativo de la Raspberry Pi, ya no se tiene a "pi" como usuario por defecto, así que tenlo en cuenta.

Pulse OK.

Modo de instalación

raspberry pi vpn wireguard

Aquí, te preguntará si quieres usar WireGuard u OpenVPN. Yo elegí WireGuard porque me lo recomendaron.

Puerto predeterminado de Wireguard

A menos que necesites otro puerto, puedes pulsar OK y utilizar el puerto por defecto 51820.

Proveedor de DNS

elegir google como proveedor de dns pivpn raspberry pi vpn

Hay muchas opciones para los proveedores de DNS aquí y sólo fui con Google por la facilidad de configuración.

IP pública o DNS

Lo que ves aquí es tu dirección IP pública y esta será la dirección IP que usarás para conectarte a tu VPN.

Actualizaciones desatendidas

actualizaciones desatendidas pivpn

He activado las actualizaciones desatendidas porque quería las actualizaciones de seguridad. 

Hora de añadir los perfiles de los clientes

Utilice pivpn add para añadir un cliente, luego utilice pivpn -qr para obtener un código QR para que su teléfono lo escanee
Utilice pivpn add para añadir un cliente, y luego utilizar pivpn -qr para obtener un código QR para que su teléfono lo escanee

¡Genial! Has llegado al menú "Instalación completa".

Configurar PiVPN en la Raspberry Pi es la mitad de la batalla. La siguiente mitad es configurar los perfiles de los clientes para poder conectar ordenadores, teléfonos y otros dispositivos a ella.

He aquí cómo:

Abre un Terminal y escribe "pivpn add"

Introduzca un nombre para el cliente. Puede utilizar algo como "cliente1", "cliente2" o algo más intuitivo como "smartphone", "televisión", etc.

Presiona Enter.

Cuando esté hecho, verás un mensaje diciendo que está hecho.

PiVPN habría generado un archivo .conf que puedes utilizar con las aplicaciones de Wireguard.

Sin embargo, hay una manera aún más fácil de conseguir la configuración en su teléfono.

Configurar un teléfono Android

En el mismo terminal, introduzca pivpn -qr

A continuación, introduzca el cliente que desee. Ahora mismo sólo hay uno llamado "smartphone".

Por lo tanto, introduce "smartphone" y pulsa enter.

Si todo va bien, verás un código QR que podrás escanear con la aplicación Wireguard de tu smartphone.

Los problemas de codificación hacen que el código QR de PiVPN sea confuso
Los problemas de codificación hacen que el código QR de PiVPN sea confuso

Sin embargo, si no lo hace, se verá confuso. Esto se debe a que la codificación de su Terminal es incorrecta.

Si te ocurre esto, puedes copiar el archivo smartphone.conf en tu teléfono y apuntar la aplicación Wireguard al archivo.

wireguard pivpn qr code
La aplicación Wireguard para Android escanea el código QR

Otra forma es intentar entrar por ssh en la Raspberry Pi y ejecutar el comando qrencode -t ansiutf8 < /home/pi/configs/smartphone.conf (cambia "smartphone" por el nombre que le hayas puesto a tu cliente).

El código QR se generó con éxito cuando utilicé ssh en mi ordenador Windows.

Configurar WireGuard en su ordenador

Hay dos cosas que necesitas hacer. Descargar la aplicación WireGuard para su ordenador y también obtener el archivo .conf de su Raspberry Pi.

Puede descargar el Aplicación WireGuard para Windows, Linux y Mac aquí.

Una vez que lo tengas, crea un nuevo perfil utilizando pivpn add

Escriba el nombre de su archivo de configuración. Yo usé msi-pcque genera un msi-pc.conf archivo.

Para copiar el archivo a su PC, la forma más fácil es copiarlo usando un comando. Debes tener habilitado el acceso SSH en el SO de la Raspberry Pi.

Si estás en Windows como yo, usarás este comando:

pscp.exe [tu-nombre-de-usuario]@[su dirección IP]:/home/pi/configs/[archivo wireguard].conf [local-dir]

Esto es lo que resultó ser el mío:

pscp.exe [email protected]:/home/pi/configs/msi-pc.conf

En la aplicación, pulse "Añadir túnel" y localice su archivo .conf.

Activar y ya está.

Configurar el reenvío de puertos en el router

Si has seguido los pasos hasta ahora, podrás habilitar el toggle en tu aplicación Wireguard, pero no podrás conectarte a internet.

Eso es porque necesitas configurar tu router para que apunte el tráfico que accede al puerto 51820 a tu Raspberry Pi.

Para ello, ve al menú de reenvío de puertos de tu router. En mi router TP-Link Archer, era accesible en Avanzado > Reenvío NAT > Servidores Virtuales.

Sabrás que estás en el lugar correcto cuando te pida un puerto externo e interno y una dirección IP interna.

Esta pantalla básicamente pregunta, "si recibimos tráfico de la interwebs usando el puerto 51820, ¿a qué dispositivo lo enviamos y a qué puerto?

En este caso, los puertos externos e internos son 51820, el valor por defecto de Wireguard. El protocolo es UDP y IP interna es la dirección IP de su Pi.

¿Cómo sé que mi VPN está funcionando?

probar vpn si funciona

Sabrás que tu VPN está funcionando si tu dirección IP cambia.

Para probar la conexión VPN de mi smartphone, primero fui a buscar mi dirección IP antes de conectarme a la VPN.

La VPN dijo que mi dirección era XXX.XX.88.241

Me conecté a mi VPN y mi dirección IP cambió a XXX.XXX.169.39.

Por lo tanto, si hay un cambio en su dirección IP, significa que se ha conectado con éxito.

Hay muchos servicios por ahí. Incluso podrías simplemente buscar en Google "cuál es mi dirección IP" y Google podría decírtelo en la página de resultados de la búsqueda. O bien, utilice whatismyip.com.

¿Qué pasa si mi IP de Internet cambia?

A veces, es posible que no obtengas la misma dirección IP cuando reinicies tu router. Pueden producirse cortes de energía o tirones accidentales de los cables de alimentación. 

La pregunta es... ¿cómo encontrar tu nueva dirección IP cuando no estás en casa y necesitas desesperadamente conectarte a tu VPN?

Nuestro software PiCockpit hace que sea fácil averiguar cuál es tu IP pública.

En la captura de pantalla de arriba, esa es mi IP pública. Si alguna vez cambia, puedes actualizar tus archivos .conf con la nueva dirección del punto final.

PiCockpit también le permitirá reiniciar y diagnosticar problemas con su Raspberry Pi de forma remota a través de su interfaz web.

Sigue esta guía para instalar PiCockpit.

También puede obtener un servicio de DNS dinámico y un nombre de host. Esta es una guía.

4 Comentarios

  1. John Ramirez el abril 13, 2023 a las 1:37 pm

    Buen dia espero se encuentren bien, tengo una consulta a ver si me pueden ayudar, estoy en venezuela, yo quisiera trabajar por internet pero necesito que no me detecten, mi IP va a estar en estados unidos, lo que quiero es preguntar... como configuro el raspberry para poder conectarme con la ip residencial alla en eeuu y trabajar en venezuela sin ser detectado y no me baneen las paginas, ademas de eso configurar mi navegador gracias.

    • Ligwill el mayo 15, 2023 a las 6:21 pm

      John,

      Para eso necesitarias tener una raspberry pi en EEUU configurada como servidor VPN (En la casa de un amigo o familiar) y tu PC o LAPTOP en Venezuela tendria q tener el cliente vpn. De esa manera te conectarias desde venezuela a eeuu via vpn y ya serias visto como si estuvieras alla.

  2. [...] también puede utilizar uno como servidor VPN utilizando configuraciones como OpenVPN o WireGuard. Puedes utilizar cualquiera de las dos configuraciones para el día a día y ambas hacen [...]

  3. [...] Por supuesto, también puedes convertir tu Raspberry Pi en una VPN, algo sobre lo que ya hemos escrito antes. [...]

Deja un comentario