Free Tier 5 min de lectura

Empezar con wzctl

Conecta a un recurso privado en 5 pasos. Sin VPN, sin portal, sin tarjeta de crédito.

Inicio rápido

1. Descargar

# Linux
curl -fsSL https://wireztna.com/dl/wzctl-linux-amd64 -o wzctl && chmod +x wzctl

# macOS (requiere firma — ver nota)
curl -fsSL https://wireztna.com/dl/wzctl-darwin-arm64 -o wzctl && chmod +x wzctl
xattr -cr wzctl && codesign --force -s - wzctl
¿Por qué el paso extra en macOS?

macOS Sequoia bloquea binarios sin firmar descargados de internet. xattr -cr elimina la marca de procedencia y codesign --force -s - lo firma localmente. Sin esto, macOS mata el proceso al lanzarlo.

2. Registro

./wzctl register --broker https://freetier.wireztna.com --email tu@ejemplo.com --save

Se hace una vez. Las credenciales se guardan en ~/.wireztna/token.

3. Crear un token de publisher

Indica qué subred exponer. Usa el CIDR de la red donde vive el recurso que quieres alcanzar:

./wzctl token --broker https://freetier.wireztna.com \
  --cidrs "192.168.1.0/24" --name mi-servidor

El output muestra los comandos para instalar el publisher. Cópialos.

4. Instalar el publisher

Entra por SSH al servidor que alcanza tu recurso privado y ejecuta los comandos del paso 3:

curl -fsSL https://wireztna.com/dl/wireztna-publisher-linux-amd64 -o wireztna-publisher
chmod +x wireztna-publisher
sudo ./wireztna-publisher install --token "<url_del_paso_3>"
sudo systemctl start wireztna-publisher

El publisher se conecta saliente al broker. No necesitas abrir puertos en el firewall.

5. Conectar

Obtén el ID de tu publisher y conecta al destino:

# Verifica que tu publisher está online
./wzctl publishers --broker https://freetier.wireztna.com

# Conecta (indica la IP y puerto exactos del recurso que quieres alcanzar)
./wzctl connect --broker https://freetier.wireztna.com \
  --publisher pub_a7c3f9b2 \
  --target 192.168.1.100 --port 5432 \
  --ttl 30m --local-port 5432

Listo. Tu recurso ahora está en localhost:5432:

psql -h localhost -p 5432 -U myuser mydb   # Funciona!

Entender --target

--target es la IP privada del servicio que quieres alcanzar, vista desde la red del publisher. No es la IP del publisher en sí.

Ejemplo: Publisher instalado en 192.168.1.50. Quieres alcanzar PostgreSQL en 192.168.1.100:5432.

  • --target 192.168.1.100 ← el servidor de base de datos
  • --port 5432 ← el puerto donde escucha PostgreSQL

Si ves "target unreachable": verifica que (1) la IP es correcta, (2) el servicio está corriendo en ese puerto, y (3) la IP cae dentro del CIDR que declaraste en el paso 3.

Free Tier vs Pro

Free Pro
GestiónSolo CLICLI + Web UI
Conexiones3 simultáneasIlimitadas
TTL máximo1 hora7 días
Transferencia / sesión500 MBIlimitada
Publishers1Ilimitados
Passes / mes25Ilimitados
SoporteComunidadIngeniería directa

Contáctanos para hacer upgrade.

Tips

Reutilizar un pass (ahorra cuota)

Cada connect crea un pass nuevo (25/mes en free tier). Para reintentar sin gastar otro, usa --pass:

# Primer intento — crea un pass
./wzctl connect --broker ... --publisher ... --target ... --port ... --ttl 30m --local-port 5432
# → Pass created (dap_c6fe0c)

# Reintenta con el mismo pass (no consume otro):
./wzctl connect --broker https://freetier.wireztna.com --pass dap_c6fe0c --local-port 5432

Listar y revocar passes

./wzctl passes list --broker https://freetier.wireztna.com
./wzctl passes revoke dap_c6fe0c --broker https://freetier.wireztna.com

Modo daemon (CI/Docker)

Añade --daemon para ejecutar en background:

./wzctl connect --broker https://freetier.wireztna.com \
  --publisher pub_a7c3f9b2 --target 192.168.1.100 --port 5432 \
  --ttl 10m --local-port 5432 --daemon &
sleep 2
psql -h localhost -p 5432  # Listo

Ejemplo GitHub Actions

- name: Conectar a BD privada
  run: |
    curl -fsSL https://wireztna.com/dl/wzctl-linux-amd64 -o wzctl && chmod +x wzctl
    ./wzctl connect --broker https://freetier.wireztna.com \
      --publisher "$PUBLISHER_ID" --target 192.168.1.100 --port 5432 \
      --ttl 10m --local-port 5432 --daemon &
    sleep 2 && pg_isready -h localhost -p 5432
  env:
    PUBLISHER_ID: ${{ secrets.PUBLISHER_ID }}

Seguridad

  • Temporal — los passes auto-expiran. Sin acceso residual.
  • Acotado — un pass = una IP:puerto. Sin acceso a toda la red.
  • Revocable — revoca al instante, conexiones caen en 1 segundo.
  • Auditado — cada conexión registrada con bytes y duración.
  • Solo salida — wzctl solo necesita puerto 443 saliente.

Desinstalar publisher

sudo systemctl stop wireztna-publisher && sudo systemctl disable wireztna-publisher
sudo rm /usr/local/bin/wireztna-publisher /etc/systemd/system/wireztna-publisher.service
sudo rm -rf /etc/wireztna-publisher/ && sudo systemctl daemon-reload

Referencia CLI

wzctl register  --broker URL --email EMAIL --save
wzctl token     --broker URL --cidrs CIDR --name NOMBRE
wzctl publishers --broker URL
wzctl connect   --broker URL --publisher ID --target IP --port PUERTO --ttl DUR --local-port PUERTO [--daemon] [--pass ID]
wzctl passes list --broker URL
wzctl passes revoke PASS_ID --broker URL

Con --pass, solo --broker y --local-port son obligatorios.

Variables de entorno: WIREZTNA_BROKER, WIREZTNA_TOKEN.

Siguientes pasos