sing-box VLESS Reality einrichten 2026: Die Config-Felder, die die meisten Anleitungen immer noch falsch machen

Eine aktuelle sing-box VLESS + Reality Konfiguration, geprüft gegen die offizielle Dokumentation für 1.13. Inklusive der Inbound-Felder, die in 1.11 als veraltet markiert wurden und trotzdem in fast jedes Tutorial kopiert werden.

Von Eric GerardGründer · VPNSmith - Spezialist für selbstgehostete VPNs & DSGVO-VPS

Aktualisiert 7 Min. Lesezeit7 min

Affiliate-Links: ggf. Provision, ohne Mehrkosten für Sie. Methode

Meine REALITY-Config erstellenZur Anleitung

Plain WireGuard packet blocked by DPI, VLESS + REALITY packet passing as HTTPS to microsoft.comDPIWG UDP 51820plain WireGuardsignature matchflow droppedTCP 443 TLS 1.3SNI microsoft.comYOUR VPSXray REALITYlooks like HTTPSprobe gets the real microsoft cert
fig. 01 / tunneling-obfuscation

Suchen Sie nach einer sing-box Reality Anleitung, und Sie finden jede Menge Konfigurationsdateien, die 2024 richtig waren. Sie werden weiterhin eingelesen, und genau das ist das Problem: nichts warnt Sie davor, dass Sie gerade auf Feldern aufgebaut haben, die das Projekt als veraltet markiert hat. Dieser Text geht ein VLESS Reality Setup Feld für Feld gegen die aktuelle Dokumentation durch und zeigt, welche Teile sich still und leise verschoben haben.

Plain WireGuard packet blocked by DPI, VLESS + REALITY packet passing as HTTPS to microsoft.comDPIWG UDP 51820plain WireGuardsignature matchflow droppedTCP 443 TLS 1.3SNI microsoft.comYOUR VPSXray REALITYlooks like HTTPSprobe gets the real microsoft cert
fig. 01 / tunneling-obfuscation

Zur Einordnung: geprüft wurde gegen sing-box 1.13.15, veröffentlicht am 29. Juli 2026.

Noch kein Server? Die Einrichtung unten braucht einen VPS mit öffentlicher IPv4, Root-Zugang und freiem Port 443, außerhalb des Netzes, das Sie filtert: ein Contabo Cloud VPS 4 (Affiliate-Link) reicht ab 5,50 € pro Monat bei 24 Monaten Laufzeit.

Bankkarte abgelehnt? Ultahost nimmt auch Bitcoin und andere Kryptowährungen, Alipay, WeChat Pay und Qiwi an (Zahlungsseite, gelesen am 25. Oktober 2026). Affiliate-Link; prüfe vor der Bestellung die Bedingungen für dein Land.

Sie möchten das JSON nicht von Hand zusammensetzen? Unser kostenloser VLESS-REALITY-Konfigurationsgenerator erzeugt X25519-Schlüsselpaar, UUID und Short-ID in Ihrem Browser und schreibt die passenden Server- und Client-Konfigurationen für sing-box und Xray-core, bereit zum Einfügen in die Schritte unten.

REALITY braucht einen Server, den du kontrollierst

Mehr RAM für denselben Zweck? Contabo-Cloud-VPS-Angebot ansehen

Affiliate-Link: Wir erhalten eventuell eine Provision, ohne Mehrkosten für dich. Der Generator bleibt kostenlos und hängt nicht davon ab.

HostPapa VPS Lite ansehen, 2,95 $/Monat bei 3 Jahren

Läuft komplett in deinem Browser: Schlüssel, UUID und Konfigurationen werden lokal erzeugt und nirgendwohin gesendet.

Die öffentliche IP deines VPS (oder eine Domain, die darauf zeigt). Wird in der Client-Konfiguration und im Link verwendet.

443 ist üblich: REALITY imitiert HTTPS.

