Instalar y registrar un nodo de AeroNyx
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.
- Consola de operador: app.aeronyx.network
- Código fuente (AGPL-3.0): github.com/AeroNyxNetwork/AeroNyx
Antes de operar un nodo, lea la Política para operadores de nodos.
Antes de empezar
| Elemento | Requisito |
|---|---|
| Sistema operativo | Linux con systemd. El instalador instala paquetes con apt-get (Debian, Ubuntu), dnf o yum. |
| Acceso | Un 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. |
| Memoria | Por 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. |
| Disco | Con 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 entrada | 51820/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 local | 127.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:
- Muestra el plan de instalación resuelto (solo lectura).
- Espera a que escriba
INSTALL. Pulsar Intro lo detiene de forma segura. - Ejecuta las comprobaciones previas, instala los paquetes y la cadena de herramientas de Rust fijada por el repositorio, escribe
/etc/aeronyx/server.tomlsi no existe (un archivo existente se conserva), configura el reenvío IP y la NAT, compila el nodo, instala la unidad systemdaeronyx-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. - Muestra
statusy un resumen dehealth --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
- Inicie sesión en Nodeboard y abra Registration Codes.
- Seleccione Generate Code.
- 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:
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:
cd /root/open/AeroNyx
./deploy/node/aeronyx-node.sh quickstart --repo-dir "$PWD" --branch main --quick \
--node-name "Example1" --region DE --public-vpn
--node-namees el nombre que se muestra en Nodeboard y en la lista de nodos VPN.--regiones un código de país ISO 3166-1 alfa-2.--public-vpnpublica 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 contieneignorespaceoignoreboth, 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:
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
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-serverestáactive, yhealthinformafail=0- el instalador mostró
[OK] Node admission acceptedconhealth=ok,management=freshydiscovery=ready(ypublic_pool=onlineen un nodo público) statusmuestraoperator_status=oky un paso siguiente- la última línea JSON de
health --jsontiene"success":true; las advertencias aparecen enchecks
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.
-
Asegúrese de que
8422/TCPes accesible desde Internet. -
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:tomlpublic_endpoint = "http://203.0.113.10:8422" public_discovery = true region = "DE" -
Valide el archivo:
bashcd /root/open/AeroNyx ./target/release/aeronyx-server validate -c /etc/aeronyx/server.toml -
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 -
Active OnionMiddle y reinicie en un único paso protegido. Le pide que escriba
ENABLE ONIONMIDDLEy 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 --restartSi 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. -
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:
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
--seedadmite de 1 a 8 nodos semilla públicos; la solicitud va al primero.--public-endpointes la API entre pares accesible de su nodo. Ambos deben ser URLhttpohttpscon 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
python3con el paquetetomli. - 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-runmuestra el resultado previsto sin hacer cambios.--check-onlyverifica 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 conno-new-privileges.- Ejecuta el relé cebolla (
advertise_onion_middle = true), ChatRelay y el buzón anónimo, y solo expone8422. - 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.tomlfija cuatro nodos semilla condiscovery.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:
- Elija una imagen de versión de
ghcr.io/aeronyxnetwork/aeronyx-node. La CI compila imágeneslinux/amd64a partir de las etiquetasnode-v*y adjunta una atestación de procedencia de compilación. Busque el digest, por ejemplo condocker buildx imagetools inspect ghcr.io/aeronyxnetwork/aeronyx-node:<tag>. - En
compose.tee.yaml, sustituyaIMAGE_DIGESTpor ese digest. Fije siempre por digest, no por etiqueta; en una máquina virtual dstack, el archivo compose forma parte del despliegue medido. - Establezca
AERONYX_PUBLIC_ENDPOINTen el origenhttps://que la pasarela de dstack asigna al puerto 8422. El punto de entrada rechaza cualquier otro esquema. - Opcionalmente, establezca
AERONYX_REGION(valor predeterminadotee). - Solo para el primer arranque, proporcione
AERONYX_REGISTRATION_CODEcomo secreto cifrado. El punto de entrada lo canaliza aaeronyx-server register --code-stdin. Una vez quenode_info.jsonexiste 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
INSTALLpersonalmente 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 mismoquickstarty 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.shdegithub.com/AeroNyxNetwork/AeroNyxy pasar--repo-dir - usar únicamente las opciones que documenta el script (
./deploy/node/aeronyx-node.sh help). Las opciones desconocidas fallan; por ejemplo,--api-basedetiene el instalador conUnknown option. - mostrar o resumir el plan antes de cualquier cambio en el host y esperar la aprobación
- ejecutar
statusdespués de la instalación o actualización e informar deoperator_status,operator_title,operator_detailyoperator_next_step, y luegohealth --jsoncuando 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-restartsalvo que usted apruebe un reinicio en una ventana de mantenimiento - no usar nunca
--forceni--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
mainy se informa del commit - quickstart o install terminó con
Node admission accepted statusinformaoperator_status=ok, o cada advertencia está explicadahealth --jsoninforma"success":true- Nodeboard muestra el nodo con un latido reciente y una Capacity Decision
- Alerts / Events → Incident Closure no tiene ningún elemento
opensin 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
- Ejecutar y comprobar un nodo de AeroNyx
- Guía de la consola de operador Nodeboard
- Descubrimiento de nodos y relé cifrado
- Estadísticas de la red y límite de privacidad
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 -->