Instalar y registrar un nodo de AeroNyx

AeroNyx14 min de lectura

Instale el nodo de código abierto de AeroNyx en un servidor Linux con el comando quickstart del repositorio, regístrelo con un código de Nodeboard de un solo uso y verifique la admisión en la red. También trata los roles de relé, la unión sin permisos, el despliegue TEE y las instalaciones asistidas por IA.

Esta guía instala el software de nodo de código abierto de AeroNyx en un servidor Linux, lo registra en su cuenta de operador de Nodeboard con un código de un solo uso y comprueba que la red lo ha admitido. La vía admitida es el script del repositorio deploy/node/aeronyx-node.sh quickstart, que es el mismo comando que Nodeboard genera para usted.

Antes de operar un nodo, lea la Política para operadores de nodos.

Antes de empezar

ElementoRequisito
Sistema operativoLinux con systemd. El instalador instala paquetes con apt-get (Debian, Ubuntu), dnf o yum.
AccesoUn shell de root. Todos los comandos de esta guía suponen que primero se ejecuta sudo -i.
Dispositivo TUN/dev/net/tun debe existir para el plano de datos de la VPN.
MemoriaPor debajo de 2 GB, el instalador muestra una advertencia y continúa. El nodo se compila desde el código fuente en el servidor, por lo que 4 GB o más es una opción más segura.
DiscoCon menos de 4 GB libres, el instalador muestra una advertencia y continúa. Reserve 20 GB o más para la caché de compilación y las copias de seguridad de versiones que conserva el flujo de actualización.
Puertos de entrada51820/UDP (escucha de la VPN) y 8422/TCP (descubrimiento firmado y API entre pares). Ábralos en el firewall de su proveedor de nube; el instalador no modifica las reglas de firewall de entrada.
Solo local127.0.0.1:8421 es la API local de estado y administración. No la exponga.

Por qué root: el repositorio está en /root/open/AeroNyx, el instalador escribe /etc/aeronyx y /var/lib/aeronyx con el modo 700, y server.toml con el modo 600. Los comandos que leen esas rutas fallan para otros usuarios, y Git se niega a leer desde otra cuenta un checkout cuyo propietario es root ("dubious ownership").

Qué hace quickstart

quickstart ejecuta cuatro pasos y se detiene antes de cualquier cambio en el host hasta que usted lo apruebe:

  1. Muestra el plan de instalación resuelto (solo lectura).
  2. Espera a que escriba INSTALL. Pulsar Intro lo detiene de forma segura.
  3. Ejecuta las comprobaciones previas, instala los paquetes y la cadena de herramientas de Rust fijada por el repositorio, escribe /etc/aeronyx/server.toml si no existe (un archivo existente se conserva), configura el reenvío IP y la NAT, compila el nodo, instala la unidad systemd aeronyx-server, registra la identidad del nodo con su código, inicia el servicio y espera hasta 120 segundos a la admisión en la red.
  4. Muestra status y un resumen de health --json.

La espera de admisión comprueba que el estado local informa ok, que el backend devolvió una política reciente (el ciclo de ida y vuelta del latido funciona), que el descubrimiento tiene al menos un par firmado y validado y ha completado una ronda de difusión y, en el caso de los nodos públicos, que el nodo figura en el grupo público.

Paso 1: crear un código de registro

  1. Inicie sesión en Nodeboard y abra Registration Codes.
  2. Seleccione Generate Code.
  3. Mantenga el código en privado. Caduca a los 15 minutos, funciona una sola vez y vincula el nuevo nodo a la cuenta que lo creó.

A continuación, Nodeboard muestra un comando de quickstart, comandos de vista previa e instalación paso a paso, un comando de estado y una indicación para un asistente de IA. Su columna Install Progress sigue al instalador a través de not_started → planning → running → completed | failed.

El backend comprueba el código cuando el instalador llega a su paso de registro, que viene después de la compilación. Una primera compilación en un servidor pequeño puede tardar más de 15 minutos. Si el registro falla entonces porque el código caducó, genere un código nuevo y vuelva a ejecutar quickstart; la segunda ejecución reutiliza la caché de compilación.

