Instalar e registrar um nó AeroNyx
Instale o nó de código aberto da AeroNyx em um servidor Linux com o comando quickstart do repositório, registre-o com um código de uso único do Nodeboard e verifique a admissão na rede. Também aborda papéis de relay, entrada sem permissão, implantação em TEE e instalações assistidas por IA.
Este guia instala o software de nó de código aberto da AeroNyx em um servidor Linux, registra o nó na sua conta de operador do Nodeboard com um código de uso único e verifica se a rede o admitiu. O caminho suportado é o script do repositório deploy/node/aeronyx-node.sh quickstart, que é o mesmo comando que o Nodeboard gera para você.
- Console do operador: app.aeronyx.network
- Código-fonte (AGPL-3.0): github.com/AeroNyxNetwork/AeroNyx
Antes de operar um nó, leia a Política de Operadores de Nós.
Antes de começar
| Item | Requisito |
|---|---|
| Sistema operacional | Linux com systemd. O instalador instala pacotes com apt-get (Debian, Ubuntu), dnf ou yum. |
| Acesso | Um shell de root. Todos os comandos deste guia pressupõem sudo -i antes. |
| Dispositivo TUN | /dev/net/tun precisa existir para o plano de dados da VPN. |
| Memória | O instalador emite um aviso abaixo de 2 GB e continua. O nó é compilado a partir do código-fonte no servidor, então 4 GB ou mais é uma escolha mais segura. |
| Disco | O instalador emite um aviso abaixo de 4 GB livres e continua. Reserve 20 GB ou mais para o cache de compilação e os backups de versões que o fluxo de atualização mantém. |
| Portas de entrada | 51820/UDP (listener da VPN) e 8422/TCP (descoberta assinada e API entre pares). Abra-as no firewall da sua nuvem; o instalador não altera regras de firewall de entrada. |
| Somente local | 127.0.0.1:8421 é a API local de saúde e gerenciamento. Não a exponha. |
Por que root: o repositório fica em /root/open/AeroNyx, o instalador grava /etc/aeronyx e /var/lib/aeronyx com modo 700, e server.toml com modo 600. Comandos que leem esses caminhos falham para outros usuários, e o Git se recusa a ler um checkout pertencente ao root a partir de outra conta ("dubious ownership").
O que o quickstart faz
O quickstart executa quatro etapas e para antes de qualquer alteração no host até que você aprove:
- Imprime o plano de instalação resolvido (somente leitura).
- Espera que você digite
INSTALL. Pressionar Enter interrompe com segurança. - Executa verificações prévias, instala pacotes e o toolchain Rust fixado pelo repositório, grava
/etc/aeronyx/server.tomlse ele não existir (um arquivo existente é mantido), configura o encaminhamento de IP e o NAT, compila o nó, instala a unidade systemdaeronyx-server, registra a identidade do nó com o seu código, inicia o serviço e espera até 120 segundos pela admissão na rede. - Imprime
statuse um resumo dehealth --json.
A espera pela admissão verifica se a saúde local reporta ok, se o backend devolveu uma política recente (o ciclo de ida e volta do heartbeat funciona), se a descoberta tem pelo menos um par assinado validado e concluiu uma rodada de gossip e, no caso de nós públicos, se o nó está listado no pool público.
Etapa 1: criar um código de registro
- Entre no Nodeboard e abra Registration Codes.
- Selecione Generate Code.
- Mantenha o código em sigilo. Ele expira após 15 minutos, funciona uma única vez e vincula o novo nó à conta que o criou.
Em seguida, o Nodeboard mostra um comando de quickstart, comandos de pré-visualização e de instalação passo a passo, um comando de status e um prompt para assistente de IA. A coluna Install Progress acompanha o instalador por not_started → planning → running → completed | failed.
O backend verifica o código quando o instalador chega à etapa de registro, que vem depois da compilação. Uma primeira compilação em um servidor pequeno pode levar mais de 15 minutos. Se o registro falhar porque o código expirou, gere um novo código e execute o quickstart novamente; a segunda execução reutiliza o cache de compilação.
Etapa 2: obter ou atualizar o repositório
aeronyx-node.sh não é um comando do sistema. Ele vem no repositório. Esta é a linha de clonar-ou-atualizar que o Nodeboard usa:
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
Sempre passe --repo-dir "$PWD" (ou --repo-dir /root/open/AeroNyx) ao script. Sem isso, install, upgrade, health e status usam por padrão /opt/aeronyx/AeroNyx.
Etapa 3: executar o quickstart
Execute o quickstart sem o código na linha de comando. Quando roda em um terminal, ele pede o código por um prompt oculto, de modo que o código não é exibido na tela, não fica salvo no histórico do shell e não é passado como argumento de processo:
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é o nome exibido no Nodeboard e na lista de nós da VPN.--regioné um código de país ISO 3166-1 alfa-2.--public-vpnpublica o nó no pool público da VPN. Omita-o para manter o nó privado.
Em Nodeboard registration code:, cole o código e pressione Enter. Revise o plano e, em seguida, digite INSTALL.
Sobre o comando que o Nodeboard gera
O comando de quickstart do Nodeboard coloca o código na própria linha, por exemplo AERONYX_REGISTRATION_CODE='<code>' ./deploy/node/aeronyx-node.sh quickstart --repo-dir "$PWD" --branch main --quick. Isso funciona, mas o código fica salvo no histórico do shell. Se você usá-lo:
- Verifique
echo "$HISTCONTROL". Se contiverignorespaceouignoreboth, comece o comando com um espaço e o Bash não o registra. - Caso contrário, remova a entrada depois com
history -d <number>.
O código é de uso único e expira após 15 minutos, o que limita a exposição, mas não o cole em tickets, capturas de tela ou chats.
Instalação não interativa
Para automação, primeiro pré-visualize e depois passe o código pela entrada padrão. read -rs o mantém fora da tela e do histórico:
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 não pede INSTALL. Use-o somente depois de revisar o plano.
Etapa 4: verificar o nó
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
Um nó novo e saudável mostra:
aeronyx-serverestáactive, ehealthreportafail=0- o instalador imprimiu
[OK] Node admission acceptedcomhealth=ok,management=freshediscovery=ready(epublic_pool=onlinepara um nó público) statusimprimeoperator_status=oke uma próxima etapa- a última linha JSON de
health --jsontem"success":true; os avisos aparecem emchecks
No Nodeboard, o código aparece como completed, e o nó aparece em Nodes com nome, região, visibilidade e um heartbeat recente. A página de detalhes do nó mostra uma Capacity Decision de ready, watch, blocked ou waiting.
Para verificações do dia a dia, logs, atualizações e rollback, consulte Executar e verificar um nó AeroNyx.
Opcional: participar do relay criptografado
Um nó de VPN e um nó de relay criptografado são escolhas separadas. A participação no relay tem três partes: uma API entre pares pública e alcançável, o papel cego de armazenar e encaminhar do ChatRelay e o papel OnionMiddle, sem saída. Os dois papéis vêm desativados na configuração padrão.
-
Certifique-se de que
8422/TCPesteja alcançável pela internet. -
Edite
/etc/aeronyx/server.toml(por exemplo,nano /etc/aeronyx/server.toml) e defina estas chaves na seção[discovery], usando o seu endereço público:tomlpublic_endpoint = "http://203.0.113.10:8422" public_discovery = true region = "DE" -
Valide o arquivo:
bashcd /root/open/AeroNyx ./target/release/aeronyx-server validate -c /etc/aeronyx/server.toml -
Ative o ChatRelay sem reiniciar. O auxiliar faz backup da configuração, pede que você digite
ENABLE CHATRELAY, valida e restaura o backup se a validação falhar:bash./deploy/node/aeronyx-node.sh chat-relay --repo-dir "$PWD" --enable-chat-relay -
Ative o OnionMiddle e reinicie em uma única etapa protegida. Ele pede que você digite
ENABLE ONIONMIDDLEe se recusa a reiniciar se o nó tiver sessões ativas ou não conseguir informar uma contagem de sessões:bash./deploy/node/aeronyx-node.sh onion-middle --repo-dir "$PWD" --enable-onion-middle --restartSe ele se recusar, ative o Maintenance Mode do nó em Settings no Nodeboard, espere até que as sessões ativas cheguem a zero e execute-o novamente. Não adicione
--yes: ele pula a confirmação e a proteção de sessões ativas. -
Verifique se o relay está pronto:
bash./deploy/node/aeronyx-node.sh relay-probe --repo-dir "$PWD" --two-hop --json
Ativar um papel não é o mesmo que ser usado em rotas. Um nó só se torna candidato a rota depois que os pares o veem como alcançável e existem evidências recentes de prova de caminho. Consulte Descoberta de nós e relay criptografado.
Participar sem o Nodeboard
join instala o nó e envia o seu descritor assinado a um nó semente para a admissão de Estágio A, sem código de registro nem conta no 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
--seedaceita de 1 a 8 nós semente públicos; a solicitação vai para o primeiro.--public-endpointé a API entre pares alcançável do seu nó. Ambos precisam ser URLshttpouhttpscom um endereço IP público, não um nome de host.- Ele roda como root em Linux com systemd e precisa de Python 3.11 ou posterior, ou de
python3com o pacotetomli. - Ele define seis valores de
[discovery](enabled,advertise_self,public_discovery,gossip_enabled,public_endpoint,seed_endpoints) e deixa o restante do arquivo intacto. - Se o serviço já estiver em execução com configurações diferentes, ele para sem alterar nada.
--commit <40-hex SHA>fixa o commit exato do código-fonte.--dry-runimprime o resultado planejado sem fazer alterações.--check-onlyverifica um nó que já participa sem enviar nada.
Um resultado bem-sucedido é "admission_stage":"stage_a_candidate" com "route_authority":false e "route_ready":false. A admissão de Estágio A significa que o nó semente aceitou o seu descritor. Ela não torna o nó roteável, não o lista no Nodeboard nem no pool da VPN e não o torna elegível para pagamento. A resposta do nó semente trafega por HTTP simples, a menos que o nó semente use HTTPS, portanto não é um comprovante criptográfico.
Implantação em TEE com Docker
O repositório também contém uma implantação em contêiner para VMs confidenciais que executam o dstack (Phala Cloud ou Intel TDX auto-hospedado): deploy/node/Dockerfile, deploy/node/compose.tee.yaml, deploy/node/server.tee.toml e deploy/node/tee-entrypoint.sh.
Esse papel não é um nó de VPN:
vpn.enabled = false: sem dispositivo TUN, sem proxy de DNS, sem MemChain. O contêiner roda com todas as capabilities do Linux removidas e comno-new-privileges.- Ele executa o relay onion (
advertise_onion_middle = true), o ChatRelay e a caixa postal anônima, e expõe somente8422. - A identidade do nó vem do serviço de gerenciamento de chaves do dstack (
[server_key] source = "dstack"). Não há arquivo de chave. - Sementes fixadas. O
server.tee.tomlfixa quatro nós semente comdiscovery.pinned_seeds. Um nó sem instantâneo do operador não tem outras âncoras de confiança, e cada semente fixada só é contatada por TLS vinculado à identidade. Mantenha ou substitua as sementes fixadas; veja Descoberta de nós e relay criptografado de múltiplos saltos.
Para implantar:
- Escolha uma imagem de release em
ghcr.io/aeronyxnetwork/aeronyx-node. A CI compila imagenslinux/amd64a partir de tagsnode-v*e anexa uma atestação de proveniência da compilação. Encontre o digest, por exemplo comdocker buildx imagetools inspect ghcr.io/aeronyxnetwork/aeronyx-node:<tag>. - Em
compose.tee.yaml, substituaIMAGE_DIGESTpor esse digest. Sempre fixe pelo digest, não pela tag; em uma VM dstack, o arquivo compose faz parte da implantação medida. - Defina
AERONYX_PUBLIC_ENDPOINTcomo a origemhttps://que o gateway do dstack atribui à porta 8422. O entrypoint recusa qualquer outro esquema. - Opcionalmente, defina
AERONYX_REGION(padrãotee). - Somente na primeira inicialização, forneça
AERONYX_REGISTRATION_CODEcomo um segredo criptografado. O entrypoint o envia por pipe paraaeronyx-server register --code-stdin. Depois quenode_info.jsonexistir no volume/var/lib/aeronyx, o código não é mais necessário.
O contêiner não inclui aeronyx-node.sh. Monitore um nó TEE no Nodeboard e pela sua API pública de descoberta.
Instalação com um assistente de programação com IA
Assistentes de terminal como Claude Code, Codex, OpenClaw ou Hermes podem executar este procedimento. O Nodeboard oferece um AI assistant prompt pronto ao lado de cada código. Estas regras valem para qualquer assistente que você usar.
O operador humano:
- fornece o servidor e aprova toda alteração no host
- digita
INSTALLpessoalmente depois de ler o plano - mantém o código de registro em sigilo. O prompt de IA do Nodeboard contém o código, então colá-lo compartilha o código com o provedor do assistente. Para evitar isso, deixe o assistente atualizar o repositório e executar o
plan, que não usa código, e depois executequickstartvocê mesmo e digite o código no prompt oculto. Devolva ao assistente para a verificação.
O assistente deve:
- usar somente
deploy/node/aeronyx-node.shdegithub.com/AeroNyxNetwork/AeroNyxe passar--repo-dir - usar somente opções que o script documenta (
./deploy/node/aeronyx-node.sh help). Opções desconhecidas falham; por exemplo,--api-baseinterrompe o instalador comUnknown option. - mostrar ou resumir o plano antes de qualquer alteração no host e esperar a aprovação
- executar
statusdepois da instalação ou da atualização e reportaroperator_status,operator_title,operator_detaileoperator_next_step, e depoishealth --jsonquando for preciso mais detalhe - reportar avisos como avisos, e não declarar sucesso apenas porque um processo está em execução
- preferir
upgrade --no-restart, a menos que você aprove uma reinicialização em janela de manutenção - nunca usar
--forceou--yes, e nunca reiniciar um nó com sessões ativas, sem a sua aprovação explícita - nunca imprimir códigos de registro, chaves privadas, segredos de API, IPs públicos de clientes, destinos, conteúdo de DNS, payloads de pacotes ou texto puro de chat
Concluído significa:
- o repositório está em
maine o commit foi reportado - o quickstart ou a instalação terminou com
Node admission accepted statusreportaoperator_status=ok, ou cada aviso foi explicadohealth --jsonreporta"success":true- o Nodeboard mostra o nó com um heartbeat recente e uma Capacity Decision
- Alerts / Events → Incident Closure não tem nenhum item
opennão revisado para o nó - você conhece a página de detalhes do nó no Nodeboard
O que um nó registrado reporta
Os diagnósticos locais (status, health, relay-probe) imprimem apenas valores agregados: estado do serviço, capacidade, contadores de pacotes, prontidão da descoberta e resultados das provas.
Um nó de VPN registrado também reporta cada sessão de VPN ao backend da AeroNyx: ID da sessão, a chave do cliente (client_wallet), o IP virtual do túnel, contagens de bytes, tempos e qualidade do link. Ele não reporta IPs públicos de clientes, destinos, conteúdo de DNS nem payloads de pacotes. Os operadores podem ver esses registros de sessão dos seus próprios nós no Nodeboard; consulte o Guia do console do operador Nodeboard. Como qualquer servidor de VPN, o próprio nó lida com o tráfego do cliente em claro na saída, por isso os operadores precisam seguir a Política de Operadores de Nós.
Páginas relacionadas
- Executar e verificar um nó AeroNyx
- Guia do console do operador Nodeboard
- Descoberta de nós e relay criptografado
- Estatísticas da rede e fronteira de privacidade
Perguntas frequentes
De onde vem o aeronyx-node.sh?
É um arquivo do repositório do nó AeroNyx em deploy/node/aeronyx-node.sh, não um comando do sistema. Clone ou atualize https://github.com/AeroNyxNetwork/AeroNyx em /root/open/AeroNyx e execute-o a partir dali com --repo-dir "$PWD".
Como mantenho o código de registro fora do histórico do shell?
Execute quickstart sem o código e digite-o no prompt oculto Nodeboard registration code:. Em scripts, leia-o com read -rs e envie-o por pipe para install --quick --registration-code-stdin.
Por que o script procura em /opt/aeronyx/AeroNyx?
Esse é o padrão embutido do script para --repo-dir, enquanto o Nodeboard clona em /root/open/AeroNyx. Passe --repo-dir em todos os comandos para que install, health, status e upgrade usem o checkout a partir do qual o serviço roda.
O que acontece se o meu código expirar durante a instalação?
A etapa de registro falha e o instalador para antes de iniciar o serviço. O código é verificado depois da compilação, então gere um novo código e execute o quickstart novamente; a segunda execução reutiliza o cache de compilação.
Preciso do Nodeboard para executar um nó?
Não, join instala um nó e o envia para a admissão de Estágio A sem código de registro. Um nó que entra dessa forma não é roteável, não é listado no Nodeboard nem no pool da VPN e não é elegível para pagamento.
Posso executar um nó em uma VM confidencial?
Sim, o repositório inclui uma implantação Docker para VMs confidenciais dstack que executa o relay onion, o ChatRelay e a caixa postal anônima. Ela não fornece serviço de VPN e obtém a sua identidade do serviço de gerenciamento de chaves do dstack.
<!-- faq:end -->