Eine fremde Website mit TLS 1.3 und HTTP/2, erreichbar für deine Clients. Siehe Checkliste unter dem Tool.

uTLS-Fingerprint (Client)

Der TLS-Fingerprint, den der Client nachahmt. chrome ist die übliche Wahl.

X25519-Schlüsselpaar

Der private Schlüssel gehört nur auf den Server. Der öffentliche geht an jeden Client.

Hexadezimal, gerade Länge, höchstens 16 Zeichen.

  • Die Schlüssel fehlen oder sind ungültig (32 Byte, base64url, 43 Zeichen). Erzeuge ein Paar oder füge deins ein.

vless://-Link zum Teilen

vless://@203.0.113.10:443?encryption=none&flow=xtls-rprx-vision&security=reality&sni=www.example.com&fp=chrome&pbk=&sid=&type=tcp&headerType=none#my-reality

In v2rayN, v2rayNG, Hiddify, Streisand oder Shadowrocket importieren oder den QR-Code scannen.

config.json
{
  "log": {
    "loglevel": "warning"
  },
  "inbounds": [
    {
      "listen": "0.0.0.0",
      "port": 443,
      "protocol": "vless",
      "settings": {
        "clients": [
          {
            "id": "",
            "flow": "xtls-rprx-vision",
            "email": "my-reality"
          }
        ],
        "decryption": "none"
      },
      "streamSettings": {
        "network": "tcp",
        "security": "reality",
        "realitySettings": {
          "show": false,
          "target": "www.example.com:443",
          "xver": 0,
          "serverNames": [
            "www.example.com"
          ],
          "privateKey": "",
          "shortIds": [
            ""
          ]
        }
      },
      "sniffing": {
        "enabled": true,
        "destOverride": [
          "http",
          "tls",
          "quic"
        ],
        "routeOnly": true
      }
    }
  ],
  "outbounds": [
    {
      "protocol": "freedom",
      "tag": "direct"
    },
    {
      "protocol": "blackhole",
      "tag": "block"
    }
  ]
}
client-xray.json
{
  "log": {
    "loglevel": "warning"
  },
  "inbounds": [
    {
      "listen": "127.0.0.1",
      "port": 10808,
      "protocol": "socks",
      "settings": {
        "udp": true
      }
    },
    {
      "listen": "127.0.0.1",
      "port": 10809,
      "protocol": "http"
    }
  ],
  "outbounds": [
    {
      "protocol": "vless",
      "tag": "proxy",
      "settings": {
        "vnext": [
          {
            "address": "203.0.113.10",
            "port": 443,
            "users": [
              {
                "id": "",
                "flow": "xtls-rprx-vision",
                "encryption": "none"
              }
            ]
          }
        ]
      },
      "streamSettings": {
        "network": "tcp",
        "security": "reality",
        "realitySettings": {
          "serverName": "www.example.com",
          "fingerprint": "chrome",
          "publicKey": "",
          "shortId": "",
          "spiderX": "/"
        }
      }
    },
    {
      "protocol": "freedom",
      "tag": "direct"
    }
  ]
}
install.sh
# Xray-core mit dem offiziellen Skript installieren (inklusive systemd-Dienst)
bash -c "$(curl -L https://github.com/XTLS/Xray-install/raw/main/install-release.sh)" @ install

# Optional: prüfen, ob der öffentliche Schlüssel zum privaten passt
xray x25519 -i ""

# Prüfen, ob das Ziel mit TLS 1.3 und HTTP/2 antwortet
xray tls ping www.example.com

# Port öffnen
sudo ufw allow 443/tcp

# Server-Konfiguration einfügen, testen, dann den Dienst starten
sudo nano /usr/local/etc/xray/config.json
xray run -test -c /usr/local/etc/xray/config.json
sudo systemctl restart xray && sudo systemctl enable xray

# Log verfolgen, während sich der erste Client verbindet
sudo journalctl -u xray -f

