Reality versteckt ein VPN hinter einer gewöhnlichen Website. Gehört diese Website jemand anderem, etwa microsoft.com oder dl.google.com, lässt sich der Server leicht erkennen, deshalb werden solche Server 2026 massenhaft blockiert. Self-steal löst das Problem – der Server tarnt sich als Ihre eigene Website mit echtem Zertifikat.
TIP
Der Artikel in Kürze
- Ergebnis – VLESS Reality, das für alle wie Ihre Website aussieht;
- Zeit – etwa 20 Minuten;
- Sie brauchen – einen VPS mit Ubuntu oder Debian und eine eigene Domain;
- Geeignet für – Xray ohne Panel, 3X-UI, Marzban und Remnawave.
Warum Server blockiert werden
| Wann | Was geschah |
|---|---|
| November 2025 | Massenhafte Abbrüche von VLESS Reality auf Port 443 bei Heim-Internetanbietern |
| 17. Februar 2026 | Große Sperrwelle gegen VLESS Reality über TCP im ganzen Land |
| Mai 2026 | Tests neuer Methoden in Sibirien, im Fernen Osten und in Moskau |
| August – September 2026 | Sperren von IP-Adressen und Subnetzen beliebter VPS-Hoster |
Reality selbst ist nicht geknackt. Die Filter der Provider (TSPU) suchen nach indirekten Merkmalen, und das wichtigste davon ist die Tarnung als fremde Website:
- der Name der Website (SNI) wird im Klartext übertragen;
- microsoft.com auf der IP-Adresse eines kleinen Hosters wirkt unnatürlich;
- wer sich mit dem Server verbindet, sieht die echte Microsoft-Website auf einer fremden IP-Adresse.
Was die Xray-Entwickler sagen
Seit 2026 gibt Xray eine Warnung aus, wenn apple.com, icloud.com oder microsoft.com als Ziel gewählt ist, und seit Juli 2026 auch bei Websites in den Zonen .ru, .ir und .cn. Die offizielle Reality-Dokumentation empfiehlt, eine Website aus demselben Netz wie der Server zu nehmen. Am einfachsten erfüllen Sie diese Bedingung, indem Sie die Website direkt auf dem Server betreiben.
So funktioniert Self-steal
| Wer sich verbindet | Was er sieht |
|---|---|
| Ihr Client mit Schlüssel | Eine VPN-Verbindung |
| Provider, Scanner, Browser | Ihre Website mit echtem Zertifikat |
Domain, Zertifikat und IP-Adresse passen zusammen, deshalb sieht der Server aus wie Tausende gewöhnlicher Websites. Xray nimmt Verbindungen auf Port 443 an, und die Website läuft in nginx auf der internen Adresse 127.0.0.1:8443.
WARNING
Self-steal ist keine hundertprozentige Garantie. Im August und September 2026 waren auch solche Server von Subnetzsperren betroffen. Am besten funktioniert das Verfahren zusammen mit einer neutralen Domain, wenigen Nutzern und dem Fingerprint firefox.
Was Sie brauchen
- einen VPS mit Ubuntu 22.04, 24.04 oder Debian 12 – für den Eigenbedarf reicht DE-PROMO, für einen Kanal mit 1 Gbit/s eignet sich DE-RZ9-1;
- eine Domain oder Subdomain, die auf diesen Server zeigt;
- freie Ports 80 und 443.
TIP
Wählen Sie für die Domain einen neutralen Namen, etwa wie für einen Blog oder ein Portfolio, ohne die Wörter vpn, proxy, xray, reality und node. Für einen Server in Deutschland ist eine internationale Zone (.com, .net, .org) oder .de besser – zur Zone .ru gibt Xray eine Warnung aus.
Schritt 1. DNS-Eintrag
Legen Sie bei Ihrem Registrar einen A-Eintrag mit der IP-Adresse des Servers an. Ist die Domain mit Cloudflare verbunden, schalten Sie den Proxy aus (graue Wolke) – Reality funktioniert nicht über ein CDN.
dig +short example.comDer Befehl sollte die IP-Adresse des Servers ausgeben.
Schritt 2. Website und Zertifikat
Installieren Sie nginx und certbot und legen Sie dann eine einfache Seite auf die Website – einen Blog, eine Visitenkarte, alles außer einer leeren Platzhalterseite:
apt update && apt install -y nginx certbot
nano /var/www/html/index.htmlStellen Sie das Zertifikat aus und ersetzen Sie dabei Domain und E-Mail-Adresse durch Ihre eigenen:
certbot certonly --webroot -w /var/www/html -d example.com -m you@example.com --agree-tos --no-eff-email --deploy-hook "systemctl reload nginx"Certbot verlängert das Zertifikat danach selbst und lädt nginx neu.
Schritt 3. nginx einrichten
Öffnen Sie die Datei /etc/nginx/sites-available/default und ersetzen Sie ihren Inhalt durch Folgendes, mit Ihrer eigenen Domain:
server {
listen 80;
listen [::]:80;
server_name example.com;
location /.well-known/acme-challenge/ {
root /var/www/html;
}
location / {
return 301 https://$host$request_uri;
}
}
server {
listen 127.0.0.1:8443 ssl http2;
server_name example.com;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
ssl_protocols TLSv1.2 TLSv1.3;
root /var/www/html;
index index.html;
location / {
try_files $uri $uri/ =404;
}
}nginx -t && systemctl reload nginxWas diese Konfiguration bewirkt
- Port 80 – Verlängerung des Zertifikats und Weiterleitung der Besucher auf HTTPS.
- 127.0.0.1:8443 – die Website selbst. Sie ist nur innerhalb des Servers erreichbar, und Port 443 bleibt für Xray frei.
- Die Warnung
listen ... http2 is deprecatedin neueren nginx-Versionen können Sie ignorieren. Ersetzen Sie die Zeile nicht durchhttp2 on;– nginx in Ubuntu 22.04, 24.04 und Debian 12 kennt diese Direktive nicht und startet dann nicht.
Schritt 4. Xray installieren und Schlüssel erzeugen
bash -c "$(curl -L https://github.com/XTLS/Xray-install/raw/main/install-release.sh)" @ install
xray uuid
xray x25519
openssl rand -hex 8Speichern Sie vier Werte:
| Wert | Woher | Wo benötigt |
|---|---|---|
| UUID | xray uuid | Server und Client |
| Privater Schlüssel | xray x25519, Zeile PrivateKey | Nur Server |
| Öffentlicher Schlüssel | xray x25519, Zeile Password (PublicKey) oder Public key | Nur Client |
| Short ID | openssl rand -hex 8 | Server und Client |
Schritt 5. Xray einrichten
WARNING
Wenn die Datei /usr/local/etc/xray/config.json bereits Ihre Verbindungen enthält, überschreiben Sie sie nicht, sonst verlieren Sie Ihre Nutzer. Ändern Sie nur den Block realitySettings gemäß der Tabelle unten.
Bei einer Neuinstallation öffnen Sie die Datei mit dem Befehl nano /usr/local/etc/xray/config.json und fügen die Konfiguration ein. Ersetzen Sie dabei die Werte in Großbuchstaben.
Xray-Konfiguration für eine Neuinstallation
{
"log": {
"loglevel": "warning"
},
"inbounds": [
{
"listen": "0.0.0.0",
"port": 443,
"protocol": "vless",
"settings": {
"clients": [
{
"id": "UUID",
"flow": "xtls-rprx-vision"
}
],
"decryption": "none"
},
"streamSettings": {
"network": "tcp",
"security": "reality",
"realitySettings": {
"target": "127.0.0.1:8443",
"xver": 0,
"serverNames": ["example.com"],
"privateKey": "PRIVATE_KEY",
"shortIds": ["SHORT_ID"]
}
},
"sniffing": {
"enabled": true,
"destOverride": ["http", "tls", "quic"]
}
}
],
"outbounds": [
{
"protocol": "freedom",
"tag": "direct"
},
{
"protocol": "blackhole",
"tag": "block"
}
]
}Entscheidend sind in dieser Konfiguration drei Felder:
| Feld | Wert | Wozu |
|---|---|---|
target | 127.0.0.1:8443 | Fremde Besucher schicken wir auf Ihre Website. Früher hieß das Feld dest |
xver | 0 | Sonst erhält nginx einen überflüssigen PROXY-protocol-Header, und die Website öffnet sich nicht |
serverNames | Ihre Domain | Muss mit der Domain im Zertifikat übereinstimmen |
Prüfen Sie die Konfiguration und starten Sie Xray neu:
xray run -test -config /usr/local/etc/xray/config.json
systemctl restart xraySchritt 6. Firewall
ufw allow 22/tcp && ufw allow 80/tcp && ufw allow 443/tcp && ufw enableLäuft SSH auf einem anderen Port, geben Sie diesen statt 22 an.
Schritt 7. Prüfung
Öffnen Sie https://example.com im Browser. Erscheint Ihre Website ohne Zertifikatswarnungen, leitet Xray fremde Verbindungen korrekt an nginx weiter.
Schritt 8. Client verbinden
vless://UUID@example.com:443?encryption=none&flow=xtls-rprx-vision&security=reality&sni=example.com&fp=firefox&pbk=PUBLIC_KEY&sid=SHORT_ID&type=tcp#My-serverSetzen Sie Ihre Werte ein und importieren Sie den Link in die App, wie in der Anleitung zum Import gezeigt. Warum im Link fp=firefox steht, erklären wir im Artikel zu 3X-UI.
Self-steal in Panels
Führen Sie zuerst die Schritte 1–3 auf dem Server aus, auf dem Xray läuft. Ändern Sie danach die Verbindung im Panel.
Öffnen Sie die Verbindung VLESS Reality und tragen Sie Folgendes ein:
- Target –
127.0.0.1:8443; - SNI – Ihre Domain;
- Xver –
0.
Die Schlüssel müssen Sie nicht neu erzeugen.
- Setzen Sie in Core Settings im Block
realitySettingsden Werttargetauf127.0.0.1:8443,serverNamesauf Ihre Domain undxverauf0. - Tragen Sie in Host Settings diese Domain im Feld SNI ein.
- Öffnen Sie in Config Profiles das Profil der Node und nehmen Sie in
realitySettingsdieselben drei Änderungen vor. - Ist im Bereich Hosts die SNI überschrieben, tragen Sie dort die neue Domain ein.
Mehr über das Panel lesen Sie im Artikel „Remnawave auf einem VPS installieren“.
INFO
Läuft Xray in Docker ohne network_mode: host, zeigt die Adresse 127.0.0.1 ins Innere des Containers, und nginx ist nicht erreichbar. Die Remnawave-Node läuft im Modus host, daher betrifft sie das nicht.
Umstieg von einer fremden Website
- Erstellen Sie eine Sicherungskopie der Einstellungen mit dem Befehl
cp /usr/local/etc/xray/config.json /usr/local/etc/xray/config.json.bak. - Führen Sie die Schritte 1–3 aus.
- Ändern Sie
target,serverNamesundxvergemäß der Tabelle aus Schritt 5. Stehen in der Konfiguration sowohldestals auchtarget, behalten Sie nur eines der beiden Felder. - Prüfen Sie die Konfiguration und starten Sie Xray neu.
UUID, Schlüssel und Short ID bleiben gleich. Ihre Nutzer müssen nur das Abonnement oder den Link aktualisieren – darin ändert sich sni.
WARNING
Wurde Reality über die App AmneziaVPN installiert, schreibt die App die Servereinstellungen selbst, und manuelle Änderungen können verloren gehen. Für Self-steal ist es zuverlässiger, Xray separat zu installieren.
Wenn etwas nicht funktioniert
| Symptom | Was Sie prüfen sollten |
|---|---|
| Die Website öffnet sich nicht | A-Eintrag, Ausgabe von nginx -t, ob nginx auf Port 8443 lauscht (ss -tlnp | grep 8443) |
| Xray startet nicht | Protokoll journalctl -u xray -n 50, JSON-Syntax, ob Port 443 bereits belegt ist |
| Die Website öffnet sich, das VPN nicht | Ob UUID, sni, pbk und sid mit dem Server übereinstimmen, ob der Client aktuell ist |
| Das Zertifikat wird nicht verlängert | Ob Port 80 offen ist, Ergebnis von certbot renew --dry-run |
| Es funktioniert bei einem Provider nicht | Anderer Fingerprint im Client, Verbindung aus einem anderen Netz, ob die IP gesperrt ist |
Tipps
- Weniger Nutzer – ein unauffälligeres Verkehrsprofil.
- Eine echte Seite – wirkt natürlicher als ein leerer Platzhalter.
- Aktuelle Versionen – Xray aktualisieren Sie mit demselben Installationsbefehl, und halten Sie auch die Clients aktuell.
- Eine Ersatzverbindung – zum Beispiel VLESS + TLS + XHTTP, falls die Hauptverbindung nicht mehr funktioniert.