Linux-Node-Vorabprüfung
Ein Nur-Lese-Diagnoseskript erzeugenSensible Werte (IP, Hostname, Benutzer, Pfade) werden in der Ausgabe maskiert.
Einführung
Die Linux-Node-Vorabprüfung erzeugt ein Bash-Skript, das einen Linux-Server inventarisiert, bevor Sie einen Blockchain-Knoten darauf betreiben: Distribution, Architektur, CPU und Flags, Speicher, Swap, Platte und Dateisystemtyp, NTP und Zeitzone, Ulimits, belegte Ports, Firewall, Docker, Compose, systemd, Kernel, sysctl-Parameter und ausgehende Konnektivität.
Das Skript ist strikt diagnostisch. Es installiert nichts, ändert keine Konfiguration, öffnet keine Ports, startet nichts neu und sendet außer einem TCP-Erreichbarkeitstest nichts ins Netz. Sie führen es auf dem Knoten aus und fügen den Bericht hier zur Analyse ein.
Ziel
- Ein Nur-Lese-Bash-Skript erzeugen, das auf Chain und Knotentyp zugeschnitten ist.
- Die Punkte sichtbar machen, die einen Node-Rollout am häufigsten brechen: zu wenig RAM oder Platte, fehlender Swap, unsynchronisierte Uhr, belegte Ports, fehlendes Docker/Compose und nicht unterstützte Architektur.
- Optional öffentliche IP, Hostname, Benutzername, persönliche Pfade und tokenartige Werte in der Ausgabe maskieren.
- Den eingefügten Bericht lokal analysieren und als bestanden, Aufmerksamkeit, kritisch oder unverifiziert einstufen.
Eingaben
- Blockchain und Knotentyp (validator, rpc, full, archive oder pruned).
- Maskierungspräferenz für sensible Werte.
- Der vom Skript erzeugte Berichtstext (zur Analyse wieder einfügen).
So funktioniert es
Das Skript wird aus Nur-Lese-Befehlen zusammengesetzt (uname, lscpu, /proc/meminfo, df, lsblk, findmnt, timedatectl, ulimit, ss, ufw/firewall-cmd, docker, systemctl, sysctl, ein TCP-Erreichbarkeitstest) und gibt einen PF_KEY=value-Bericht aus.
Ist Maskierung aktiviert, leitet das Skript seine Ausgabe durch einen sed-Filter, der IP-Adressen, Hostnamen, den aktuellen Benutzer, persönliche Pfade und tokenartige Werte vor der Anzeige schwärzt.
Der eingefügte Bericht wird zurück in Schlüssel geparst und gegen Chain-Schwellen verglichen: RAM und freie Platte gegen das empfohlene Minimum, Swap-Präsenz, NTP-Synchronisation, belegte erforderliche Ports, Docker/Compose-Präsenz, Architekturunterstützung und das Open-File-Ulimit.
Das Ergebnis wird klassifiziert: bestanden, wenn nichts fehlschlug; Aufmerksamkeit bei Warnungen; kritisch bei blockierenden Punkten; unverifiziert, wenn erforderliche Schlüssel fehlen.
Testbares Beispiel
Ausprobieren — die Analyse läuft lokal in Ihrem Browser.
Beispiel
Blockchain: Cosmos · Knotentyp: validator · Maskierung: an
Erwartete Ausgabe
PF_OS=Ubuntu 24.04.4 LTS PF_ARCH=aarch64 PF_MEM_TOTAL_GB=5 PF_DISK_FREE_GB=67 PF_NTP=yes PF_PORTS=22 80 443 3100 → Kritisch: RAM liegt unter dem empfohlenen Minimum für dieses Profil.
Ausgabe verstehen
- Bestanden bedeutet, dass die geprüften Punkte die Profilschwellen erfüllen — es garantiert nicht, dass der Knoten läuft; es ist ein Bereitschaftssignal, keine Zertifizierung.
- Ein kritischer Befund (RAM, Platte, belegter erforderlicher Port) sollte vor dem Node-Deploy behoben werden.
- Warnungen wie fehlender Swap oder unverifizierte Punkte sind kontextabhängig; für Ihre Arbeitslast prüfen.
- Maskierte Ausgabe hält den Bericht sicher zum Einfügen in einen Browser, aber behandeln Sie den Bericht trotzdem als sensibel.
Risiken
- Ein auf einem zu kleinen Server gestarteter Knoten kann während des Syncs seine Datenbank beschädigen und einen kompletten Re-Sync erzwingen.
- Eine unsynchronisierte Uhr bricht Validator-Abstimmungen und kann Strafen auslösen.
- Das Einfügen eines Berichts mit echten Geheimnissen — die Maskierungsoption reduziert, beseitigt aber nicht dieses Risiko.
Grenzen
- Das Werkzeug liest, was das Skript ausgegeben hat; es kann nichts verifizieren, was das Skript nicht messen konnte.
- Docker und Compose werden gemeldet, nicht gefordert — einige Node-Deployments laufen ohne sie.
- Der Konnektivitätstest prüft nur Erreichbarkeit; er sendet keine Daten.
Offizielle Referenzen
FAQ
Ändert das Skript etwas auf meinem Server?
Nein. Es liest nur Systeminformationen und gibt einen Bericht aus. Es installiert keine Pakete, ändert keine Konfiguration, öffnet keine Ports und startet nichts neu. Das erzeugte Skript bei Bedarf vor der Ausführung prüfen.
Was macht der Konnektivitätstest?
Er öffnet eine TCP-Verbindung zu 1.1.1.1:53 und meldet ok oder unreachable. Er sendet keine Anwendungsdaten — er testet nur, ob ausgehende Verbindungen funktionieren, was die meisten Node-Stacks für Peer-Discovery brauchen.
Soll ich den Bericht ohne Maskierung einfügen?
Nein. Maskierung anlassen: Der Bericht enthält Ihre öffentliche IP, Hostname und Benutzername. Die Analyse funktioniert identisch, weil sie die PF_-Schlüssel liest, nicht die maskierten Werte.