Xray
Xray - Xray + VLESS + REALITY + XTLS-Vision auf Debian installieren
Beschreibung
- Lizenz
Dieses Projekt unterliegt der MIT-Lizenz
Zensur-Sicherheit
- Warum diese Konfiguration DPI-unabhängig ist
Anti-Zensur-Stack von Xray-core
| Ebene | Technologie | Zweck |
|---|---|---|
| Protokoll | VLESS | Leichtgewichtig, kein erkennbares Verschlüsselungsmuster (im Gegensatz zu VMess) |
| TLS | REALITY | Verwendet den TLS-Fingerabdruck einer echten Website – keine Zertifikate erforderlich, immun gegen aktive Erkundungsversuche |
| Ablauf | XTLS-Vision | Beseitigt Fingerabdrücke durch doppelte Verschlüsselung und fügt zufällige Auffülldaten zu den internen Handshakes hinzu |
| Fingerabdruck | uTLS (Chrome) | Der Client ahmt das „TLS ClientHello“ eines echten Chrome-Browsers nach |
| Transport | TCP | Am natürlichsten, vermeidet den Overhead und die Muster von WebSocket/gRPC |
| DNS | DNS.SB + Mullvad | DoH-Anbieter außerhalb der „Five Eyes“-Allianz, die keine Protokolle führen; keine Speicherung personenbezogener Daten |
- Funktionsweise von REALITY
- Wenn eine Zensurinstanz Ihren Server abfragt, leitet Xray die Anfrage an die echte Tarn-Website weiter (z. B.
www.microsoft.com). - Die Zensurinstanz erhält eine legitime Antwort von Microsoft – die von einem echten Besuch nicht zu unterscheiden ist.
Installationsprogramm
Automatisiertes Installationsprogramm für Xray, VLESS + REALITY + XTLS-Vision
- Interaktive Einrichtung
- SSH-Absicherung
- Firewall-Konfiguration
- BBR-Optimierung
- Datenschutzorientierte Standardeinstellungen
Funktion
- Was das Skript tut
Beim Start stellt das Skript zwei vorbereitende Fragen, bevor es Änderungen vornimmt
| # | Frage | Beschreibung |
|---|---|---|
| 1 | Sicherheitsprüfung | Es wird gefragt, ob Sie sich in einer sicheren Umgebung befinden (keine gemeinsam genutzten Bildschirme, Kameras oder Umstehende). Dies bestimmt, ob die Anmeldedaten während der Einrichtung angezeigt oder vollständig ausgeblendet werden. |
| 2 | Überschreibbestätigung | Warnt davor, dass vorhandene Xray-Konfigurationen, Firewall-Regeln und sysctl-Einstellungen überschrieben werden (Firewall-Regeln werden zuvor gesichert), und fordert Sie zur Bestätigung auf. |
Einrichtung
| # | Aufgabe | Beschreibung |
|---|---|---|
| 1 | Distribution und Init-System erkennen, Pakete aktualisieren und Abhängigkeiten installieren | |
| 2 | Installieren Sie die neueste Version von Xray-core (offizielles Skript für systemd, manuelle Installation unter OpenRC) | |
| 3 | Wählen Sie einen benutzerdefinierten SSH-Port aus (OpenSSH oder Dropbear werden automatisch erkannt) | |
| 4 | Wählen Sie einen benutzerdefinierten Xray-Eingangsport aus | |
| 5 | Primären und sekundären DNS-Anbieter auswählen (DoH) | |
| 6 | Wählen Sie Protokollierungseinstellungen (standardmäßig deaktiviert) | |
| 7 | Wählen Sie die Einstellung BitTorrent-Blockierung (standardmäßig zugelassen) | |
| 8 | UUID, x25519-Schlüsselpaar und Kurz-IDs generieren | |
| 9 | Wählen Sie eine Tarnseite (mit TLS 1.3-Verifizierung) | |
| 10 | Speichere die Serverkonfiguration unter /usr/local/etc/xray/config.json. |
|
| 11 | iptables-Firewall konfigurieren (Sicherung bestehender Regeln, atomisches Schreiben, SSH-Brute-Force-Schutz) | |
| 12 | Wöchentliche Protokollrotation einrichten (wird übersprungen, wenn die Protokollierung deaktiviert ist) | |
| 13 | BBR-Überlastungskontrolle und TCP-Optimierungen aktivieren | |
| 14 | Xray-Service starten | |
| 15 | Interaktive Zusammenfassung mit Anzeige der Anmeldedaten und Speicheroptionen |
Sicherer Modus vs. abgesicherter Modus
| Verhalten | Sicher (Antwort: Ja) | Sicher (mit „N“ oder „Enter“ bestätigt) |
|---|---|---|
| Schritt 6: Anmeldedaten im Terminal | Abgebildet | Versteckt |
| Anmeldedaten anzeigen? | Bei Abfrage lautet die Standardantwort Y | Automatisch übersprungen |
| VLESS-Freigabelink anzeigen? | Bei Abfrage lautet die Standardantwort Y | Automatisch übersprungen |
| QR-Code anzeigen? | Bei Abfrage lautet die Standardantwort Y | Automatisch übersprungen |
| In Datei speichern? | Abgefragt, Standardwert N | Bei Abfrage: Standard Y (empfohlen) |
Im abgesicherten Modus empfiehlt es sich, die Daten in der Datei
/root/xray-credentials.txtzu speichern, um Ihre Anmeldedaten später aus einer privaten Sitzung abrufen zu können.
Protokollierung
Das Skript fragt ab, ob der Xray-Zugriff und die Fehlerprotokolle aktiviert werden sollen. Standard: deaktiviert (N).
| Auswahl | Röntgenprotokoll-Pegel | Protokolldateien | Logrotate | Datenschutz |
|---|---|---|---|---|
| Deaktiviert (Standard) | none
|
Keine erstellt | Übersprungen | Es wurden keine Verbindungsmetadaten gespeichert |
| Aktiviert | warning
|
/var/log/xray/access.log, error.log
|
Wöchentlich, 12 Wochen Aufbewahrungsfrist | Zeitstempel, IP-Adressen und Datenverkehrsvolumen wurden erfasst |
- Protokollierung wieder aktivieren
/usr/local/etc/xray/config.json
"log": {
"loglevel": "warning",
"access": "/var/log/xray/access.log",
"error": "/var/log/xray/error.log"
}
Erstellen Sie anschließend das Protokollverzeichnis und starten Sie den Dienst neu:
mkdir -p /var/log/xray && <Befehl zum Neustart>
BitTorrent-Sperrung
Das Skript fragt ab, ob der Datenverkehr des BitTorrent-Protokolls blockiert werden soll
- Standard: zugelassen (N)
Wenn Sie Torrents über einen Proxy ausführen, kann dies dazu führen, dass die IP-Adresse Ihres VPS vom Hosting-Anbieter markiert oder gesperrt wird. Torrent-Datenverkehr erzeugt zudem Muster mit hohem Datenvolumen, die für Zensurbehörden leicht zu erkennen sind. Wenn Sie diesen Proxy ausschließlich zum Surfen im Internet nutzen, wird empfohlen, BitTorrent zu blockieren.
Wenn diese Option aktiviert ist, fügt Xray eine Routing-Regel hinzu, die alle Verbindungen über das BitTorrent-Protokoll blockiert
{
"type": "field",
"protocol": ["bittorrent"],
"outboundTag": "block"
}
Um diese Einstellung später zu ändern, fügen Sie diese Regel zum Array routing.rules in der Datei /usr/local/etc/xray/config.json hinzu oder entfernen Sie sie daraus und starten Sie Xray neu.
Installation
Auf systemd-basierten Distributionen wird Xray über das offizielle Installationsskript installiert
- Auf einem neu installierten VPS
- Git installieren
apt install git
- Pepository clonen
git clone https://github.com/0xevn/xray-reality-setup.git
cd xray-reality-setup
- Set-up starten
Verwenden Sie zunächst „su“, „doas“ oder „sudo“, um eine Root-Shell zu erhalten
chmod +x xray-setup.sh
sh xray-setup.sh
Das Skript beginnt mit
#!/bin/shund installiert automatischbash, falls diese fehlt (z. B. unter Alpine), und führt sich anschließend erneut unter bash aus. Bash ist für Arrays, den Abgleich mit regulären Ausdrücken und andere Funktionen erforderlich, die im gesamten Skript verwendet werden.
DNS-Server
Bei der Einrichtung wählen Sie aus dieser Liste einen primären und einen sekundären DNS-over-HTTPS-Anbieter aus:
| # | Anbieter | Gerichtsbarkeit | Protokollierung | DoH URL |
|---|---|---|---|---|
| 1 | DNS.SB | Deutschland | Keine Protokollierung | doh.dns.sb/dns-query
|
| 2 | Maulwurf DNS | Schweden | Keine Protokolle, geprüft | dns.mullvad.net/dns-query
|
| 3 | Quad9 | Schweiz | Keine IP-Protokollierung, Blockierung von Bedrohungen | dns.quad9.net/dns-query
|
| 4 | Quad9 Ungefiltert | Schweiz | Keine IP-Protokollierung, keine Filterung | dns11.quad9.net/dns-query
|
| 5 | Cloudflare | USA | Protokolle vor 24 Stunden gelöscht, von KPMG geprüft | 1.1.1.1/dns-query
|
| 6 | AdGuard DNS | Zypern | Aggregierte anonyme Statistiken, Werbeblocker | dns.adguard-dns.com/dns-query
|
- Standardeinstellungen
DNS.SB (primär) + Mullvad (sekundär)
Ein localhost-Fallback wird immer angehängt.
Client-Konfiguration
Option A: QR-Code (am schnellsten auf Mobilgeräten)
Wählen Sie während der Einrichtung (im sicheren Modus) die Option „QR-Code anzeigen“ und scannen Sie diesen direkt mit der Client-App auf Ihrem Smartphone. Alle Verbindungsdaten sind im QR-Code enthalten.
Mit qrencode kann später ein neuer QR-Code erstellt werden
qrencode -t ANSIUTF8 'vless://UUID@IP:PORT?type=tcp&security=reality&...'
Oder falls Sie die Anmeldedaten in einer Datei gespeichert haben
qrencode -t ANSIUTF8 "$(grep -A1 'VLESS Share' /root/xray-credentials.txt | tail -1)"
Option B: Link teilen
Das Einrichtungsskript generiert einen vless://-Link. Fügen Sie diesen in einen beliebigen kompatiblen Client ein:
| Plattform | Empfohlene App |
|---|---|
| Android | V2rayNG, v2rayNG, NekoBox, Hiddify |
| iOS | Streisand, V2Box, FoXray |
| Windows | v2rayN, Hiddify, NekoRay |
| macOS | V2Box, FoXray, NekoRay |
| Linux | NekoRay, NekoRay, v2rayA, Hiddify |
Option C: Manuelle Client-Konfiguration
Verwenden Sie diese Vorlage in Ihrem Client und ersetzen Sie dabei alle <...>-Werte durch die Ausgabe des Setup-Skripts
{
"log": {
"loglevel": "warning"
},
"dns": {
"servers": [
{
"address": "<nowiki>https://doh.dns.sb/dns-query</nowiki>",
"domains": ["geosite:geolocation-!cn"]
},
"localhost"
],
"queryStrategy": "UseIP"
},
"routing": {
"domainStrategy": "IPIfNonMatch",
"rules": [
{
"type": "field",
"domain": ["geosite:category-ads-all"],
"outboundTag": "block"
},
{
"type": "field",
"ip": ["geoip:private"],
"outboundTag": "direct"
}
]
},
"inbounds": [
{
"tag": "socks-in",
"listen": "127.0.0.1",
"port": 10808,
"protocol": "socks",
"settings": { "udp": true }
},
{
"tag": "http-in",
"listen": "127.0.0.1",
"port": 10809,
"protocol": "http"
}
],
"outbounds": [
{
"tag": "proxy",
"protocol": "vless",
"settings": {
"vnext": [
{
"address": "<SERVER_IP>",
"port": <XRAY_PORT>,
"users": [
{
"id": "<UUID>",
"encryption": "none",
"flow": "xtls-rprx-vision"
}
]
}
]
},
"streamSettings": {
"network": "tcp",
"security": "reality",
"realitySettings": {
"fingerprint": "chrome",
"serverName": "<DEST_DOMAIN>",
"publicKey": "<PUBLIC_KEY>",
"shortId": "<SHORT_ID>",
"spiderX": "/"
}
}
},
{ "tag": "direct", "protocol": "freedom" },
{ "tag": "block", "protocol": "blackhole" }
]
}
- Kundenspezifische Einstellungen
- Fingerabdruck:
chrome(recommended),firefox,safari,random - spiderX:
/or any path — used for web crawling differentiation per client
Verwaltung
Benutzer hinzufügen
Jeder Benutzer benötigt eine eindeutige UUID
xray uuid
Fügen Sie dem Array clients in der Datei /usr/local/etc/xray/config.json Folgendes hinzu:
{
"id": "NEW-UUID-HERE",
"email": "user2@xray",
"flow": "xtls-rprx-vision"
}
Starten Sie Xray anschließend mit dem für Ihr Init-System vorgesehenen Befehl neu (siehe „Verwaltungsbefehle“ weiter unten)
Befehle
Die Einrichtungszusammenfassung gibt Befehle aus, die auf das Init-System zugeschnitten sind
- Übersicht
| Aufgabe | systemd (Debian/Ubuntu) |
|---|---|
| Xray status | systemctl status xray
|
| Xray neu starten | systemctl restart xray
|
| Live-Protokolle | journalctl -u xray -f
|
| Konfiguration bearbeiten | nano /usr/local/etc/xray/config.json
|
| Konfiguration überprüfen | xray run -test -c /usr/local/etc/xray/config.json
|
| Firewall anzeigen | iptables -L -n --line-numbers
|
| Firewall neu laden | netfilter-persistent reload
|
| Röntgenbild aktualisieren | bash -c "$(curl -L https://github.com/XTLS/Xray-install/raw/main/install-release.sh)" @ install
|
| QR-Code generieren | qrencode -t ANSIUTF8 'YOUR_VLESS_LINK'
|
Sicherheit
- Bewährte Verfahren
| # | Aspekt | Beschreibung |
|---|---|---|
| 1 | Verwenden Sie einen nicht standardmäßigen SSH-Port | das Skript bietet diese Option während der Einrichtung an |
| 2 | SSH-Passwortauthentifizierung deaktivieren | ausschließlich schlüsselbasierte Authentifizierung verwenden (OpenSSH: PasswordAuthentication no in sshd_config; Dropbear: Option -s in /etc/conf.d/dropbear)
|
| 3 | Führen Sie keine anderen Dienste auf dem Xray-Port aus | |
| 4 | Verwenden Sie pro Client eindeutige „shortIds“ zur Identifizierung | |
| 5 | Halten Sie Xray auf dem neuesten Stand | Indem Sie den oben genannten Befehl „update“ verwenden |
| 6 | Blockieren Sie den BitTorrent-Datenverkehr | wenn Sie den Proxy ausschließlich zum Surfen im Internet nutzen (diese Option wird im Skript während der Einrichtung angeboten) |
| 7 | Geben Sie Ihren privaten Schlüssel niemals weiter | geben Sie gegenüber Kunden ausschließlich den öffentlichen Schlüssel weiter |
| 8 | Führen Sie das Skript im abgesicherten Modus aus | wenn Sie sich an einem öffentlichen Ort befinden – die Anmeldedaten werden dann nicht auf dem Bildschirm angezeigt. |
| 9 | Protokollierung deaktiviert lassen (Standardeinstellung) | für maximale Privatsphäre – es werden keine Verbindungsmetadaten gespeichert |
| 10 | Das Skript vor der Ausführung prüfen | Sicherstellen, dass der Code sicher ist (siehe unten) |
Sicherheitsprüfung
Bevor Sie ein Skript als Root auf Ihrem Server ausführen, sollten Sie sich vergewissern, dass es sicher ist. Wir stellen Ihnen einen umfassenden Leitfaden zur Sicherheitsüberprüfung unter SECURITY_AUDIT.md zur Verfügung.
Kurzanleitung:
- Lade
xray-setup.shin einen KI-Assistenten (Claude, ChatGPT, Gemini usw.) hoch. - Verwenden Sie die Audit-Eingabeaufforderung aus
SECURITY_AUDIT.md - Überprüfen Sie den erstellten Sicherheitsbericht
Was bei der Prüfung überprüft wird:
- Es werden keine Anmeldedaten an externe Server gesendet
- Downloads ausschließlich aus offiziellen XTLS-Quellen
- Keine Hintertüren, keine versteckten Benutzer und kein unbefugter Zugriff
- Sichere Generierung von Anmeldeinformationen (UUID, x25519-Schlüssel)
- Systemänderungen sind auf dokumentierte Pfade beschränkt
Zur manuellen Überprüfung:
# Check all network requests grep -n "curl\|wget" xray-setup.sh # Verify download URLs are official grep -n "github.com/XTLS" xray-setup.sh # Check for suspicious commands grep -n "base64\|eval\|exec" xray-setup.sh
Fehlerbehebung
| Problem | Lösung |
|---|---|
| Xray lässt sich nicht starten | xray run -test -c /usr/local/etc/xray/config.json
|
| Verbindung abgelehnt | iptables -L -n – Überprüfen Sie, ob Ihr Port offen ist
|
| TLS-Handshake schlägt fehl | xray tls ping <domain> — Camouflage-Website überprüfen
|
| Niedrige Geschwindigkeit | sysctl net.ipv4.tcp_congestion_control — sollte bbr anzeigen
|
| Der Client kann keine Verbindung herstellen | Stellen Sie sicher, dass UUID, publicKey, serverName und shortId übereinstimmen. |
| Aus SSH ausgesperrt | Stellen Sie eine Verbindung über die VPS-Konsole her. OpenSSH: Überprüfen Sie /etc/ssh/sshd_config. Dropbear: Überprüfen Sie /etc/conf.d/dropbear
|
| Alte Firewall wiederherstellen | cp /etc/iptables/rules.v4.bak.TIMESTAMP /etc/iptables/rules.v4 && iptables-restore < /etc/iptables/rules.v4
|
| Alpine: Xray lässt sich nicht starten | Überprüfen Sie, ob /etc/init.d/xray vorhanden ist und ob es unter rc-update show aufgeführt wird.
|
| Alpine: iptables wird beim Systemstart nicht geladen | Überprüfen Sie, ob /etc/init.d/iptables-xray vorhanden ist und in rc-update show aufgeführt wird.
|
Alpine: qrencode nicht gefunden
|
Stellen Sie sicher, dass das Community-Repo aktiviert ist: Überprüfen Sie /etc/apk/repositories
|
Speicherorte der Dateien
| File | Path |
|---|---|
| Xray binary | /usr/local/bin/xray
|
| Server config | /usr/local/etc/xray/config.json
|
| Access log | /var/log/xray/access.log (if logging enabled)
|
| Error log | /var/log/xray/error.log (if logging enabled)
|
| Log rotation | /etc/logrotate.d/xray (if logging enabled)
|
| Credentials backup | /root/xray-credentials.txt (optional)
|
| Firewall rules (v4) | /etc/iptables/rules.v4
|
| Firewall rules (v6) | /etc/iptables/rules.v6
|
| Firewall backup | /etc/iptables/rules.v4.bak.* (timestamped)
|
| Sysctl tuning | /etc/sysctl.d/99-xray-optimize.conf
|
| Xray init script | /etc/init.d/xray (OpenRC only)
|
| Firewall init script | /etc/init.d/iptables-xray (OpenRC only)
|
| Systemd unit | /etc/systemd/system/xray.service (systemd only)
|
| GeoIP database | /usr/local/share/xray/geoip.dat
|
| GeoSite database | /usr/local/share/xray/geosite.dat
|
| OpenSSH config | /etc/ssh/sshd_config (if OpenSSH)
|
| Dropbear config | /etc/conf.d/dropbear (if Dropbear)
|
Aufruf
Optionen
| Unix | GNU | Parameter | Beschreibung |
|---|---|---|---|
Parameter
Umgebungsvariablen
Exit-Status
| Wert | Beschreibung |
|---|---|
| 0 | Erfolg |
| >0 | Fehler |
Anwendung
Problembehebung
Konfiguration
Dateien
| Datei | Beschreibung |
|---|---|
Anhang
Siehe auch
Dokumentation
Links
Projekt
Weblinks
- Xray-core GitHub
- Official REALITY example
- Project X Documentation
- VLESS protocol docs
- Transport/REALITY docs
- DNS.SB
- Mullvad DNS
- Quad9
- Cloudflare 1.1.1.1
- AdGuard DNS