REALITY braucht einen Server, den du kontrollierst

Ein REALITY-Server ist ein VPS mit öffentlicher IP und freiem Port 443, mehr nicht. Der Einstiegs-VPS von Contabo bietet eine öffentliche IPv4, Root-Zugang und viel Traffic, und du wählst das Rechenzentrum, das deinen Nutzern am nächsten liegt.

Zweite Option, ein US-Anbieter mit 30 Tagen Geld-zurück-Garantie: Ultahost VPS Basic, 5,52 $/Monat bei 24 Monaten, 1 CPU, 1 GB DDR5 und dedizierte IPv4 (gelesen am 21. Oktober 2026), genug für einen Xray-Server. Ultahost nimmt außerdem Bitcoin und andere Kryptowährungen, Alipay, WeChat Pay und Qiwi an (Zahlungsseite, gelesen am 25. Oktober 2026), hilfreich, wenn deine Bankkarte abgelehnt wird; prüfe vor der Bestellung die Bedingungen für dein Land. Ultahost-VPS ansehen

Affiliate-Link: Wir erhalten eventuell eine Provision, ohne Mehrkosten für dich. Der Generator bleibt kostenlos und hängt nicht davon ab.

Contabo-VPS ansehen

Lieber Dateien, die schon durchgetestet sind?

Das VLESS + REALITY Config Pack enthält einen kommentierten Xray-Server auf Port 443, einen Desktop-Client (lokaler SOCKS5- und HTTP-Proxy), eine vless://-Vorlage für v2rayN, v2rayNG und Shadowrocket sowie zwei Dinge, die dieser Generator nicht schreibt: eine Servervariante mit Traffic-Zählern pro Gerät und eine README mit einer Checkliste zur Fehlersuche in 10 Punkten. Jede JSON-Datei besteht xray run -test mit Xray-core 26.10.31. Nur Xray-core, keine sing-box-Dateien.

VLESS + REALITY Config Pack ansehen (4,90 EUR)

Unser eigenes Produkt, einmalige Zahlung, ZIP mit Textdateien auf Englisch (Seite auf Englisch). Vorlagen für deinen eigenen Server, kein VPN-Abo, und kein Versprechen, dass REALITY ein bestimmtes DPI weiter passiert. Die oben erzeugten Dateien funktionieren auch ohne.

Noch keinen Server gewählt? Unser Ratgeber Bester VPS für V2Ray und Xray vergleicht Anbieter nach dem, was über die Lebensdauer eines Servers gegen Zensur entscheidet: Standort des Rechenzentrums, IP-Reputation, inklusiver Traffic und wie schnell Sie eine gesperrte IP ersetzen können.

Was Reality tatsächlich verändert

Klassische TLS-basierte Proxys haben eine strukturelle Schwäche: das Zertifikat gehört Ihnen. Wer den Handshake untersucht, sieht eine Domain und ein Zertifikat, die zu keiner echten, populären Website passen, und dieser Widerspruch ist selbst schon das Signal.

Der Ansatz von Reality besteht darin, sich den Handshake einer echten fremden Seite zu leihen. Ihr Server wird so konfiguriert, dass er auf einen echten externen Host zeigt, und Datenverkehr, der die Authentifizierung nicht besteht, wird dorthin durchgereicht. Für einen Beobachter sieht die Verbindung aus wie eine Verbindung zu dieser Seite, denn zum Teil ist sie das auch.

Deshalb hat die Konfiguration einen handshake-Block. Er ist keine Zierde, und seine Wahl wiegt schwerer als jeder andere Wert, den Sie setzen werden.

Die drei erforderlichen Reality-Felder auf dem Server

Innerhalb des tls-Objekts verlangt der reality-Block laut Dokumentation genau drei Dinge:

  • handshake (Objekt), enthält server und server_port, also die externe Seite, von der sich Ihr Server borgt
  • private_key (String), der laut Dokumentation mit sing-box generate reality-keypair erzeugt wird
  • short_id (String), beschrieben als hexadezimale Zeichenkette mit null bis acht Stellen