Paso 2: obtener o actualizar el repositorio

aeronyx-node.sh no es un comando del sistema. Viene incluido en el repositorio. Esta es la línea de clonación o actualización que usa Nodeboard:

bash
mkdir -p /root/open && cd /root/open
if [ -d AeroNyx/.git ]; then cd AeroNyx && git fetch origin main && git checkout main && git pull --ff-only origin main; else git clone https://github.com/AeroNyxNetwork/AeroNyx.git AeroNyx && cd AeroNyx; fi
git rev-parse HEAD

Pase siempre --repo-dir "$PWD" (o --repo-dir /root/open/AeroNyx) al script. Sin esta opción, install, upgrade, health y status usan de forma predeterminada /opt/aeronyx/AeroNyx.

Paso 3: ejecutar quickstart

Ejecute quickstart sin código en la línea de comandos. Cuando se ejecuta en una terminal, pide el código con una solicitud oculta, de modo que el código no se muestra en pantalla, no se guarda en el historial del shell y no se pasa como argumento del proceso:

bash
cd /root/open/AeroNyx
./deploy/node/aeronyx-node.sh quickstart --repo-dir "$PWD" --branch main --quick \
  --node-name "Example1" --region DE --public-vpn
  • --node-name es el nombre que se muestra en Nodeboard y en la lista de nodos VPN.
  • --region es un código de país ISO 3166-1 alfa-2.
  • --public-vpn publica el nodo en el grupo público de la VPN. Omítalo para mantener el nodo privado.

En Nodeboard registration code: pegue el código y pulse Intro. Revise el plan y luego escriba INSTALL.

Sobre el comando que genera Nodeboard

El comando de quickstart de Nodeboard incluye el código en la propia línea, por ejemplo AERONYX_REGISTRATION_CODE='<code>' ./deploy/node/aeronyx-node.sh quickstart --repo-dir "$PWD" --branch main --quick. Funciona, pero el código queda guardado en el historial del shell. Si lo usa:

  • Compruebe echo "$HISTCONTROL". Si contiene ignorespace o ignoreboth, empiece el comando con un espacio y Bash no lo registrará.
  • En caso contrario, elimine después la entrada con history -d <number>.

El código es de un solo uso y caduca a los 15 minutos, lo que limita la exposición, pero no lo pegue en tickets, capturas de pantalla ni chats.

Instalación no interactiva

Para la automatización, obtenga primero la vista previa y luego pase el código por la entrada estándar. read -rs lo mantiene fuera de la pantalla y del historial:

bash
cd /root/open/AeroNyx
./deploy/node/aeronyx-node.sh plan --repo-dir "$PWD" --branch main
read -rs AERONYX_CODE
printf '%s\n' "$AERONYX_CODE" | ./deploy/node/aeronyx-node.sh install \
  --repo-dir "$PWD" --branch main --quick --registration-code-stdin \
  --node-name "Example1" --region DE --public-vpn
unset AERONYX_CODE

install --quick no pide INSTALL. Úselo solo después de haber revisado el plan.

Paso 4: verificar el nodo

bash
cd /root/open/AeroNyx
systemctl is-active aeronyx-server
./deploy/node/aeronyx-node.sh status --repo-dir "$PWD"
./deploy/node/aeronyx-node.sh health --repo-dir "$PWD" --json

Un nodo nuevo en buen estado muestra:

  • aeronyx-server está active, y health informa fail=0
  • el instalador mostró [OK] Node admission accepted con health=ok, management=fresh y discovery=ready (y public_pool=online en un nodo público)
  • status muestra operator_status=ok y un paso siguiente
  • la última línea JSON de health --json tiene "success":true; las advertencias aparecen en checks

En Nodeboard, el código aparece como completed y el nodo aparece en Nodes con su nombre, región, visibilidad y un latido reciente. La página de detalle del nodo muestra una Capacity Decision de ready, watch, blocked o waiting.

Para las comprobaciones diarias, los registros, las actualizaciones y la reversión, consulte Ejecutar y comprobar un nodo de AeroNyx.

Opcional: unirse al relé cifrado

Un nodo VPN y un nodo de relé cifrado son opciones independientes. La participación en el relé tiene tres partes: una API entre pares pública y accesible, el rol ciego de almacenamiento y reenvío ChatRelay y el rol OnionMiddle sin salida. Ambos roles están desactivados en la configuración predeterminada.

  1. Asegúrese de que 8422/TCP es accesible desde Internet.

  2. Edite /etc/aeronyx/server.toml (por ejemplo, nano /etc/aeronyx/server.toml) y establezca estas claves en la sección [discovery], con su dirección pública:

    toml
    public_endpoint = "http://203.0.113.10:8422"
    public_discovery = true
    region = "DE"
    
  3. Valide el archivo:

    bash
    cd /root/open/AeroNyx
    ./target/release/aeronyx-server validate -c /etc/aeronyx/server.toml
    
  4. Active ChatRelay sin reiniciar. El asistente hace una copia de seguridad de la configuración, le pide que escriba ENABLE CHATRELAY, valida y restaura la copia de seguridad si la validación falla:

    bash
    ./deploy/node/aeronyx-node.sh chat-relay --repo-dir "$PWD" --enable-chat-relay
    
  5. Active OnionMiddle y reinicie en un único paso protegido. Le pide que escriba ENABLE ONIONMIDDLE y se niega a reiniciar si el nodo tiene sesiones activas o no puede informar del número de sesiones:

    bash
    ./deploy/node/aeronyx-node.sh onion-middle --repo-dir "$PWD" --enable-onion-middle --restart
    

    Si se niega, active Maintenance Mode para el nodo en Settings de Nodeboard, espere a que las sesiones activas lleguen a cero y vuelva a ejecutarlo. No añada --yes: omite la confirmación y la protección de sesiones activas.

  6. Compruebe la preparación del relé:

    bash
    ./deploy/node/aeronyx-node.sh relay-probe --repo-dir "$PWD" --two-hop --json
    

Activar un rol no equivale a que se use para rutas. Un nodo solo se convierte en candidato de ruta después de que los pares lo vean accesible y exista evidencia reciente de prueba de ruta. Consulte Descubrimiento de nodos y relé cifrado.

Unirse sin Nodeboard

join instala el nodo y envía su descriptor firmado a un nodo semilla para la admisión de Stage-A, sin código de registro ni cuenta de Nodeboard:

bash
cd /root/open/AeroNyx
./deploy/node/aeronyx-node.sh join --repo-dir "$PWD" \
  --seed http://SEED_PUBLIC_IP:8422 \
  --public-endpoint http://YOUR_PUBLIC_IP:8422 --json
  • --seed admite de 1 a 8 nodos semilla públicos; la solicitud va al primero. --public-endpoint es la API entre pares accesible de su nodo. Ambos deben ser URL http o https con una dirección IP pública, no un nombre de host.
  • Se ejecuta como root en Linux con systemd y necesita Python 3.11 o posterior, o python3 con el paquete tomli.
  • Establece seis valores de [discovery] (enabled, advertise_self, public_discovery, gossip_enabled, public_endpoint, seed_endpoints) y deja intacto el resto del archivo.
  • Si el servicio ya se está ejecutando con otra configuración, se detiene sin cambiar nada.
  • --commit <40-hex SHA> fija el commit exacto del código fuente. --dry-run muestra el resultado previsto sin hacer cambios. --check-only verifica un nodo ya unido sin enviar nada.

Un resultado correcto es "admission_stage":"stage_a_candidate" con "route_authority":false y "route_ready":false. La admisión de Stage-A significa que la semilla aceptó su descriptor. No hace que el nodo sea enrutable, no lo incluye en Nodeboard ni en el grupo de la VPN y no lo hace apto para recibir pagos. La respuesta de la semilla viaja por HTTP sin cifrar salvo que la semilla use HTTPS, por lo que no es un comprobante criptográfico.

