
nerva v1.69.2
Schnelle Service-Fingerprinting-CLI für 170+ Protokolle (TCP/UDP/SCTP) - entwickelt von Praetorian
Nerva
Nerva: Schnelles Service-Fingerprinting-CLI
Funktionen • Installation • Schnellstart • Verwendung • Protokolle • Bibliothek • Anwendungsfälle • Fehlerbehebung
Hochperformantes Service-Fingerprinting in Go. Identifizieren Sie über 170 Netzwerkprotokolle über TCP-, UDP- und SCTP-Transporte mit umfangreicher Metadatenextraktion.
Nerva erkennt und identifiziert schnell Dienste, die auf offenen Netzwerkports laufen. Verwenden Sie es zusammen mit Portscannern wie Naabu, um entdeckte Dienste zu fingerprinten, oder integrieren Sie es in Ihre Sicherheitspipelines für automatisierte Aufklärung.
Funktionen
- Über 170 Protokoll-Plugins — Datenbanken, Fernzugriff, Webdienste, Messaging, industrielle und Telekommunikationsprotokolle
- 76 HTTP-Fingerprinter — Erkennung von Webtechnologien einschließlich Firewalls, Datenbanken, KI/LLM-Servern und mehr
- Erkennung von Sicherheitsfehlkonfigurationen — Identifizierung häufiger Sicherheitsprobleme wie nicht authentifizierte APIs und Klartextprotokolle (
--misconfigs) - Unterstützung mehrerer Transporte — TCP (Standard), UDP (
--udp) und SCTP (--sctp, nur Linux) - Proxy-Unterstützung — Scannen Sie Datenverkehr transparent über SOCKS5- oder HTTP-Proxys mit konfigurierbarer DNS-Auflösung
- Umfangreiche Metadaten — Extrahieren Sie Versionen, Konfigurationen und sicherheitsrelevante Details aus jedem Dienst
- Schnellmodus — Scannen Sie nur Standardports für eine schnelle Aufklärung (
--fast) - Flexible Ausgabe — JSON-, CSV- oder menschenlesbare Formate
- Pipeline-freundlich — Pipe von Naabu, Nmap oder jedem Tool, das
host:portausgibt - Go-Bibliothek — Direkt in Ihre Go-Anwendungen importierbar
Installation
Releases
Laden Sie eine vorgefertigte Binärdatei von der Releases-Seite herunter.
Von GitHub```sh
go install github.com/praetorian-inc/nerva/cmd/nerva@latest
### Aus der Quelle```sh
git clone https://github.com/praetorian-inc/nerva.git
cd nerva
go build ./cmd/nerva
./nerva -h
Docker```sh
git clone https://github.com/praetorian-inc/nerva.git cd nerva docker build -t nerva . docker run --rm nerva -h docker run --rm nerva -t example.com:80 --json
## Schnellstart
Einen einzelnen Host fingerprinten:```sh
nerva -t example.com:22
# ssh://example.com:22
Detaillierte JSON-Metadaten abrufen:```sh nerva -t example.com:22 --json
{"host":"example.com","ip":"93.184.216.34","port":22,"protocol":"ssh","transport":"tcp","metadata":{...}}
Pipe von einem Portscanner:```sh
naabu -host example.com -silent | nerva
# http://example.com:80
# ssh://example.com:22
# https://example.com:443
Die vollständige Referenz — jeder Unterbefehl, Alias und jedes Flag, einschließlich der in --help verborgenen — wird in docs/CLI.md generiert.
Verwendung```
nerva [flags]
TARGET SPECIFICATION: Requires host:port or ip:port format. Assumes ports are open.
EXAMPLES: nerva -t example.com:80 nerva -t example.com:80,example.com:443 nerva -l targets.txt nerva --json -t example.com:80 cat targets.txt | nerva
### Beispiele
**Mehrere Ziele:**```sh
nerva -t example.com:22,example.com:80,example.com:443
Aus Datei:```sh nerva -l targets.txt --json -o results.json
**UDP-Scanning** (erfordert möglicherweise Root):```sh
sudo nerva -t example.com:53 -U
# dns://example.com:53
SCTP-Scanning (nur Linux):```sh nerva -t telecom-server:3868 -S
diameter://telecom-server:3868
**Schneller Modus** (nur Standard-Ports):```sh
nerva -l large-target-list.txt --fast --json
Proxy-Routing mit Remote-DNS-Auflösung:```sh nerva -t target.internal:80 --proxy socks5://127.0.0.1:1080 --dns-order p
### Erkennung von Sicherheitsfehlkonfigurationen
Nerva kann gängige Sicherheitsfehlkonfigurationen identifizieren, wenn es mit `--misconfigs` aktiviert wird:```sh
nerva -t example.com:2375 --misconfigs --json
Erkannte Fehlkonfigurationen:
| Finding ID | Schweregrad | Beschreibung |
|---|---|---|
docker-unauth-api | Kritisch | Docker-API ohne Authentifizierung erreichbar |
x11-unauth-access | Kritisch | X11-Server erlaubt unauthentifizierte Verbindungen |
smb-signing-not-required | Mittel | SMB-Signierung nicht erforderlich (Relay-Angriffsrisiko) |
telnet-cleartext | Mittel | Telnet überträgt Anmeldedaten im Klartext |
vnc-detected | Mittel | VNC erkannt (oft schwache Authentifizierung) |
ssh-password-auth | Mittel | Server erlaubt Passwort-Authentifizierung |
ssh-weak-cipher | Niedrig | Server bietet schwache Cipher (RC4, 3DES, Blowfish) |
ssh-weak-kex | Niedrig | Server bietet schwache Schlüsselaustauschalgorithmen |
ssh-weak-mac | Niedrig | Server bietet schwache MAC-Algorithmen |
ftp-cleartext | Niedrig | FTP überträgt Anmeldedaten im Klartext |
Beispielausgabe mit Fehlkonfigurationen:```json { "host": "example.com", "port": 2375, "protocol": "docker", "anonymous_access": true, "security_findings": [ { "id": "docker-unauth-api", "severity": "critical", "description": "Docker API accessible without authentication", "evidence": "Successfully queried /version endpoint without credentials" } ] }
### Proxy-Unterstützung
Nerva unterstützt das Routing von Scan-Verkehr über SOCKS5- und HTTP-Proxys mit konfigurierbarer DNS-Auflösung.
**Unterstützte Proxy-Schemata:**
- `socks5://` - SOCKS5-Proxy mit lokaler DNS-Auflösung
- `socks5h://` - SOCKS5-Proxy mit proxyseitiger DNS-Auflösung (immer)
- `http://` - HTTP-CONNECT-Proxy
- `https://` - HTTPS-CONNECT-Proxy
**Proxy-Authentifizierung:**```sh
# Inline authentication (URL format)
nerva -t example.com:80 --proxy socks5://username:[email protected]:1080
# Separate authentication flag
nerva -t example.com:80 --proxy socks5://127.0.0.1:1080 --proxy-auth username:password
DNS-Auflösungsstrategien (--dns-order):
| Option | Strategie | Anwendungsfall |
|---|---|---|
l | Nur lokal | Standard-lokales DNS (Standard) |
p | Nur Proxy | DNS-Auflösung über den Proxy erzwingen |
lp | Lokal, Fallback auf Proxy | Zuerst lokal versuchen, bei Fehler Proxy verwenden |
pl | Proxy, Fallback auf lokal | Zuerst Proxy versuchen, bei Fehler lokal verwenden |
Hinweis: Das Schema socks5h:// erzwingt automatisch DNS über den Proxy (entspricht --dns-order p)
Tor-Scan-Beispiel:```sh
Scan .onion services through Tor (SOCKS5 proxy on port 9050)
nerva -t http://example.onion:80 --proxy socks5h://127.0.0.1:9050
**UDP über Proxy:**```sh
# UDP scanning through SOCKS5 proxy (limited support)
nerva -t target.com:161 --proxy socks5://127.0.0.1:1080 --udp
⚠️ UDP-Einschränkungen: UDP über SOCKS5 wird nur eingeschränkt unterstützt. Nicht alle SOCKS5-Server unterstützen UDP-Assoziation. Ein lokaler UDP-Fallback kann auftreten.
Paralleles Scannen mit Ratenbegrenzung:```sh nerva -l large-target-list.txt -W 100 -H 5 -R 50 -v
**Graceful Shutdown** (Strg+C liefert Teilergebnisse zurück):```sh
nerva -l huge-target-list.txt -W 50 -v
# Press Ctrl+C to stop — collected results are still printed
Unterstützte Protokolle
Über 170 Service-Erkennungs-Plugins für TCP, UDP und SCTP:
HTTP-Fingerprint-Module (66)
Technologie-Erkennung für Webdienste, organisiert nach Kategorien:
Firewalls & Netzwerksicherheit (12)
| Modul | Beschreibung |
|---|---|
| Checkpoint | Check Point Security Gateway |
| Cisco ASA/FTD | Cisco Firewall/VPN-Appliances |
| FortiGate | Fortinet Firewall/VPN |
| GlobalProtect | Palo Alto Networks VPN |
| Juniper | Juniper SRX Firewalls |
| OPNsense | OPNsense Firewall |
| pfSense | pfSense Firewall |
| SonicWall | SonicWall Firewalls |
| AnyConnect | Cisco AnyConnect SSL VPN |
| Cisco Expressway | Cisco Collaboration Gateway |
| BigIP | F5 BIG-IP Load Balancer |
| WinRM | Windows Remote Management |
KI/LLM & Maschinelles Lernen (6)
| Modul | Beschreibung |
|---|---|
| Ollama | Selbstgehosteter LLM-Inferenzserver |
| LocalAI | Selbstgehostete LLM-Inferenz (OpenAI-kompatibel) |
| Open WebUI | LLM-Weboberfläche (im ChatGPT-Stil) |
| Triton | NVIDIA Triton Inference Server |
| Weaviate | Vektordatenbank für KI |
| ChromaDB | Vektordatenbank |
Datenbanken & Datenspeicher (12)
| Modul | Beschreibung |
|---|---|
| ArangoDB | Multi-Model-Datenbank |
| CockroachDB | Verteilte SQL-Datenbank |
| CouchDB | Apache-Dokumentendatenbank |
| Elasticsearch | Such- und Analyse-Engine |
| etcd | Verteilter Key-Value-Speicher |
| Milvus | Vektordatenbank |
| MinIO | S3-kompatibler Objektspeicher |
| Pinecone | Vektordatenbank |
| Redis Commander | Redis-Webverwaltungsoberfläche |
| TiDB | Verteilte SQL-Datenbank |
| YugabyteDB | Verteilte SQL-Datenbank |
| Qdrant | Vektordatenbank |
DevOps & Infrastruktur (14)
| Modul | Beschreibung |
|---|---|
| Artifactory | JFrog-Artefakt-Repository |
| Consul | HashiCorp Service Mesh |
| Docker Registry | Container-Image-Registry |
| Gitea | Selbstgehosteter Git-Dienst |
| Grafana | Observability-Plattform |
| Harbor | Container-Registry |
| Jaeger | Verteiltes Tracing |
| Jenkins | CI/CD-Automatisierung |
| Kubernetes | Container-Orchestrierungs-API |
| Portainer | Docker-Verwaltungsoberfläche |
| Prometheus | Überwachungssystem |
| Swagger/OpenAPI | API-Dokumentation |
| TeamCity | CI/CD-Server |
| Vault | HashiCorp Secrets Management |
Webserver & Frameworks (10)
| Modul | Beschreibung |
|---|---|
| Apache HTTPD | Apache HTTP Server |
| Express.js | Node.js-Webframework |
| GoAhead | Eingebetteter Webserver |
| Gotenberg | PDF-Generierungsdienst |
| Guacamole | Apache Remote-Desktop-Gateway |
| SOAP | Webdienste |
| Tengine | Alibaba-Webserver |
| Tomcat | Apache Tomcat |
| WordPress | CMS-Plattform |
| UPnP | Universal Plug and Play |
Enterprise & Business (8)
| Modul | Beschreibung |
|---|---|
| AEM | Adobe Experience Manager |
| Dynamics 365 | Microsoft Dynamics 365 / Power Apps |
| Oracle Service Cloud | Oracle CRM-Plattform |
| SAP NetWeaver | SAP-Enterprise-Plattform |
| Splunk | Log-Management-Plattform |
| VMware Horizon | Virtual-Desktop-Infrastruktur |
| QNAP QTS | NAS-Verwaltung |
| Exchange | Microsoft Exchange Server |
Home & IoT (2)
| Modul | Beschreibung |
|---|---|
| Home Assistant | Heimautomatisierungsplattform |
| UniFi/EdgeOS | Ubiquiti-Netzwerkgeräte |
Sonstige (2)
| Modul | Beschreibung |
|---|---|
| Go pprof | Go-Profiling-Endpunkte |
| NATS | Message Broker |
Datenbanken (20)
| Protokoll | Transport | Standardports |
|---|---|---|
| PostgreSQL | TCP | 5432 |
| MySQL | TCP | 3306 |
| MSSQL | TCP | 1433 |
| Oracle | TCP | 1521 |
| MongoDB | TCP | 27017 |
| Redis | TCP/TLS | 6379, 6380 |
| Cassandra | TCP | 9042 |
| InfluxDB | TCP | 8086 |
| Neo4j | TCP/TLS | 7687 |
| DB2 | TCP | 446, 50000 |
| Sybase | TCP | 5000 |
| Firebird | TCP | 3050 |
| Memcached | TCP | 11211 |
| ZooKeeper | TCP | 2181 |
| Milvus | TCP | 19530, 9091 |
| CouchDB | HTTP | 5984 |
| Elasticsearch | HTTP | 9200 |
| ArangoDB | HTTP | 8529 |
| ChromaDB | HTTP | 8000 |
| Pinecone | HTTP | 443 |
Fernzugriff (6)
| Protokoll | Transport | Standardports |
|---|---|---|
| SSH | TCP | 22, 2222 |
| RDP | TCP/TLS | 3389 |
| Telnet | TCP | 23 |
| VNC | TCP | 5900 |
| AnyDesk | TCP | 7070 |
| TeamViewer | TCP | 5938 |
Web & API (2)
| Protokoll | Transport | Hinweise |
|---|---|---|
| HTTP/HTTPS | TCP | HTTP/2, Technologie-Erkennung via Wappalyzer |
| Kubernetes | TCP | API-Server-Erkennung |
Messaging & Warteschlangen (10)
| Protokoll | Transport | Standardports |
|---|---|---|
| Kafka | TCP/TLS | 9092, 9093 |
| MQTT 3/5 | TCP/TLS | 1883, 8883 |
| AMQP | TCP/TLS | 5672, 5671 |
| ActiveMQ | TCP/TLS | 61616, 61617 |
| NATS | TCP/TLS | 4222, 6222 |
| Pulsar | TCP/TLS | 6650, 6651 |
| SMTP | TCP/TLS | 25, 465, 587 |
| POP3 | TCP/TLS | 110, 995 |
| IMAP | TCP/TLS | 143, 993 |
| SMPP | TCP | 2775, 2776 |
Datei- & Verzeichnisdienste (7)
| Protokoll | Transport | Standardports |
|---|---|---|
| FTP | TCP | 21 |
| SMB | TCP | 445 |
| NFS | TCP/UDP | 2049 |
| Rsync | TCP | 873 |
| TFTP | UDP | 69 |
| SVN | TCP | 3690 |
| LDAP | TCP/TLS | 389, 636 |
Netzwerkdienste (11)
| Protokoll | Transport | Standardports |
|---|---|---|
| DNS | TCP/UDP | 53 |
| DHCP | UDP | 67, 68 |
| NTP | UDP | 123 |
| SNMP | UDP | 161 |
| NetBIOS-NS | UDP | 137 |
| STUN | UDP | 3478 |
| OpenVPN | UDP | 1194 |
| IPsec | UDP | 500 |
| IPMI | UDP | 623 |
| CoAP | UDP | 5683 |
| Echo | TCP/UDP | 7 |
Industrielle Steuerungssysteme (18)
| Protokoll | Transport | Standardports | Hinweise |
|---|---|---|---|
| Modbus | TCP | 502 | SCADA/SPS |
| S7comm | TCP | 102 | Siemens SPS |
| EtherNet/IP | TCP | 44818 | Rockwell/Allen-Bradley |
| PROFINET | TCP | 34962-34964 | Siemens Industrie |
| BACnet | UDP | 47808 | Gebäudeautomation |
| OPC UA | TCP | 4840 | Industrielle Interoperabilität |
| OMRON FINS | TCP/UDP | 9600 | OMRON SPS |
| MELSEC-Q | TCP | 5006, 5007 | Mitsubishi SPS |
| KNXnet/IP | UDP | 3671 | Gebäudeautomation |
| IEC 104 | TCP | 2404 | Stromnetz-SCADA |
| DNP3 | TCP | 20000 | Stromnetz-SCADA |
| Codesys | TCP | 1200, 2455 | SPS-Laufzeitumgebung |
| Fox | TCP | 1911 | Tridium Niagara |
| PC WORX | TCP | 1962 | Phoenix Contact |
| ProConOS | TCP | 20547 | SPS-Laufzeitumgebung |
| HART-IP | TCP | 5094 | Prozessautomatisierung |
| EtherCAT | UDP | 34980 | Motion Control |
| Crimson v3 | TCP | 789 | Red Lion HMI |
| PCOM | TCP | 20256 | Unitronics SPS |
| GE SRTP | TCP | 18245 | GE SPS |
| ATG | TCP | 10001 | Tankmessgeräte |
Telekommunikation & VoIP (17)
| Protokoll | Transport | Standardports | Hinweise |
|---|---|---|---|
| Diameter | TCP/SCTP | 3868 | LTE/5G AAA |
| M3UA | SCTP | 2905 | SS7 über IP |
| M2UA | SCTP | 2904 | MTP2 User Adaptation |
| M2PA | SCTP | 3565 | MTP2 Peer Adaptation |
| SGsAP | SCTP | 29118 | Circuit-Switched Fallback |
| X2AP | SCTP | 36422 | LTE Inter-eNodeB |
| IUA | SCTP | 9900 | ISDN über IP |
| SIP | TCP/UDP/TLS | 5060, 5061 | VoIP-Signalisierung |
| MEGACO/H.248 | UDP | 2944, 2945 | Media Gateway |
| MGCP | UDP | 2427, 2727 | Media Gateway |
| H.323 | TCP | 1720 | Videokonferenzen |
| SCCP/Skinny | TCP | 2000, 2443 | Cisco IP-Telefone |
| IAX2 | UDP | 4569 | Asterisk-Protokoll |
| GTP-C | UDP | 2123 | GPRS-Steuerung |
| GTP-U | UDP | 2152 | GPRS-Nutzerebene |
| GTP' | UDP | 3386 | GPRS-Abrechnung |
| PFCP | UDP | 8805 | 5G-Nutzerebene |
VPN & Sicherheit (11)
| Protokoll | Transport | Standardports |
|---|---|---|
| SSH | TCP | 22, 2222 |
| OpenVPN | UDP | 1194 |
| WireGuard | UDP | 51820 |
| IPsec/IKEv2 | UDP | 500, 4500 |
| L2TP | UDP | 1701 |
| SSTP | TCP | 443 |
| GlobalProtect | HTTP | 443 |
| AnyConnect | HTTP | 443 |
| FortiGate | HTTP | 443 |
| STUN/TURN | UDP | 3478, 5349 |
| Kerberos | TCP | 88 |
Fernzugriff & -verwaltung (10)
| Protokoll | Transport | Standardports |
|---|---|---|
| RDP | TCP/TLS | 3389 |
| VNC | TCP | 5900 |
| Telnet | TCP | 23 |
| WinRM | HTTP | 5985, 5986 |
| IPMI | UDP | 623 |
| SNMP | UDP | 161 |
| Zabbix Agent | TCP | 10050 |
| NRPE | TCP/TLS | 5666 |
| Docker | TCP/TLS | 2375, 2376 |
| X11 | TCP | 6000-6063 |
Entwicklerwerkzeuge (8)
| Protokoll | Transport | Standardports |
|---|---|---|
| HTTP/HTTPS | TCP | 80, 443, 8080, 8443 |
| Java RMI | TCP | 1099 |
| JDWP | TCP | 5005 |
| RTSP | TCP | 554 |
| Linux RPC | TCP | 111 |
| JetDirect | TCP | 9100 |
| CUPS/IPP | TCP | 631 |
| SonarQube | TCP | 9000 |
Bibliotheksnutzung
Importiere Nerva in deine Go-Anwendungen:```go package main
import ( "context" "fmt" "log" "net/netip" "time"
"github.com/praetorian-inc/nerva/pkg/plugins"
"github.com/praetorian-inc/nerva/pkg/scan"
)
func main() { // Configure scan config := scan.Config{ DefaultTimeout: 2 * time.Second, FastMode: false, UDP: false, Proxy: "socks5://127.0.0.1:1080", // optional ProxyAuth: "username:password", // optional DNSOrder: "p", // resolver strategy }
// Create target
ip, _ := netip.ParseAddr("93.184.216.34")
target := plugins.Target{
Address: netip.AddrPortFrom(ip, 22),
Host: "example.com",
}
// Run scan
results, err := scan.ScanTargets(context.Background(), []plugins.Target{target}, config)
if err != nil {
log.Fatal(err)
}
// Process results
for _, result := range results {
fmt.Printf("%s:%d - %s (%s)\n",
result.Host, result.Port,
result.Protocol, result.Transport)
}
}
Siehe [examples/service-fingerprinting-example.go](https://github.com/praetorian-inc/nerva/blob/main/examples/service-fingerprinting-example.go) für ein vollständiges funktionierendes Beispiel.
## Anwendungsfälle
### Penetrationstests
Fingerprinting von Diensten, die während der Aufklärung entdeckt wurden, um potenzielle Angriffsvektoren schnell zu identifizieren.
### Asset-Discovery-Pipelines
Kombinieren Sie es mit Naabu oder Masscan für eine groß angelegte Asset-Inventarisierung:```sh
naabu -host 10.0.0.0/24 -silent | nerva --json | jq '.protocol'
CI/CD-Sicherheitsscans
In Deployment-Pipelines integrieren, um zu überprüfen, dass nur erwartete Dienste exponiert sind.
Bug-Bounty-Aufklärung
Dienste über Scope-Ziele hinweg schnell enumerieren, um interessante Endpunkte zu finden.
Telekommunikationsnetzwerkanalyse
Diameter-Knoten in LTE/5G-Netzen mittels SCTP-Transport fingerprinten (Linux):```sh nerva -t mme.telecom.local:3868 -S --json
## Architektur```mermaid
graph LR
A[host:port input] --> B[Target Parser]
B --> C[Scan Engine]
C --> D{Transport}
D -->|TCP| E[TCP Plugins]
D -->|UDP| F[UDP Plugins]
D -->|SCTP| G[SCTP Plugins]
E --> H[Service Detection]
F --> H
G --> H
H --> I[Metadata Extraction]
I --> J[JSON/CSV/Text Output]
Warum Nerva?
vs Nmap
- Intelligentere Standardeinstellungen: Nerva prüft das wahrscheinlichste Protokoll zuerst basierend auf der Portnummer
- Strukturierte Ausgabe: Native JSON/CSV-Unterstützung für einfaches Parsen und Pipeline-Integration
- Fokussiert: Nur Service-Fingerprinting — kombinieren Sie es mit dedizierten Port-Scannern für die Erkennung
vs zgrab2
- Automatische Erkennung: Kein Protokoll muss im Voraus angegeben werden
- Einfachere Verwendung:
nerva -t host:portvsecho host | zgrab2 http -p port
Fehlerbehebung
Keine Ausgabe
Ursache: Der Port ist geschlossen oder es wurde kein unterstützter Dienst erkannt.
Lösung: Überprüfen Sie, ob der Port geöffnet ist:```sh nc -zv example.com 80
### Timeout-Fehler
**Ursache**: Standard-Timeout von 2 Sekunden zu kurz für langsame Dienste.
**Lösung**: Timeout erhöhen:```sh
nerva -t example.com:80 -w 5000 # 5 seconds
UDP-Dienste nicht erkannt
Ursache: UDP-Scanning ist standardmäßig deaktiviert.
Lösung: Mit dem -U-Flag aktivieren (erfordert möglicherweise root):```sh
sudo nerva -t example.com:53 -U
### SCTP funktioniert nicht
**Ursache**: SCTP wird nur unter Linux unterstützt.
**Lösung**: Auf einem Linux-System oder in einem Container ausführen:```sh
docker run --rm nerva -t telecom:3868 -S
Terminologie
- Dienst: Ein Netzwerkdienst, der auf einem Port läuft (SSH, HTTP, PostgreSQL usw.)
- Fingerprinting: Erkennen und Identifizieren von Diensttyp, Version und Konfiguration
- Plugin: Ein protokollspezifisches Erkennungsmodul
- Fast Mode: Scannen nur des Standardports für jedes Protokoll (80/20-Optimierung)
- Transport: Netzwerkschichtprotokoll (TCP, UDP oder SCTP)
Unterstützung
Wenn Sie Nerva nützlich finden, ziehen Sie bitte in Betracht, ihm einen Stern zu geben:
Mitwirken
Wir freuen uns über Beiträge! Siehe CONTRIBUTING.md für Richtlinien.
Lizenz
Apache 2.0 — siehe LICENSE für Details.
Danksagungen
Nerva ist ein gepflegter Fork von fingerprintx, ursprünglich entwickelt von Praetorians Praktikantenklasse von 2022: