Dirijo un humilde laboratorio doméstico con Proxmox, Home Assistant, Raspberry Pi, un NAS y computadoras. Cuando viajo, necesito conectarme por SSH a una de esas máquinas. Pero no quiero exponer ausencia a Internet. Por eso elegí un ESP32-S3 para alcanzar a los dispositivos de mi hogar desde cualquier área.
Permítanme ser sincero: esta puerta de enlace VPN basada en ESP32 está diseñada para funciones livianas. No es una puerta de enlace VPN de reincorporación velocidad que pueda enrutar todo el tráfico de la red. Dicho esto, quería una decisión de bajo consumo y siempre activa que me permitiera alcanzar mediante SSH a mi servidor doméstico, Raspberry Pi u otros dispositivos en mi LAN. Gracias a Esquema MicroLink en GitHubes posible.
Con un poco de esfuerzo, el ESP32-S3 de $ 10 con Tailscale resultó ser exactamente lo que necesitaba y la mejor añadido a mi laboratorio doméstico en mucho tiempo.
¿Tailscale es la forma más segura de alcanzar a su red doméstica de forma remota?
Tailscale es viable de configurar, pero ¿eso perjudica tu seguridad?
Por qué un ESP32 sobre una Raspberry Pi
Hace un trabajo de modo confiable
La idea es utilizar un único dispositivo Tailscale en área de instalar el cliente en cada máquina de la red doméstica. Cualquiera puede preguntar: ¿por qué no utilizar una Raspberry Pi en área de un ESP32?
El Pi puede ejecutar el cliente oficial Tailscale y su configuración en Linux tarda menos de 10 minutos. Pero usar un SBC como Pi solo para ejecutar un punto de entrada de Tailscale es excesivo. Incluso Pi Zero W funciona. Tenía un ESP32-S3 por ahí y sentí curiosidad por enterarse si estaba a la prestigio de la tarea.
El ESP32 consume aproximadamente 0,5 W de potencia en comparación con los 1,5 W de un Pi. Teniendo en cuenta que planeo ejecutar un ESP32 como un dispositivo siempre encendido, el consumo normal suma y sigue siendo beocio que el de un Pi. Adicionalmente, no hay Linux ni sistema operante que prolongar o modernizar.
A diferencia de Raspberry Pi, no hay aventura de que se dañe una maleable microSD. El ESP32 arranca en dos segundos, mientras que un sistema basado en Pi tarda al menos 30 segundos en originarse, incluso en una configuración sin persona que se ejecuta en un SSD NVMe.
Mi razón principal para nominar un ESP32 para la tarea fue que se conecta a Tailscale y permanece silenciosamente en mi red doméstica. Como punto de entrada dedicado, garantiza confiabilidad con simplicidad, lo cual es mucho mejor que ejecutar un entorno Linux completo que de otro modo estaría infrautilizado.
¿Qué hace que el ESP32 funcione como puerta de enlace VPN?
Esquema sencillo y efectivo en el uso de bienes
El esquema MicroLink en GitHub permite el uso de Tailscale en ESP32. Es un cliente VPN compatible con Tailscale que implementa enigmático WireGuard, protocolo de enlace de ruido para autenticación, Protocolo DISCO de Tailscale para descubrir máquinas pares y HTTP/2 a través de transporte enigmático. Es una implementación actual de todo eso, ejecutar bare metal en FreeRTOS.
Honestamente, alcanzar que el esquema MicroLink funcionara en mi maniquí ESP32-S3-N16R8 tomó algunas horas. Cloné el esquema MicroLink en el directorio de mi esquema como componente. Usé uno reutilizable Esencia de autenticación de escalera final para que el ESP32 pueda autenticarse sin una interfaz interactiva.
El principal obstáculo fue certificar suficiente espacio para los apretones de manos TLS. Para eso, habilité PSRAM correctamente, para que MicroLink tuviera suficiente memoria para trabajar con él. Una vez que resolví eso, el dispositivo usó claves de autenticación para registrarse e incluso apareció una IP de VPN en la consola de agencia de Tailscale, anejo con otros dispositivos.
Usando ESP32 para alcanzar y reactivar máquinas
No es necesario instalar Tailscale en todas partes
Una vez que el ESP32 se une a mi red Tailscale, lo uso como host de brinco SSH para entrar a cualquier máquina en la LAN de mi casa.
Por ejemplo, ssh -J tsd samir@192.168.1.5 me permite iniciar sesión en mi Raspberry Pi desde cualquier área. Aquí, tsd es el nombre del dispositivo ESP32 y la IP es la dirección IP de la máquina de destino.
Cuando las máquinas están apagadas o en modo de suspensión, uso Wake-on-LAN para empujarlas y despertarlas. Este es el comando que uso para remitir un paquete mágico y reactivar una máquina en la LAN de mi casa:
curl "http:///wol?mac=AA:BB:CC:DD:EE:FF"
Transmitido que MicroLink carece de un servidor SSH al momento de escribir este artículo, ejecuto un servidor HTTP vaporoso en ESP32 para la funcionalidad Wake-on-LAN.
Residir con algunas deficiencias
Cosas a considerar
La idea no era crear una VPN de reincorporación velocidad para la transferencia de datos o para la transmisión de contenido 4K. Las velocidades del mundo actual son sólo un par de Mbps. Por lo tanto, copiar un archivo excelso o ver la transmisión de una cámara sobrecargará la conexión.
Aumentar la duración de 3000 milisegundos a 6000 milisegundos para permitir que Tailscale use servidores STUN para descubrir la IP pública para situaciones de igual a igual ayudó a solucionar los problemas de tiempo de dilación. Cambié el enlace del socket DISCO al puerto 51821 ya que WireGuard usa el puerto 51820. Finalmente, forcé el sístole del corazón a saltar siempre, de modo que Tailscale deje de cerrar conexiones cada 2 segundos.
El código actualizado está acondicionado en mi página de GitHub para flashear y realizar más pruebas.
Detenga el reenvío de puertos de sus servicios autohospedados: haga esto en su área
Dígale adiós a las molestias del reenvío de puertos con esta alternativa segura y viable de usar.
Hardware de puerta de enlace VPN siempre activo y de bajo consumo
Honestamente, ESP32 no reemplaza un enrutador VPN completo, y nunca estuvo destinado a hacerlo. Para mi caso de uso, necesitaba un único punto de entrada a SSH en el laboratorio de mi casa y activar las máquinas de mi casa de forma remota. Logré hacerlo por una fracción de la potencia y el costo de las alternativas populares basadas en Linux.
El esquema MicroLink hace el trabajo pesado de proporcionar un cliente Tailscale para ESP32, y unir un servidor Wake-on-LAN agregaría valencia a mi propósito. Si tiene un ESP32-S3 por ahí, actualice este código y conviértalo en un esquema de fin de semana para el laboratorio de su casa.