Despliegue TEE con Docker

El repositorio también contiene un despliegue en contenedor para máquinas virtuales confidenciales que ejecutan dstack (Phala Cloud o Intel TDX autoalojado): deploy/node/Dockerfile, deploy/node/compose.tee.yaml, deploy/node/server.tee.toml y deploy/node/tee-entrypoint.sh.

Este rol no es un nodo VPN:

  • vpn.enabled = false: sin dispositivo TUN, sin proxy DNS, sin MemChain. El contenedor se ejecuta con todas las capacidades de Linux eliminadas y con no-new-privileges.
  • Ejecuta el relé cebolla (advertise_onion_middle = true), ChatRelay y el buzón anónimo, y solo expone 8422.
  • La identidad del nodo procede del servicio de administración de claves de dstack ([server_key] source = "dstack"). No hay archivo de clave.
  • Semillas fijadas. server.tee.toml fija cuatro nodos semilla con discovery.pinned_seeds. Un nodo sin instantánea del operador no tiene otros anclajes de confianza, y cada semilla fijada solo se contacta mediante TLS ligado a la identidad. Conserva o sustituye las semillas fijadas; consulta Descubrimiento de nodos y relé cifrado multisalto.

Para desplegar:

  1. Elija una imagen de versión de ghcr.io/aeronyxnetwork/aeronyx-node. La CI compila imágenes linux/amd64 a partir de las etiquetas node-v* y adjunta una atestación de procedencia de compilación. Busque el digest, por ejemplo con docker buildx imagetools inspect ghcr.io/aeronyxnetwork/aeronyx-node:<tag>.
  2. En compose.tee.yaml, sustituya IMAGE_DIGEST por ese digest. Fije siempre por digest, no por etiqueta; en una máquina virtual dstack, el archivo compose forma parte del despliegue medido.
  3. Establezca AERONYX_PUBLIC_ENDPOINT en el origen https:// que la pasarela de dstack asigna al puerto 8422. El punto de entrada rechaza cualquier otro esquema.
  4. Opcionalmente, establezca AERONYX_REGION (valor predeterminado tee).
  5. Solo para el primer arranque, proporcione AERONYX_REGISTRATION_CODE como secreto cifrado. El punto de entrada lo canaliza a aeronyx-server register --code-stdin. Una vez que node_info.json existe en el volumen /var/lib/aeronyx, el código ya no es necesario.

El contenedor no incluye aeronyx-node.sh. Supervise un nodo TEE en Nodeboard y a través de su API pública de descubrimiento.

Instalar con un asistente de programación de IA

Los asistentes de terminal como Claude Code, Codex, OpenClaw o Hermes pueden ejecutar este procedimiento. Nodeboard ofrece un AI assistant prompt listo para usar junto a cada código. Estas reglas se aplican sea cual sea el asistente que utilice.

El operador humano:

  • proporciona el servidor y aprueba cada cambio en el host
  • escribe INSTALL personalmente después de leer el plan
  • mantiene en privado el código de registro. La indicación de IA de Nodeboard contiene el código, por lo que pegarla comparte el código con el proveedor del asistente. Para evitarlo, deje que el asistente actualice el repositorio y ejecute plan, que no requiere código; después ejecute usted mismo quickstart y escriba el código en la solicitud oculta. Devuelva el control al asistente para la verificación.

