Guía Completa de ZeroTier: Configuración y Uso

Guía Completa de ZeroTier: Configuración y Uso

  1. Introducción a ZeroTier

ZeroTier es una potente herramienta VPN P2P que permite crear redes LAN virtuales propias sobre Internet. Con esta solución, puedes acceder de forma remota a dispositivos de tu hogar desde cualquier ubicación, como por ejemplo acceder a tu NAS desde la oficina usando tu teléfono. Los dispositivos se conectan directamente entre sí (peer-to-peer), sin pasar por servidores intermedios, lo que garantiza mayor velocidad y seguridad.

1.1 Funcionamiento

A través del cliente ZeroTier One, se establecen conexiones P2P entre diferentes dispositivos (ordenadores, móviles, servidores, etc.) incluso cuando estos se encuentran detrás de NAT. Utiliza tecnologías como STUN para atravesar la mayoría de tipos de NAT y permitir la comunicación directa entre dispositivos. Solo en casos donde la conexión directa no es posible, se recurre a servidores relay.

En esencia, ZeroTier funciona como un "conmutador virtual" que abarca Internet, permitiendo que dispositivos distribuidos por todo el mundo puedan comunicarse entre sí como si estuvieran en la misma red local.

1.2 Conceptos Clave en ZeroTier

Concepto Descripción
PLANET (Servidor Planetario) Servidor raíz central de la red ZeroTier, encargado del descubrimiento de red y conexión inicial. Acts como el "cerebro" de toda la red.
MOON (Servidor Satélite) Servidor raíz privado que puedes crear. Actúa como nodo代理 regional, permitiendo conexiones más rápidas para dispositivos cercanos geográficamente.
LEAF (Nodo Final) Cualquier dispositivo final conectado a la red ZeroTier: ordenadores, móviles, servidores, etc. Estos dispositivos se descubren y comunican mediante la coordinación de PLANET y MOON.

Esta guía te enseñará a configurar tu propio servidor PLANET privado para tener control total sobre tu red ZeroTier.

  1. Configuración del Servidor Planet

2.1 Repositorio del Proyecto

Despliegue con un solo comando del servidor ZeroTier Planet, soportando implementación con Docker.


https://github.com/xubiaolin/docker-zerotier-planet

2.2 Beneficios de un Servidor PLANET Personalizado

Ventajas de Rendimiento

  • Mejor estabilidad: Los servidores oficiales están ubicados en el extranjero, lo que genera latencia alta e inestable para usuarios nacionales. Un servidor propio mejora significativamente la calidad de conexión.
  • Conexiones más rápidas: Un servidor PLANET local ayuda a los dispositivos a establecer conexiones P2P de manera más eficiente.

Ventajas de Seguridad

  • Mayor control: Tendrás control total sobre la configuración de red, permitiéndote ajustar según tus necesidades específicas.
  • Mayor privacidad: El tráfico de red no pasa por servidores de terceros, garantizando mayor seguridad.

Ventajas de Fiabilidad

  • Menor dependencia: Evitas problemas causados por fallos o fluctuaciones en los servidores oficiales.

2.3 Instalación del PLANET

Clona el repositorio en tu servidor cloud:


cd /opt/
git clone https://github.com/xubiaolin/docker-zerotier-planet.git
cd docker-zerotier-planet

Ejecuta el script de despliegue:


./deploy.sh

Después de una instalación exitosa, necesitarás abrir los puertos 9994 y 3000 en el firewall.

2.4 Obtención del Archivo planet

Una vez completado el script, los archivos de configuración planet y moon se generarán en el directorio ./data/zerotier/dist.

También puedes descargarlos mediante URL:


# Archivo moons:
http://tu_ip:3000/000000a3e1eb4e6a.moon?key=tu_clave

# Archivo planet:
http://tu_ip:3000/planet?key=tu_clave
  1. Guía de Uso

3.1 Crear una Red

Accede a http://tu_ip:3443 para entrar en la página del controlador.

Credenciales por defecto:

  • Usuario: admin
  • Contraseña: password

Pasos para crear la red:

  1. Inicia sesión y haz clic en el menú "Networks"
  2. Selecciona el botón "Add Network" para crear una nueva red
  3. Introduce un nombre identificativo para la red (el resto de opciones pueden dejarse por defecto)
  4. Haz clic en "Create Network" para completar la creación

El sistema generará automáticamente un ID de red después de la creación exitosa. Este ID será necesario para la configuración del cliente.

3.2 Asignar IP de Red

Selecciona "Easy Setup" y asigna el ID.

3.3 Generar Rango de IP

  1. Configuración de Clientes

ZeroTier es compatible con múltiples sistemas operativos:

  • Windows
  • macOS
  • Linux
  • Android
  • iOS
  • OpenWRT

4.1 Configuración en Windows

Paso 1: Descargar el Cliente

Descarga el cliente ZeroTier desde la web oficial.

Paso 2: Reemplazar Archivo planet