Dazu kommt ein enabled-Boolean sowie ein optionales max_time_difference, das die tolerierte Zeitabweichung zwischen beiden Enden festlegt. Die Dokumentation merkt an, dass die Prüfung deaktiviert ist, wenn das Feld leer bleibt. Wenn Sie es setzen, denken Sie daran, dass Sie damit darauf angewiesen sind, dass beide Maschinen die Uhrzeit korrekt halten.

Die Schlüssel erzeugen

Zwei Werte müssen erzeugt werden, bevor Sie irgendetwas schreiben:

sing-box generate reality-keypair
sing-box generate uuid

Das Keypair gibt einen Private Key und einen Public Key aus. Der Private Key bleibt auf dem Server. Der Public Key geht an jeden Client. Die UUID ist die VLESS-Benutzeridentität.

Bewahren Sie das Paar bei der Erzeugung gemeinsam an einem sicheren Ort auf. Ist nur der Private Key erhalten, etwa in einer Serverkonfiguration, ist der Public Key nicht verloren: Er lässt sich aus dem privaten ableiten, mit xray x25519 -i "<Private Key>" oder lokal in unserem VLESS-REALITY-Konfigurationsgenerator. Eine Neuerzeugung des Paares entwertet dagegen jeden Client, den Sie bereits ausgegeben haben.

Die meisten REALITY-Setups scheitern beim Übertragen der Werte. Unser kostenloses VLESS REALITY Cheat Sheet (PDF, 3 Seiten auf Englisch, direkter Download, ohne Anmeldung) stellt die Namen jedes Felds in Xray, sing-box und im vless://-Link nebeneinander, dazu die Serverprüfungen und die üblichen Fehlerursachen. Cheat Sheet herunterladen.

Blaue Ethernet-Kabel stecken in den nummerierten Ports eines Netzwerk-Switches, an der Frontblende leuchten grüne Status-LEDs.
Blaue Ethernet-Kabel stecken in den nummerierten Ports eines Netzwerk-Switches, an der Frontblende leuchten grüne Status-LEDs.

Der Serverteil unten läuft auf jedem VPS mit öffentlicher IPv4-Adresse, Root-Zugang und freiem Port 443 für den Inbound. Falls Sie noch keinen haben:

Der Server-Inbound

Ein VLESS-Inbound benötigt type, tag, die Listen-Felder und ein users-Array. Jeder Benutzereintrag nimmt eine uuid, optional einen name und optional einen flow. Die Dokumentation nennt genau einen verfügbaren Flow-Wert: xtls-rprx-vision.

{
  "type": "vless",
  "tag": "vless-in",
  "listen": "::",
  "listen_port": 443,
  "users": [
    {
      "name": "me",
      "uuid": "PASTE-YOUR-GENERATED-UUID",
      "flow": "xtls-rprx-vision"
    }
  ],
  "tls": {
    "enabled": true,
    "server_name": "your-handshake-host.example",
    "reality": {
      "enabled": true,
      "handshake": {
        "server": "your-handshake-host.example",
        "server_port": 443
      },
      "private_key": "PASTE-YOUR-PRIVATE-KEY",
      "short_id": "0123abcd"
    }
  }
}

Beachten Sie server_name und den server im Handshake. Das sind getrennte Felder, die normalerweise denselben Host enthalten, und eine Abweichung zwischen ihnen ist eine häufige Ursache für ein Setup, das sauber baut und dann beim Verbindungsaufbau scheitert.

Der Teil, den die meisten Anleitungen falsch machen

Hier liegt der Unterschied zwischen einer Konfiguration von 2024 und einer aktuellen. Diese drei Inbound-Felder wurden in Version 1.11.0 als veraltet markiert:

  • sniff
  • sniff_timeout
  • domain_strategy