El asistente debe:

  • usar únicamente deploy/node/aeronyx-node.sh de github.com/AeroNyxNetwork/AeroNyx y pasar --repo-dir
  • usar únicamente las opciones que documenta el script (./deploy/node/aeronyx-node.sh help). Las opciones desconocidas fallan; por ejemplo, --api-base detiene el instalador con Unknown option.
  • mostrar o resumir el plan antes de cualquier cambio en el host y esperar la aprobación
  • ejecutar status después de la instalación o actualización e informar de operator_status, operator_title, operator_detail y operator_next_step, y luego health --json cuando se necesite más detalle
  • informar de las advertencias como advertencias y no declarar el éxito solo porque haya un proceso en ejecución
  • preferir upgrade --no-restart salvo que usted apruebe un reinicio en una ventana de mantenimiento
  • no usar nunca --force ni --yes, ni reiniciar nunca un nodo con sesiones activas, sin su aprobación explícita
  • no mostrar nunca códigos de registro, claves privadas, secretos de API, IP públicas de clientes, destinos, contenido DNS, cargas útiles de paquetes ni texto sin cifrar de chats

Se considera terminado cuando:

  • el repositorio está en main y se informa del commit
  • quickstart o install terminó con Node admission accepted
  • status informa operator_status=ok, o cada advertencia está explicada
  • health --json informa "success":true
  • Nodeboard muestra el nodo con un latido reciente y una Capacity Decision
  • Alerts / Events → Incident Closure no tiene ningún elemento open sin revisar para el nodo
  • usted conoce la página de detalle del nodo en Nodeboard

Qué informa un nodo registrado

Los diagnósticos locales (status, health, relay-probe) muestran solo valores agregados: estado del servicio, capacidad, contadores de paquetes, preparación del descubrimiento y resultados de las pruebas.

Un nodo VPN registrado también informa al backend de AeroNyx de cada sesión VPN: ID de sesión, la clave del cliente (client_wallet), la IP virtual del túnel, recuentos de bytes, tiempos y calidad del enlace. No informa de las IP públicas de los clientes, los destinos, el contenido DNS ni las cargas útiles de los paquetes. Los operadores pueden ver estos registros de sesión de sus propios nodos en Nodeboard; consulte la Guía de la consola de operador Nodeboard. Como cualquier servidor VPN, el propio nodo maneja el tráfico de los clientes sin cifrar en la salida, por lo que los operadores deben cumplir la Política para operadores de nodos.

Páginas relacionadas

<!-- faq:start -->

Preguntas frecuentes

¿De dónde sale aeronyx-node.sh?

Es un archivo del repositorio del nodo de AeroNyx situado en deploy/node/aeronyx-node.sh, no un comando del sistema. Clone o actualice https://github.com/AeroNyxNetwork/AeroNyx en /root/open/AeroNyx y ejecútelo desde ahí con --repo-dir "$PWD".

¿Cómo evito que el código de registro quede en el historial del shell?

Ejecute quickstart sin el código y escríbalo en la solicitud oculta Nodeboard registration code:. En scripts, léalo con read -rs y canalícelo a install --quick --registration-code-stdin.

¿Por qué el script busca en /opt/aeronyx/AeroNyx?

Es el valor predeterminado integrado del script para --repo-dir, mientras que Nodeboard clona en /root/open/AeroNyx. Pase --repo-dir en cada comando para que la instalación, la comprobación de estado, el resumen de estado y la actualización usen el checkout desde el que se ejecuta el servicio.

¿Qué ocurre si mi código caduca durante la instalación?

El paso de registro falla y el instalador se detiene antes de iniciar el servicio. El código se comprueba después de la compilación, así que genere un código nuevo y vuelva a ejecutar quickstart; la segunda ejecución reutiliza la caché de compilación.

¿Necesito Nodeboard para ejecutar un nodo?

No, join instala un nodo y lo envía para la admisión de Stage-A sin código de registro. Un nodo unido de esta forma no es enrutable, no figura en Nodeboard ni en el grupo de la VPN y no es apto para recibir pagos.

¿Puedo ejecutar un nodo en una máquina virtual confidencial?

Sí, el repositorio incluye un despliegue con Docker para máquinas virtuales confidenciales dstack que ejecuta el relé cebolla, ChatRelay y el buzón anónimo. No ofrece servicio VPN y obtiene su identidad del servicio de administración de claves de dstack.

<!-- faq:end -->