¿El nodo de salida de ZeroTier no funciona? Revise la ruta, el NAT y el cliente
Una ruta 0.0.0.0/0 en el cliente no es una salida. El nodo debe reenviar y traducir, la red debe anunciar la ruta y el cliente debe aceptarla.
La tabla de rutas muestra una ruta predeterminada por la interfaz ZeroTier, la red se muestra en línea y el navegador sigue saliendo por la dirección local del proveedor. Esa combinación es habitual y no es un error del cliente. Una ruta predeterminada solo dice adónde deben ir los paquetes; algo tiene que reenviarlos y traducirlos en el otro extremo. Tres partes separadas deben cumplirse antes de que funcione un nodo de salida.
La ruta existe, pero no sale nada
Revise primero la tabla de rutas del cliente. Una línea como default via 10.147.20.5 dev zt0 demuestra que la ruta se instaló, no que el destino acepte el tráfico. El siguiente salto debe ser un miembro dispuesto y capaz de reenviarla.
Si la misma solicitud sigue saliendo por la interfaz física, el cliente no instaló la ruta, o la instaló con una métrica que perdió frente a la predeterminada local. Si la solicitud desaparece después de instalar la ruta, el miembro de salida recibe paquetes y no logra reenviarlos ni traducirlos. Un cliente que conserva la predeterminada física no envía ningún paquete a la salida.
Esa distinción decide dónde trabajar. Comparar una dirección pública antes y después del cambio separa una ruta que nunca se usó de una que se usó y se descartó, y requiere un solo comando en lugar de revisar toda la configuración. Haga la comparación antes de cambiar cualquier otra cosa, para que ambos resultados partan del mismo estado inicial.
Tres partes que deben cumplirse todas
Una salida es una cadena, y el eslabón más débil marca el síntoma. La tabla siguiente enumera los eslabones en el orden en que suelen fallar.
| Part | Where it lives | What a failure looks like |
|---|---|---|
| Forwarding and NAT | Exit node kernel and firewall | Traffic arrives, no reply |
| Managed default route | ZeroTier network controller | No default via the tunnel on the member |
| Client acceptance | Member's per-network setting | Route offered but not installed |
| DNS behavior | Client resolver configuration | Pages fail by name, IP works |
La primera fila es la que oculta el nombre de la opción. Un miembro se convierte en salida solo cuando su núcleo reenvía paquetes entre la interfaz ZeroTier y la interfaz orientada a internet, y cuando la ruta de respuesta se traduce de vuelta al túnel. Sin ese reenvío, el miembro es un par, no una puerta de enlace.
La fila del controlador es autorización, no configuración. Anunciar 0.0.0.0/0 a través de un miembro dice a cada cliente dónde está la salida; no hace que ese miembro sea capaz de transportar el tráfico. Tampoco verifica que el miembro tenga una ruta funcional a internet. La documentación de nodo de salida de ZeroTier cubre la misma separación entre nodo, ruta y cliente.
Configure el nodo de salida para reenviar y traducir
Active el reenvío IPv4 de forma persistente y luego añada NAT de origen para el tráfico que sale de la interfaz WAN. Las reglas de filtro deben permitir el flujo reenviado en ambas direcciones, porque el reenvío y la traducción son independientes del permiso:
sysctl -w net.ipv4.ip_forward=1
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -A FORWARD -i zt0 -o eth0 -j ACCEPT
iptables -A FORWARD -i eth0 -o zt0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPTSustituya zt0 y eth0 por los nombres del host; una regla guardada para una interfaz de ejemplo no sigue los paquetes en una real. Haga los cambios persistentes mediante el gestor de firewall que posee las reglas, porque un comando en un shell interactivo desaparece en el próximo reinicio.
Si el host ejecuta un gestor de firewall como UFW o firewalld, añada las reglas mediante ese gestor en lugar de apilar líneas de iptables al lado. Dos propietarios editando las mismas cadenas producen una política que depende del orden de arranque. El orden importa cuando el gestor genera sus propias cadenas. Pruebe desde un cliente después de recargar el gestor, no antes.
Anuncie la ruta y acéptela en el cliente
En el controlador de red, añada una ruta gestionada para 0.0.0.0/0 cuyo siguiente salto sea la dirección ZeroTier del miembro de salida. Luego, en el miembro que debe usarla, permita la anulación para esa red. El permiso es local: no reconfigura otros miembros ni cambia el controlador.
zerotier-cli listnetworks
zerotier-cli set <network-id> allowDefault=1
ip route get 1.1.1.1El último comando debería informar de la interfaz ZeroTier y de la dirección del miembro de salida. Si sigue informando de la interfaz física, falta la ruta o una predeterminada competidora tiene mejor métrica.
Mantenga el ajuste limitado a la red que lo necesita. Activar la aceptación de la ruta predeterminada globalmente, o en una red que solo debe proporcionar una subred privada, envía el tráfico por una salida que nunca se dimensionó para ello.
Verifique la salida y revise las otras familias de direcciones
Solicite una dirección pública a un servicio que informe del origen y compárela con la dirección WAN del nodo de salida. Luego cargue un sitio por su nombre para confirmar que el DNS sigue resolviendo, y pruebe una aplicación importante en lugar de solo un navegador.
Un cliente de doble pila puede seguir usando su ruta IPv6 nativa mientras IPv4 sale por ZeroTier. Si el objetivo es ocultar o controlar todo el tráfico, se necesita una ruta ::/0 separada y reenvío IPv6 en la salida, y una prueba IPv4 no dice nada sobre ello.
El filtrado de ruta inversa de Linux también puede descartar tráfico de salida válido en el cliente. ZeroTier documenta una consideración sobre rp_filter para los miembros participantes; cambie ese ajuste de forma deliberada y solo después de confirmar la ruta y el NAT, no como primer experimento.
Si el requisito es acceder a un NAS o a una subred de oficina, una ruta gestionada para ese prefijo es un cambio más pequeño y seguro que una salida completa. Enviar toda la navegación por otro dispositivo es una decisión distinta de llegar a un recurso privado, y merece una revisión aparte.