Relay de NetBird con TLS usando los certificados de Caddy
Introducción
ResumenEste deartículo aclara cómo montarhabilitar correctamente un relay de NetBird con TLS válido usandoreutilizando los certificados deemitidos Caddy,por Caddy, sin ocupar el puerto 443 (ya usadoreservado por Caddy)el propio proxy).
El paraobjetivo activarprincipal es permitir el uso de QUIC y que el endpoint rels:// sea válido.considerado válido por NetBird, manteniendo una separación clara entre el proxy HTTP(S) y el servicio de relay.
No se trata de un despliegue completo, sino de una aclaración técnica sobre un punto concreto que suele generar confusión cuando Caddy y NetBird conviven en el mismo host.
ProblemaContexto inicialdel problema
Con launa configuración estándar de Caddy del—como la utilizada inicialmente en el Caddyfile del repositorio ( ya solucionado ),repositorio— el relay no quedaba activo.operativo, Seaun cuando el contenedor estaba levantado y los certificados eran válidos.
El estado podía comprobarcomprobarse desde cualquier cliente con:
netbird status -d
Y laLa salida mostraba:mostraba el relay TLS como no disponible:
Relays:
[stun:tu.dominio.netbird:3478] is Available
[turn:tu.dominio.netbird:3478?transport=udp] is Available
[rels://tu.dominio.netbird:443/relay] is Unavailable, reason: relay client not connected
TrasEsto realizarindicaba que el relay TLS existía a nivel de configuración, pero no era alcanzable ni funcional desde los pasospeers.
Tras seaplicar describenlos ajustes descritos en este artículo, el resultadoestado pasó a ser:
Relays:
[stun:tu.dominio.netbird:3478] is Available
[turn:tu.dominio.netbird:3478?transport=udp] is Available
[rels://tu.dominio.netbird:33443/relay] is Available
La diferencia clave es que el relay TLS deja de competir con Caddy en el puerto 443 y pasa a exponerse de forma explícita en un puerto alternativo.
Requisitos previos
Para que este enfoque funcione, deben cumplirse las siguientes condiciones:
- Caddy funcionando como reverse proxy
conyTLS.gestor de TLS - Certificados válidos emitidos por Caddy (Let's Encrypt)
. - Puerto TCP alternativo
abiertoaccesible desde Internet (ejemplo: 33443)
ConfigurarEnfoque el Relay con TLS propioadoptado
El relay de NetBird no se expone a través de Caddy. En su lugar:
rels:// apunta a ese puerto específico
Este enfoque evita conflictos con el proxy HTTP y respeta el diseño de NetBird para tráfico QUIC.
Configuración del contenedor Relay
El contenedor del relay se lanza indicando explícitamente:
Ejemplo puertode alternativo (33443 en este caso).servicio:
relay:
image: netbirdio/relay:latest
container_name: NetBirdRelay
restart: unless-stopped
environment:
- NB_LOG_LEVEL=debug
- NB_LISTEN_ADDRESS=:33443
- NB_EXPOSED_ADDRESS=rels://tu.dominio.netbird:33443/relay
- NB_AUTH_SECRET=22222222222nvxxxxxxxxxxxxxh666666So
- NB_TLS_CERT_FILE=/certs/tu.dominio.netbird.crt
- NB_TLS_KEY_FILE=/certs/tu.dominio.netbird.key
- NB_RELAY_TLS_DOMAIN=tu.dominio.netbird
ports:
- 33443:33443
volumes:
- /var/lib/caddy/.local/share/caddy/certificates/acme-v02.api.letsencrypt.org-directory/tu.dominio.netbird:/certs:ro
El relay queda así completamente desacoplado de Caddy, pero sigue beneficiándose de su gestión automática de certificados.
ConfigurarRegistro manual del relay en NetBird
El relay no se autodetecta. Debe declararse explícitamente en el management.json
En eldel servidor de gestión de NetBird, hay que añadir el relay manualmente.NetBird:
"Relay": {
"Addresses": [
"rels://tu.dominio.netbird:33443/relay"
],
"CredentialsTTL": "24h0m0s",
"Secret": "22222222222nvxxxxxxxxxxxxxh666666So"
}
El
Abrirvalor elde puertoSecret debe coincidir exactamente con NB_AUTH_SECRET definido en el router/contenedor del relay.
Consideraciones de red (NAT / firewall)
Es imprescindible abrir elEl puerto TCP 33443endebe estar abierto y redirigido correctamente hacia elrouter.hostAunque todo esté bien montado, siSi el puerto noestáes accesibledesdeexternamente,fuera,elningúnrelaypeernuncapodráseráconectarutilizable,alaunquerelay.todo lo demás esté bien configurado
Este punto suele ser la causa más frecuente de fallos silenciosos.
Errores comunes oy decisiones importantesclave
- No usar el puerto 443
directamente:Caddy: yaloestátieneocupadoocupado.por Caddy - QUIC
requiereexige TLSválido:válido: sinél,certificadosel endpointcorrectos,rels://nosees aceptado.descarta - El relay no
apareceesautomáticamente:automático:haydebeque registrarlodeclararse enmanagement.json.
Resumen breve
- El relay TLS de NetBird se expone en un puerto dedicado
rels:// apunta explícitamente a ese puerto
El relay Enlaces de interés
- NetBird: Implementación de una VPN de malla basada en WireGuard y confianza cero (Parte I)
- NetBird: Implementación de una VPN de malla basada en WireGuard y confianza cero (Parte II)
- Integración de NetBird con Authentik
- Documentación general de NetBird
- Documentación avanzada para autohospedar NetBird