Bir AeroNyx düğümünü çalıştırma ve denetleme
Kayıtlı AeroNyx düğümleri için bir çalıştırma kılavuzu: durum, sağlık JSON'u, günlükler, relay-probe, relay-smoke ve mailbox-probe, otomatik geri almalı güvenli yükseltmeler, elle geri alma, yeniden başlatma sonrası denetimler ve her sinyalin Nodeboard'da nasıl göründüğü.
Bu çalıştırma kılavuzu, kayıtlı bir AeroNyx düğümü için günlük komutları kapsar: durum, sağlık, günlükler, aktarım ve posta kutusu kanıtları, güvenli yükseltmeler, geri alma ve bir yeniden başlatmadan sonra neyin denetleneceği. Her komut düğüm deposunda (deploy/node/aeronyx-node.sh ve aeronyx-server ikili dosyası) bulunur ve kodun kabul ettiği seçeneklerle gösterilir.
Henüz bir düğüm kurmadıysanız Bir AeroNyx düğümünü kurma ve kaydetme ile başlayın.
Başlamadan önce
Her şeyi bir root kabuğundan (sudo -i) çalıştırın. Yapılandırma dizini /etc/aeronyx ve durum dizini /var/lib/aeronyx 700 kipindedir; bu nedenle durum, sağlık, doğrulama ve aktarım komutları bunları başka bir kullanıcı olarak okuyamaz.
Hizmetin gerçekten çalıştığı depoya geçin ve her betik komutunda bunu --repo-dir ile iletin. --repo-dir olmadan betik /opt/aeronyx/AeroNyx konumunu varsayar.
cd "$(systemctl show aeronyx-server -p WorkingDirectory --value)"
pwd
Nodeboard komutuyla kurulan düğümlerde bu, /root/open/AeroNyx yazdırır.
Bir bakışta komutlar
| Komut | Ana makineyi değiştirir mi? | Ne için kullanılır |
|---|---|---|
./deploy/node/aeronyx-node.sh status --repo-dir "$PWD" | Hayır | İlk bakış: hizmet durumu, yerel sağlık, keşif, yükseltme durumu ve önerilen sonraki adım |
./deploy/node/aeronyx-node.sh health --repo-dir "$PWD" --json | Hayır | Tam tanılama; son satır JSON'dur |
./deploy/node/aeronyx-node.sh logs --repo-dir "$PWD" --lines 200 | Hayır | Son hizmet günlüğü (canlı izlemek için --follow) |
./deploy/node/aeronyx-node.sh relay-probe --repo-dir "$PWD" --two-hop --json | Ana makinede değişiklik yok; eşlere tek bir sentetik şifreli zarf gönderir | Aktarım yolu kullanılabilir mi? |
./target/release/aeronyx-server relay-smoke --confirm-live-relay-smoke --json | Kısa ömürlü iki test oturumu oluşturur | Kimliği doğrulanmış aktarım teslimatının uçtan uca kanıtı |
./target/release/aeronyx-server mailbox-probe … --confirm-live-mailbox-probe --json | Hedef düğümde kısa ömürlü bir posta kutusu oluşturur | Onion rotası üzerinden anonim posta kutusunun uçtan uca kanıtı |
./deploy/node/aeronyx-node.sh upgrade --repo-dir "$PWD" … | Evet | Geri alma desteğiyle yeni bir sürümü derleme, doğrulama ve ona geçme |
Durum
./deploy/node/aeronyx-node.sh status --repo-dir "$PWD"
status sırasıyla şunları yazdırır:
systemctl status aeronyx-server(son 20 satır)- yerel sağlık API'sinin (
http://127.0.0.1:8421/api/vpn/health) ve operatör durum API'sinin (http://127.0.0.1:8421/api/operator/status) bir özeti http://127.0.0.1:8422/api/discovery/statusüzerinden yerel keşif hazırlığı: ChatRelay duyurusu ve eş yeter sayısı (quorum)/var/lib/aeronyx/upgrade-status.jsondosyasından son yükseltme iş akışı durumu- bir operatör önerisi:
operator_status,operator_title,operator_detailveoperator_next_step
Öneri, sağlık denetiminden gelir. Durumu şunlardan biridir:
operator_status | Öncelik | Anlamı |
|---|---|---|
critical | fix_failed_healthcheck veya fix_failed_upgrade | Bir denetim başarısız oldu veya son yükseltme başarısız oldu |
warning | service_not_active, privacy_protocol_degraded veya review_warnings | Hizmet çalışmıyor, yerel sağlık ok değil veya uyarılar var |
info | upgrade_staged | Bir derleme hazırlanmış ve yeniden başlatma bekliyor |
ok | monitor | Başarısız denetim yok |
Sağlık
./deploy/node/aeronyx-node.sh health --repo-dir "$PWD" --json
Sağlık denetimi dosyaları, systemd'yi ve yerel uç noktaları okur; ana makineyi asla değiştirmez. Her denetim [PASS], [WARN] veya [FAIL] yazdırır, ardından bir [SUMMARY] pass=… warn=… fail=… satırı ve ardından tek bir JSON satırı gelir. Yalnızca JSON'u yazdırmak için --json-only kullanın. Herhangi bir denetim başarısız olursa komut sıfır olmayan bir durum koduyla çıkar.
Denetlediği şeyler: depo, izlenen Cargo.lock ve sürüm ikili dosyası; aeronyx-server validate ile yapılandırma doğrulaması; kayıt ve anahtar dosyaları; systemd birimi, yeniden başlatma politikası ve sıkılaştırma; bellek, disk ve 51820 ile 8421 bağlantı noktaları; IP yönlendirme ve NAT; yerel sağlık uç noktası; keşif; ve sürüm yedekleri.
Başlıca JSON alanları:
| Alan | Anlamı |
|---|---|
success | Hiçbir denetim başarısız olmadığında true |
summary | pass, warn ve fail sayıları |
operator_action | status tarafından gösterilen öneri (status, priority, title, detail, next_step) |
local_vpn_health | status (sağlıklıyken ok), active_sessions, placement_readiness, encrypted_message_forwarding |
capacity | Düğümün bildirdiği kapasite sayaçları ve riskler |
discovery_readiness | ChatRelay yeteneği (yapılandırılmış, uç nokta hazır, çalışma zamanı hazır, duyurulmuş, engelleyiciler), peer_quorum (quorum_ready, valid_peers, healthy_peers, routeable_chat_relays, routeable_onion_middle_hops, next_action), network_story (tek atlamalı ve iki atlamalı hazırlık) ve recovery_anchor |
runtime | Çalışma kopyasının Git commit'i ve dalı, izlenen dosyaların değiştirilip değiştirilmediği, ikili dosya ve yapılandırma zamanları, service_active, service_enabled, systemd yeniden başlatma politikası, birimin bu ikili dosyayı ve yapılandırmayı gösterip göstermediği, VPN alt ağı, sürüm yedekleri |
upgrade_status | Son yükseltme adımı, durumu ve mesajı |
checks | Her denetim, durumu ve mesajıyla birlikte |
Ham yerel uç noktaları doğrudan okuyabilirsiniz:
curl -s http://127.0.0.1:8421/api/vpn/health
curl -s http://127.0.0.1:8422/api/discovery/status
Günlükler
./deploy/node/aeronyx-node.sh logs --repo-dir "$PWD" --lines 200
./deploy/node/aeronyx-node.sh logs --repo-dir "$PWD" --follow
Bunlar journalctl -u aeronyx-server -n <lines> --no-pager (varsayılan 160 satır) ve journalctl -u aeronyx-server -f komutlarını sarmalar. Zaman aralıkları için journalctl komutunu doğrudan kullanın; örneğin journalctl -u aeronyx-server --since "1 hour ago".
Aktarım ve posta kutusu kanıtları
Bu komutlar farklı soruları yanıtlar. Başarılı bir sentetik yoklamayı gerçek teslimatın kanıtı olarak görmeyin.
relay-probe (sentetik)
./deploy/node/aeronyx-node.sh relay-probe --repo-dir "$PWD" --json
./deploy/node/aeronyx-node.sh relay-probe --repo-dir "$PWD" --two-hop --json
Bu düğümden keşfedilmiş bir ChatRelay eşine tek bir sentetik, rastgele ve opak BlindRelay zarfı gönderir ve yalnızca sayaç değişikliklerini bildirir. --two-hop, zarfı bir ara atlama üzerinden bir uç düğüme gönderir. Sonuçtaki status değeri ok, attention, blocked veya error olur ve two_hop_readiness, iki atlamalı bir yol mümkün olmadığında neyin eksik olduğunu açıklar. Eş önbelleğini ve düğüm anahtarını okuduğu için root gerektirir. Kullanıcı trafiği değildir ve posta kutusu teslimatını kanıtlamaz. fleet-smoke, --endpoints ile listelediğiniz birkaç genel düğüm üzerinde benzer bir sentetik denetim çalıştırır.
relay-smoke (kimliği doğrulanmış, uçtan uca)
./target/release/aeronyx-server relay-smoke --confirm-live-relay-smoke --json
relay-smoke, bu ana makinedeki düğüme karşı gerçek bir istemci gibi davranır. Geçici kimliklerle kısa ömürlü iki oturum açar ve bu düğümün anahtarına sabitlenmiş olarak üretim el sıkışmasını tamamlar. Kimliği doğrulanmış çok atlamalı aktarım yolu üzerinden uçtan uca şifrelenmiş, 48 baytlık tek bir rastgele mesaj gönderir. Ardından tam olarak bu isteğe ait imzalı uç makbuzunu doğrular, mesajı bu düğümün posta kutusundan çeker, şifresini çözer, alındısını onaylar ve posta kutusunun boş, oturumların kapalı olduğunu denetler.
Her kapı geçilmedikçe başlamayı reddeder:
| Kapı | Hata mesajı |
|---|---|
Yerel sağlık ok ve hiçbir sağlık denetimi başarısız değil | node health is not ready / node health has failed checks |
| Düğümde sıfır etkin oturum var | relay smoke requires zero active sessions for evidence attribution |
| Eş yeter sayısı, rota havuzu ve iki atlamalı onion rotası hazır | peer quorum is not ready / route pool is not ready / two-hop onion route is not ready |
| Teslim makbuzu verebilen en az iki eşle kimliği doğrulanmış bir teslimat yolu mevcut | authenticated delivery path is not ready: <reason>; burada neden no_receipt_capable_terminal, no_receipt_capable_middle veya no_network_diverse_receipt_path olur |
| ChatRelay yapılandırmada etkin ve çalışma zamanı hazır | chat relay is disabled in node configuration / chat relay runtime is not ready |
Aktarım emanet depolaması tam commit dayanıklılığını doğrulamış (SQLite FULL veya daha güçlü) | encrypted custody durability is unavailable; restart the node with the current binary / … is not FULL-or-stronger |
| Çalışan ikili dosya kimliği doğrulanmış onion aktarım sağlığını bildiriyor | authenticated onion relay health is unavailable; restart the node with the current binary |
Notlar:
- Düğümün kendisinde root olarak çalışmalıdır.
/etc/aeronyx/server.tomldosyasını ve düğüm anahtarını okur ve yalnızca geri döngü (loopback) adreslerini kabul eder (--server, varsayılan127.0.0.1:51820;--health-url, varsayılanhttp://127.0.0.1:8421/api/vpn/health). --timeout-secondskanıt penceresini ayarlar: 5 ile 120 saniye arası, varsayılan 30.- Sıfır etkin oturum şartı, VPN kullanıcılarına hizmet veren bir düğümün önce boşaltılması gerektiği anlamına gelir. Nodeboard'da Maintenance Mode'u açın ve oturumların sıfıra inmesini bekleyin.
- İki test oturumu gerçek protokol oturumlarıdır; bu nedenle Nodeboard Sessions bölümünde kısa süreliğine görünebilirler.
- Başarılı bir sonuçta
"status": "passed"bulunur,terminal_receipt_observed,entry_mailbox_round_trip_verified,entry_mailbox_ack_verifiedvee2e_ciphertext_verifieddeğerlerinin tümütrueolur vesession_cleanupdeğeriexplicit_authenticated_closeolur.terminal_replica_cleanupdeğerinode_ttl_managedolur: giriş düğümünde alındı onayı vermek, uç düğümün tuttuğu kopyayı silmez; o kopyanın süresi kendiliğinden dolar. - Başarısız herhangi bir kapı, hata veya eksik alan, kısmi bir başarı değil, başarısız bir kanıttır.
mailbox-probe (istemci kaynaklı)
./target/release/aeronyx-server mailbox-probe \
--seed http://SEED_PUBLIC_IP:8422 \
--target <64-hex node ID of the mailbox node> \
--entry <64-hex node ID of a different entry node> \
--confirm-live-mailbox-probe --json
mailbox-probe bir uygulama gibi davranır: geçici anahtarlar kullanır, --seed düğümlerinden toplanan imzalı tanımlayıcılardan kendi onion rotasını oluşturur ve VPN oturumu olmadan giriş düğümünün genel eş API'sine düz HTTP gönderir. Hedef düğümde tam anonim posta kutusu yaşam döngüsünü çalıştırır: ticket_issue, lease_create, put, pull_one, ack ve son bir pull_one. Çekilen baytların eşleştiğini ve posta kutusunun sonrasında boş olduğunu denetler. Başarılı bir sonuç "status": "verified" değerini ve atlama sayısını bildirir.
--seedbirden çok kez verilebilir.--entryolmadan rota tek atlamalıdır.- Düğüm kimliği, düğümün 64 karakterlik onaltılık genel anahtarıdır. İşlettiğiniz bir düğümde
./target/release/aeronyx-server pubkey -c /etc/aeronyx/server.tomlbunu yazdırır. - Hedefte anonim posta kutusunun etkin olması gerekir (
[memchain.chat_relay.anonymous_mailbox] enabled = true); varsayılan olarak kapalıdır. --work-bits(varsayılan 12) en az hedefin bilet iş ayarı kadar olmalıdır.--timeout-secondsistek başınadır (varsayılan 20).- Yerel düğüm dosyalarını okumadığı için ikili dosyanın bulunduğu herhangi bir makineden çalışabilir. Opak bir öğenin emanetini kanıtlar; bir alıcının onun şifresini çözebileceğini kanıtlamaz.
Güvenli yükseltme
git pull ardından systemctl restart değil, yükseltme iş akışını kullanın:
./deploy/node/aeronyx-node.sh upgrade --repo-dir "$PWD" --build-priority live --build-jobs auto
Yaptıkları:
- Bir dağıtım kilidi alır ve çalışma kopyasındaki izlenen dosyalar değiştirilmişse çalışmayı reddeder (
--allow-dirtybunu geçersiz kılar). maindalını çeker (veya--commit <40-hex SHA>ile yalıtılmış bir çalışma kopyasında tam bir commit'i derler).- Depoda sabitlenmiş Rust araç zinciriyle derler.
liveönceliği (varsayılan) ve--build-jobs auto, çalışan düğümün hizmet vermeye devam etmesi için CPU'ların yaklaşık yarısını kullanır. /etc/aeronyx/server.tomldosyasını yeni ikili dosyayla doğrular. Yapılandırma dosyasının üzerine asla yazılmaz.- Gerçekte çalışan ikili dosyayı
/var/lib/aeronyx/releases/konumuna yedekler. - Etkin oturumları derlemeden sonra ve yeniden başlatmadan hemen önce bir kez daha denetler. Herhangi bir oturum varsa veya hizmet çalışırken sayı okunamıyorsa sürüm değiştirmeden durur.
- systemd birimlerini günceller, yeni ikili dosyayı yerine koyar ve hizmeti yeniden başlatır.
- Yerel sağlığın az önce derlediği commit'ten
okbildirmesi için 180 saniyeye kadar (2 saniye arayla 90 denetim) bekler. Yeniden başlatma, hizmet durumu veya sağlık denetimi başarısız olursa önceki ikili dosyayı ve birimleri otomatik olarak geri yükler. - Her türden en son 10 yedeği saklar ve sonucu
/var/lib/aeronyx/upgrade-status.jsondosyasına kaydeder.
Düğümde etkin oturumlar varsa derleme yine çalışır ve yükseltme ardından Active sessions appeared during compilation. Enter maintenance mode, drain sessions, and run the upgrade again. mesajıyla durur. Nodeboard Settings bölümünde Maintenance Mode'u açın, etkin oturumların sıfıra inmesini bekleyin ve aynı komutu yeniden çalıştırın. Yeniden derleme önbelleği yeniden kullanır.
Şimdi hazırla, sonra yeniden başlat
./deploy/node/aeronyx-node.sh upgrade --repo-dir "$PWD" --no-restart
--no-restart derler, doğrular ve yedekler, ardından yeni ikili dosyayı yeniden başlatmadan diske kurar. status bundan sonra upgrade_staged bildirir. Çalışan süreç eski sürümü korur. Yeniden başlatma veya bir çökme sonrasındaki otomatik yeniden başlatma da dahil olmak üzere sonraki herhangi bir yeniden başlatma yeni ikili dosyayı başlatır.
Bir bakım penceresinde geçiş yapmak için düğümü boşaltın ve yükseltmeyi çekme yapmadan yeniden çalıştırın; böylece oturum denetimi, sağlık beklemesi ve geri alma ile tam olarak hazırladığınız sürüme geçer:
./deploy/node/aeronyx-node.sh upgrade --repo-dir "$PWD" --skip-pull
--force kullanmayın. Oturumlar etkinken veya oturum sayısı bilinmezken bile yeniden başlatır ve kullanıcıların bağlantısını keser.
Elle geri alma
Yeni sürüm başlatılamadığında veya sağlıklı olduğunu bildiremediğinde yükseltme otomatik olarak geri alınır. Daha sonra önceki bir sürüme dönmek için kaydedilmiş ikili dosyalardan birini yükseltin (promote):
ls -lt /var/lib/aeronyx/releases/
./deploy/node/aeronyx-node.sh promote-binary --repo-dir "$PWD" \
--binary /var/lib/aeronyx/releases/<aeronyx-server.binary.YYYYMMDD_HHMMSS.xxxxxx>
promote-binary, yapılandırmayı seçilen ikili dosyayla doğrular ve etkin oturumlar tam olarak sıfır olmadıkça çalışmayı reddeder. PROMOTE BINARY yazmanızı ister, mevcut ikili dosyayı yanına yedekler, ikili dosyayı değiştirir ve yeniden başlatır. Hizmet 180 saniye içinde sağlıklı olmazsa önceki ikili dosyayı geri yükler. systemd birimlerini değil, yalnızca ikili dosyayı değiştirir.
Her yeniden başlatmadan sonra
Şunları sırasıyla denetleyin:
systemctl is-active aeronyx-server,activedöndürür. BirimType=notifytüründedir; bu nedenleactive, sürecin hazır olduğunu bildirdiği anlamına gelir; başlatma, systemd vazgeçmeden önce 300 saniyeye kadar sürebilir../deploy/node/aeronyx-node.sh status --repo-dir "$PWD",operator_status=okveya anladığınız bir uyarı gösterir../deploy/node/aeronyx-node.sh health --repo-dir "$PWD" --json,"success":trueile biter velocal_vpn_health.statusdeğeriokolur.- Çalışan commit, amaçladığınız commit'tir:
curl -s http://127.0.0.1:8421/api/vpn/healthbunuruntime.git_commitolarak bildirir. (health --jsoniçindekiruntime.git_commit, çalışma kopyasının commit'idir.) - İlk dedikodu turlarından sonra
discovery_readiness.peer_quorum.quorum_readydeğeritrueolur. - Aktarım düğümleri için:
relay-probe --two-hop --json,okbildirir. - Nodeboard'da kalp atışı günceldir, Rust Runtime yeni sürümü gösterir ve yeniden başlatma Alerts / Events altında görünür. İşiniz bittiğinde Maintenance Mode'u kapatın.
journalctl -u aeronyx-server --since "15 min ago"tekrarlayan hata içermez.
Bunun Nodeboard'da görünümü
Nodeboard, düğümün imzalı kalp atışını ve oturum raporlarını alır. Ana makinede kendi başına komut çalıştırmaz; orada seçtiğiniz eylemler kuyruğa alınır ve düğüm bunları bir sonraki kalp atışında çalıştırır.
| Düğümde | Nodeboard'da |
|---|---|
| Hizmet durumu ve yerel sağlık | Nodes listesi ve düğüm ayrıntısı: AeroNyx Health, Rust Runtime, AeroNyx Service Readiness |
| Kapasite sayaçları | Düğüm ayrıntısı: Node Capacity ve Capacity Decision (ready, watch, blocked, waiting) |
| Keşif ve aktarım hazırlığı | Düğüm ayrıntısı: Node Discovery, Encrypted Chat Relay; tüm filo için Services |
upgrade-status.json | Düğüm ayrıntısı: Rust Upgrade Workflow; Services → Fleet Restart Readiness |
| Hizmet günlüğündeki uyarılar | Düğüm ayrıntısı: Recent Operational Events (arındırılmış, son 24 saat) |
| Yeniden başlatmalar ve kurtarmalar | Alerts / Events → Incident Closure (open, watch, recovered) |
| Maintenance Mode, en fazla oturum, bant genişliği, katman | Settings; Policy Sync synced gösterdiğinde onaylanmış olur |
Düğüm ayrıntısında ayrıca algılanan depo yolu için kopyalanabilir health, status, logs ve hazırlanmış yükseltme komutlarını içeren bir Operator Runbook kartı bulunur.
Çıktıların içeriği
status, health, relay-probe, relay-smoke ve mailbox-probe yalnızca toplu değerleri yazdırır: sayılar, durumlar, zamanlamalar ve neden kodları. Özel anahtarları, kayıt kodlarını, istemcilerin genel IP adreslerini, hedefleri, DNS içeriklerini, yükleri veya mesaj düz metnini yazdırmaz. İstemci anahtarlarını içeren oturum kayıtları bu çıktılarda değil, Nodeboard'da görünür; Nodeboard operatör konsolu kılavuzu sayfasına bakın. Destek için çıktı paylaşırken ana makine adreslerini veya kimlik bilgilerini değil, JSON'u ve zaman damgasını paylaşın.
Sıkça sorulan sorular
Bir şeyler yanlış göründüğünde ilk hangi komutu çalıştırmalıyım?
Root olarak ./deploy/node/aeronyx-node.sh status --repo-dir "$PWD" çalıştırın. Hizmet durumunu, yerel sağlığı, keşfi ve önerilen sonraki adımı gösterir ve ana makineyi değiştirmez.
health neden "config missing" veya Git uyarılarıyla başarısız oluyor?
Büyük olasılıkla root değilsiniz veya yanlış depoyu gösteriyorsunuz. /etc/aeronyx ve /var/lib/aeronyx yalnızca root'a açıktır ve --repo-dir olmadan betik, hizmetin çalıştığı çalışma kopyası yerine /opt/aeronyx/AeroNyx konumunu denetler.
relay-probe ile relay-smoke arasındaki fark nedir?
relay-probe tek bir sentetik opak zarf gönderir ve yalnızca bir aktarım yolunun trafiği kabul ettiğini gösterir. relay-smoke gerçek bir istemci gibi davranır: tek bir şifreli test mesajı için imzalı bir uç makbuzunu ve posta kutusundan tam çekme ile alındı onayını doğrular.
relay-smoke neden sıfır etkin oturum gerektiğini söylüyor?
Sayaç değişikliklerini kendi test oturumlarına atfeder; bu nedenle yalnızca boşta olan bir düğümde çalışır. Nodeboard'da Maintenance Mode'u açın, etkin oturumların sıfıra inmesini bekleyin, ardından çalıştırın.
Kullanıcıların bağlantısını kesmeden yükseltme yapabilir miyim?
Kullanıcılar bağlıyken --no-restart ile bir yükseltmeyi derleyip hazırlayabilirsiniz. Yeni sürüme geçmek bir yeniden başlatma gerektirir; bu nedenle düğümü Maintenance Mode ile boşaltın ve ardından upgrade --skip-pull çalıştırın.
Önceki sürüme nasıl dönerim?
Başarısız bir yükseltme otomatik olarak geri alınır. Daha sonra geri almak için /var/lib/aeronyx/releases/ içindeki yedeklerden biriyle promote-binary kullanın; bu komut sıfır etkin oturum gerektirir ve yükseltilen ikili dosya sağlıksızsa önceki ikili dosyayı geri yükler.