Sie sind aus dem Inbound herausgewandert und zu Route-Rule-Actions geworden. Der Migrationsleitfaden nennt die direkten Entsprechungen:

{
  "route": {
    "rules": [
      { "inbound": "vless-in", "action": "sniff", "timeout": "1s" },
      { "inbound": "vless-in", "action": "resolve", "strategy": "prefer_ipv4" }
    ]
  }
}

Aus "sniff": true wird also eine action vom Typ sniff, aus sniff_timeout wird das timeout dieser Action, und aus domain_strategy wird eine action vom Typ resolve mit einer strategy.

Um bei den Konsequenzen genau zu bleiben: die Dokumentation markiert diese Felder als veraltet und kündigt kein Entfernungsdatum an. Heute geht dadurch nichts kaputt. Aber eine Konfiguration, die sie weiterhin mitschleppt, ist gegen eine Schnittstelle geschrieben, von der sich das Projekt abgewandt hat, und das ist es wert zu wissen, wenn Sie sich für ein Tutorial entscheiden.

Zwei verwandte Felder, sniff_override_destination und udp_disable_domain_unmapping, sind in der aktuellen Dokumentation der Listen-Felder ebenfalls als veraltet markiert.

Die Client-Seite

Der Client braucht weniger als der Server. Reality verlangt clientseitig:

  • public_key, das Gegenstück zum privaten Schlüssel des Servers
  • short_id, die zu einem Wert passen muss, den der Server akzeptiert

Daneben steht das utls-Objekt mit enabled und fingerprint. Dokumentierte akzeptierte Fingerprint-Werte sind chrome, firefox, edge, safari, 360, qq, ios, android, random und randomized. Die Dokumentation gibt an, dass der Chrome-Fingerprint verwendet wird, wenn das Feld leer ist.

Ein Punkt der Ehrlichkeit an dieser Stelle, weil Anleitungen gern das Gegenteil behaupten: die sing-box Dokumentation führt utls als eigenständige TLS-Option und sagt nicht, dass Reality es voraussetzt. Die meisten Client-Konfigurationen aktivieren es trotzdem.

Die Wahl des Handshake-Hosts

Kein Konfigurationswert beeinflusst Ihr Ergebnis stärker, und keine Anleitung kann ihn für Sie auswählen, weil die richtige Antwort davon abhängt, wo Ihr Server steht und wo Ihre Clients sind.

Die Eigenschaften, auf die es ankommt:

  • Es sollte ein Host sein, der auf dem angesteuerten Port tatsächlich TLS 1.3 unterstützt
  • Der Datenverkehr sollte vom Netzwerkstandort Ihres Servers aus plausibel wirken
  • Es sollte keine Seite sein, die im Land, aus dem Sie sich verbinden, selbst blockiert ist, denn das würde den Zweck vollständig zunichtemachen
  • Es sollte keine Seite sein, die Sie kontrollieren, denn der Sinn liegt darin, dass es der echte Datenverkehr von jemand anderem ist

Ein häufig wiederholter Ratschlag lautet, etwas Großes und Generisches zu wählen. Seien Sie mit dieser Begründung vorsichtig: ein Host, den jedes Tutorial empfiehlt, ist per Definition ein Host, der in jeder Konfiguration auftaucht, und Beliebtheit innerhalb der Proxy-Community ist nicht dasselbe wie Unauffälligkeit.

Bevor Sie es für funktionierend erklären

Zwei Prüfungen, die sich lohnen und über "der Client hat sich verbunden" hinausgehen.

Prüfen Sie, ob der Fallback sich richtig verhält. Richten Sie einen ganz normalen Browser auf Adresse und Port Ihres Servers. Zu sehen sein sollte die Handshake-Seite, kein Fehler und kein Timeout. Wenn etwas anderes erscheint, macht der Passthrough seinen Job nicht, und das Setup fällt stärker auf als ein gewöhnlicher Proxy.