Copia el archivo planet en la ruta C:\ProgramData\ZeroTier\One (es un directorio oculto, necesitas habilitar la visualización de archivos ocultos).

Paso 3: Reiniciar el Servicio

  1. Presiona Win + S y busca "Servicios"
  2. Localiza "ZeroTier One" y reinicia el servicio

Paso 4: Unirse a la Red

Abre PowerShell como administrador y ejecuta:


PS C:\Windows\system32> zerotier-cli.bat join ID_DE_RED
200 join OK

Nota: El ID DE RED es el identificador creado en el panel web.

Paso 5: Autorizar el Dispositivo

Accede al panel de administración, donde verás un nuevo cliente. Marca la opción Authorized.

En la sección IP assignment aparecerá la IP interna de ZeroTier.

Paso 6: Verificar Conexión


PS C:\Windows\system32> zerotier-cli.bat peers
200 peers
<ztaddr>   <ver>  <role> <lat> <link> <lastTX> <lastRX> <path>
fcbaeb9b6c 1.8.7  PLANET    52 DIRECT 16       8994     1.1.1.1/9993
fe92971aad 1.8.7  LEAF      14 DIRECT -1       4150     2.2.2.2/9993

Deberías ver un rol PLANET y un LEAF, ambos con tipo de conexión DIRECT.

4.2 Cliente para Linux

4.2.1 Instalar ZeroTier

Descarga e instala ZeroTier usando curl:


curl -s https://install.zerotier.com | sudo bash

Inicia el servicio ZeroTier-One:


sudo systemctl start zerotier-one

Configura el inicio automático:


sudo systemctl enable zerotier-one

Verifica el estado del servicio:


sudo systemctl status zerotier-one

4.2.2 Reemplazar PLANET

Accede al directorio /var/lib/zerotier-one y reemplaza el archivo planet.

Reinicia el servicio:


sudo service zerotier-one restart

Únete a la red:


sudo zerotier-cli join ID_DE_RED

Acepta la solicitud en el panel de administración.

Ejecuta zerotier-cli peers para verificar el rol PLANET.

4.2.3 Abandonar la Red


sudo zerotier-cli leave ID_DE_RED

4.3 Cliente para Android

Se recomienda utilizar el cliente no oficial de ZeroTier para Android.

4.4 Cliente para macOS

Pasos de configuración:

  1. Accede al directorio /Library/Application\ Support/ZeroTier/One/ y reemplaza el archivo planet
  2. Reinicia ZeroTier-One: cat /Library/Application\ Support/ZeroTier/One/zerotier-one.pid | sudo xargs kill
  3. Únete a la red: zerotier-cli join ID_DE_RED
  4. Acepta la solicitud en el panel de administración
  5. Ejecuta zerotier-cli peers para verificar el rol PLANET

4.5 Cliente para OpenWRT

Pasos de configuración:

  1. Instala el cliente ZeroTier
  2. Accede al directorio /etc/config/zero/planet
  3. Reemplaza el archivo planet
  4. En el panel web de OpenWRT, desactiva primero ZeroTier y luego actívalo de nuevo
  5. Únete a la red desde el panel web de OpenWRT
  6. Acepta la solicitud en el panel de administración
  7. Ejecuta ln -s /etc/config/zero /var/lib/zerotier-one
  8. Ejecuta zerotier-cli peers para verificar el rol PLANET

4.6 Cliente para iOS

Opción 1: Jailbreak
Tras hacer jailbreak, instala ZeroTier y reemplaza el archivo planet.

Opción 2: WireGuard
Utiliza WireGuard para conectarte a la red ZeroTier.

4.7 Synology DSM 7.x

4.7.1 Acceso SSH y Crear Dispositivo Virtual TUN


# Obtener permisos
sudo -i

# Crear script para dispositivo TUN y configurar inicio automático
echo -e '#!/bin/sh -e \ninsmod /lib/modules/tun.ko' > /usr/local/etc/rc.d/tun.sh

# Asignar permisos de ejecución
chmod a+x /usr/local/etc/rc.d/tun.sh

# Ejecutar script para crear TUN
/usr/local/etc/rc.d/tun.sh

# Verificar que TUN se creó correctamente
ls /dev/net/tun

4.7.2 Crear Directorio de Configuración


mkdir /var/lib/zerotier-one

4.7.3 Crear Contenedor Docker


docker run -d \
  --name zt \
  --restart=always \
  --device=/dev/net/tun \
  --net=host \
  --cap-add=NET_ADMIN \
  --cap-add=SYS_ADMIN \
  -v /volume1/docker/zerotier:/var/lib/zerotier-one zerotier/zerotier-synology:latest

4.7.4 Reemplazar Archivo planet

4.7.5 Unirse a la Red


# Ver estado de zerotier
docker exec -it zt zerotier-cli status

# Unirse a la red
docker exec -it zt zerotier-cli join ID_DE_RED

# Verificar conexión al planet
docker exec -it zt zerotier-cli peers

# Ver redes unidas
docker exec -it zt zerotier-cli listnetworks

# Abandonar la red
docker exec -it zt zerotier-cli leave ID_DE_RED

4.8 fnOS (飞牛)

4.8.1 Instalación con Docker


version: '3.8'

services:
  zerotier:
    image: zerotier/zerotier:latest
    container_name: zerotier
    restart: always
    network_mode: host
    volumes:
      - ./var/lib/zerotier-one:/var/lib/zerotier-one
      - /dev/net/tun:/dev/net/tun
    cap_add:
      - NET_ADMIN
      - SYS_ADMIN
      - NET_RAW
    environment:
      - TZ=Asia/Shanghai
    devices:
      - /dev/net/tun:/dev/net/tun

volumes:
  zerotier_config:
    name: zerotier_config

4.8.2 Reemplazar Archivo planet

Reinicia Docker después de reemplazar el archivo.

4.8.3 Unirse a la Red


# Ver estado
docker exec -it zerotier zerotier-cli status

# Unirse a la red
docker exec -it zerotier zerotier-cli join ID_DE_RED

# Verificar planet
docker exec -it zerotier zerotier-cli peers

# Ver redes unidas
docker exec -it zerotier zerotier-cli listnetworks
  1. Configurar Puente de Red Interna

Un Linux en red interna con ZeroTier tiene la dirección 10.100.57.175 y la IP física 192.168.1.108. Configurando el reenvío de tráfico, los clientes ZeroTier pueden aceder a la subnet 192.168.1.0/24.

5.1 Habilitar Reenvío IP en Linux

Linux necesita el reenvío IP habilitado para paquetes entre la tarjeta virtual ZeroTier y la tarjeta física de red interna.


sudo vim /etc/sysctl.conf

Añade la siguiente configuración:


net.ipv4.ip_forward = 1

Verifica que el reenvío está activado:


sysctl net.ipv4.ip_forward

5.2 Configurar Rutas en la Consola ZeroTier

Es necesario indicar a la red ZeroTier: "La subnet 192.168.1.0/24 es accesible a través del nodo 10.100.57.175".

Accede al panel de control: https://my.zerotier.com

Entra en tu red ZeroTier (haz clic en el ID correspondiente).

Cambia a la pestaña "Routes" y añade una regla de enrutamiento.

5.3 Configurar Reglas de Firewall iptables

Identificar Nombres de Interfaces:

Interfaz virtual ZeroTier: normalmente comienza con zt (ej. ztabc1234), visible con ip addr
Interfaz física de red interna: conectada a la subnet 192.168.1.0/24 (ej. eth0, ens33)

Mi configuración:

Parámetro Valor Real Descripción
Nombre interfaz ZeroTier zt5wf55mbp Obtenido de ip addr
Dirección Linux ZeroTier 10.100.57.175/24 IP virtual asignada por ZeroTier
Subnet objetivo 192.168.1.0/24 Red interna a acceder
Nombre interfaz física ens18 Interfaz conectada a 192.168.1.0/24

5.4 Configurar Reenvío

1. Reglas básicas de reenvío:

Es necesario permitir el reenvío de paquetes entre la interfaz ZeroTier (zt5wf55mbp) y la interfaz física interna, además de permitir paquetes de respuesta.


# 1. Permitir reenvío de ZeroTier a red interna
sudo iptables -A FORWARD -i zt5wf55mbp -o ens18 -j ACCEPT

# 2. Permitir paquetes de respuesta de red interna a ZeroTier (necesario para establecer conexión)
sudo iptables -A FORWARD -i ens18 -o zt5wf55mbp -j ACCEPT

# 3. Permitir ICMP (ping, opcional pero recomendado para diagnósticos)
sudo iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
sudo iptables -A OUTPUT -p icmp --icmp-type echo-reply -j ACCEPT

2. Permitir puertos específicos (servicios internos):

Si necesitas que clientes ZeroTier accedan a servicios específicos de la red interna:


# Permitir acceso SSH (puerto 22)
sudo iptables -A FORWARD -i zt5wf55mbp -o ens18 -p tcp --dport 22 -j ACCEPT

# Permitir acceso HTTP (puerto 80)
sudo iptables -A FORWARD -i zt5wf55mbp -o ens18 -p tcp --dport 80 -j ACCEPT

3. Persistir reglas iptables (evitar pérdida tras reinicio):

Sistemas Debian/Ubuntu:


# Instalar herramienta de persistencia
sudo apt-get install -y iptables-persistent

# Guardar reglas actuales
sudo netfilter-persistent save

Sistemas CentOS/RHEL:


# Guardar reglas en archivo
sudo iptables-save > /etc/sysconfig/iptables

# Habilitar carga de reglas al inicio
sudo systemctl enable iptables && sudo systemctl start iptables

5.5 Añadir Ruta Estática en el Router

Etiquetas: zerotier VPN p2p redes-virtuales Networking

Publicado el 7-7 22:13