Prüfen Sie beide Uhren. Wenn Sie max_time_difference gesetzt haben, erzeugt eine Abweichung auf einer der beiden Maschinen Fehler, die wie Authentifizierungsprobleme aussehen und Sie dazu bringen, an Schlüsseln herumzueditieren, die nie falsch waren.

Wenn Sie sich noch zwischen den Engines entscheiden, statt eine zu konfigurieren: die Abwägungen stehen in unserem Vergleich sing-box gegen Xray.

Die Kurzfassung

Drei erforderliche Reality-Felder auf dem Server: handshake, private_key, short_id. Zwei auf dem Client: public_key, short_id. Die Schlüssel kommen von sing-box generate reality-keypair. Und wenn die Anleitung, die Sie gerade lesen, sniff oder domain_strategy in den Inbound setzt, stammt sie aus der Zeit vor Version 1.11, und die aktuelle Entsprechung ist eine Route-Rule-Action.

Feldnamen, Anforderungen und Deprecations in diesem Artikel stammen aus der offiziellen sing-box Dokumentation und dem Migrationsleitfaden, geprüft gegen Release 1.13.15 am 30. Juli 2026. Konfigurationsschnittstellen ändern sich zwischen Versionen, prüfen Sie daher gegen die Dokumentation des Releases, das Sie einsetzen. Das Umgehen von Zensur ist in manchen Rechtsordnungen eingeschränkt oder rechtswidrig; prüfen Sie, was bei Ihnen gilt.

Affiliate-Link

Preis geprüft am 17.10.2026, Laufzeit 24 Monate

Häufig gestellte Fragen

Welche sing-box Felder brauche ich für einen VLESS Reality Inbound wirklich?
Der VLESS Inbound selbst benötigt type, tag, eine Listen-Adresse mit Port und ein users-Array, in dem jeder Eintrag eine uuid trägt. Der Reality-Teil liegt im tls-Objekt und verlangt serverseitig drei Dinge: ein handshake-Objekt, das mit server und server_port auf eine echte externe Seite zeigt, einen von sing-box generierten private_key und eine short_id. Alles Weitere im Inbound ist optional.
Womit werden der Reality Private Key und Public Key erzeugt?
Mit dem Befehl sing-box generate reality-keypair. Er gibt ein zusammengehöriges Paar aus. Der private_key bleibt in der Serverkonfiguration, der public_key kommt in die Client-Konfiguration. Sie sind nicht austauschbar, und ein Client mit dem falschen public_key scheitert am Handshake, statt auf einfaches TLS zurückzufallen.
Darf die short_id leer sein?
Die Dokumentation beschreibt short_id als hexadezimale Zeichenkette mit null bis acht Stellen, ein leerer Wert liegt also innerhalb der Spezifikation. Der Wert auf dem Client muss zu einem Wert passen, den der Server akzeptiert. Genau das wird übersehen, wenn jemand eine Serverkonfiguration kopiert und nur die UUID anpasst.
Warum stehen sniff und domain_strategy in älteren sing-box Tutorials im Inbound?
Weil das vor Version 1.11.0 korrekt war. Diese Felder wurden damals zusammen mit sniff_timeout als veraltet markiert und in Route-Rule-Actions verschoben: action sniff mit einem timeout-Parameter und action resolve mit einem strategy-Parameter. Auf die alte Art geschriebene Konfigurationen werden weiterhin eingelesen, aber Sie folgen damit einem veralteten Pfad. Das sollte man wissen, bevor man darauf aufbaut.
Brauche ich utls auf dem Client?
Die sing-box Dokumentation führt utls als eigene Option im TLS-Block mit einem enabled-Flag und einem fingerprint, und sie sagt nicht, dass Reality es voraussetzt. Viele Client-Konfigurationen setzen es trotzdem. Wenn Sie fingerprint leer lassen, wird laut Dokumentation der Chrome-Fingerprint verwendet.