Denne Xray VLESS Reality serveropsætningsvejledning gennemgår implementeringen af en moderne proxy på din VPS. VLESS med Reality transport-security layer er i øjeblikket den mest efterspurgte selvhostede proxyopsætning. VLESS med Reality transport-security layer er i øjeblikket den mest efterspurgte selvhostede proxyopsætning: I modsætning til en klassisk VPN producerer den ikke et karakteristisk handshake eller en fast pakkesignatur. Reality kloner TLS 1.3-handshaket fra et rigtigt, populært websted (målet), så for et DPI-system, der holder øje med ledningen, ser en forbindelse til din server identisk ud med, at nogen besøger det websted - der er intet falsk eller selvsigneret certifikat til fingeraftryk, fordi din server kortvarigt videresender det faktiske certifikat for målwebstedet under handshaket.
Protokolstakken er: VLESS (en let, statsløs proxyprotokol, der håndterer godkendelse), der kører over XTLS Vision (en flowkontroltilstand, der fremskynder forbindelsen ved at kopiere allerede krypterede TLS-poster på rå socketniveau) sikret af Reality (camouflagelaget beskrevet ovenfor). Alle tre kommer fra det samme projekt, Xray-core, den aktivt vedligeholdte efterfølger til det originale V2Ray/V2Fly-projekt.
Denne guide konfigurerer en Xray-server manuelt, udelukkende fra kommandolinjen, uden webpanel og uden Docker – det mindst mulige fodaftryk på VPS'en. Der kræves intet domænenavn og intet køb af TLS-certifikat: Reality låner målwebstedets certifikat til handshake og præsenterer aldrig sit eget. Dernæst, hvor der står your_IP, skal du indtaste din tildelte IP-adresse.
Det skal du bruge: en VPS, der kører Ubuntu 22.04/24.04 eller Debian 11/12, root-adgang, din VPS' IP-adresse og en ledig TCP-port 443 (ingen webserver, panel eller anden proxy, der allerede lytter på den).
Har du endnu ikke en server? Se Sådan bestiller og betaler du for en server.
Sammenligner du dette med andre selvhostede muligheder først? Se AmneziaWG Server Deployment Guide for et WireGuard-baseret alternativ, eller Hysteria2 og TUIC-opsætning for to andre moderne, censurbestandige protokoller.
Forbinder til serveren
Windows (PuTTY)
Åbn PuTTY, indtast din VPS IP-adresse i feltet Værtsnavn, indstil porten til 22, og log ind som root med den adgangskode, som din VPS-udbyder sendte dig via e-mail.
Server IP-adresse: din IP-adresse
log ind som: root
Adgangskode: din adgangskode
- Åbn PuTTY, og indtast din VPS IP-adresse i feltet Værtsnavn.
- Sæt porten til 22.
- Indtast log ind som root.
- Brug den adgangskode, som din VPS-udbyder sendte dig via e-mail. Du burde derefter lande på serverens shell-prompt.
For en detaljeret gennemgang af forbindelse via PuTTY/SSH, se Sådan opretter du forbindelse til en Linux-server via SSH.
Linux / macOS (terminal)
ssh root@your_IP
Alle kommandoer nedenfor køres på serveren i den samme SSH-session – som dækker afsnit 2 til 6, plus server-side kontrollerne i afsnit 10. Afsnit 7-9 (installation og konfiguration af VPN-klienten) foregår i stedet på din egen Windows/Android/iOS-enhed, da det er den enhed, proxyen skal køre på; hvert af disse afsnit angiver eksplicit, hvilke linjer, hvis nogen, der stadig berører serveren.
Klargøring af serveren
Opdater systemet
Før du installerer noget, skal du opdatere pakkelisten og opgradere installerede pakker:
apt update -y && apt upgrade -y
Hvis sessionen afbrydes efter apt-opgradering, er dette forventeligt (dbus/polkit genstartet) - genoptag blot forbindelsen via SSH.
Hvis dette opgraderer kernen, er en genstart en god idé, før du fortsætter. (For en genopfriskning af apt og hvordan Linux-pakkehåndteringer fungerer, se Linux-pakkehåndteringer .) Tjek med:
cat /var/run/reboot-required
Hvis filen findes, genstart først med 'reboot', vent ~30 sekunder, og genopret derefter forbindelsen.
Installer de værktøjer, som denne vejledning bruger
apt install -y curl wget unzip openssl ufw qrencode
Krølle og udpakke skal bruges af selve Xray-installationsprogrammet; openssl genererer det korte ID i afsnit 4; ufw er den firewall, der er konfigureret nedenfor; qrencode omdanner det færdige klientlink til en QR-kode, der kan scannes, i afsnit 7.
Tjek systemuret
Realitys handshake inkluderer en tidsstempelkontrol (feltet maxTimeDiff, som standard er deaktiveret, men værd at være opmærksom på), og et ur, der har ændret sig mærkbart, kan også få almindelig TLS-certifikatvalidering til at opføre sig forkert andre steder på serveren. Bekræft, at uret er synkroniseret:
timedatectl status
Hvis "Systemur synkroniseret" viser "nej", skal du aktivere det med:
timedatectl set-ntp true
Konfigurer firewallen (UFW)
For mere information om UFW-regler, se Konfiguration af firewall på Linux.
Åbn de to porte, du skal bruge: 22/tcp til SSH (spring denne regel over, og du risikerer at miste adgang til serveren) og 443/tcp. Porten, som Xray lytter på, er den samme port, som almindelig HTTPS-trafik bruger – hvilket netop er grunden til, at det er det rigtige valg til Reality.
ufw allow 22/tcp
ufw allow 443/tcp
ufw --force enable
ufw status
Begge regler bør vises som ALLOW i ufw-statusoutputtet.
Installation af Xray-core til VLESS Reality Server
Xray-core-projektet (XTLS) udgiver et officielt installations- og opgraderingsscript, der installerer den binære fil som en systemd-tjeneste. Gennemgå ethvert tredjepartsscript, før du sender det til bash — dette kommer direkte fra projektets eget repository.
bash -c "$(curl -L https://github.com/XTLS/Xray-install/raw/main/install-release.sh)" @ install
Bekræft, at den binære fil er på plads, og tjek den installerede version:
/usr/local/bin/xray version
Hvis kommandoens output er pagineret og ser ud til at hænge, skal du trykke på Q for at afslutte. Xray-binærfilen er installeret for at /usr/local/bin/xray, og dens konfigurationsfiler er gemt i /usr/local/etc/xray/.
Du kan også bruge det samme installationsskript til at opgradere en eksisterende installation. For en komplet liste over muligheder (herunder fjernelse, opdateringer kun af geodata og logrotation), kør:
bash -c "$(curl -L https://github.com/XTLS/Xray-install/raw/main/install-release.sh)" --help
Generering af nøgler og legitimationsoplysninger
Realitetsautentificering hviler på fire dataelementer. Generer dem alle nu; du skal indsætte dem i serverkonfigurationen i afsnit 5.
Generer et UUID til klienten
/usr/local/bin/xray uuid
Dette er VLESS-bruger-ID'et – behandl det som legitimationsoplysninger, da det er det, der godkender en klient til serveren. Kør kommandoen igen for hver yderligere enhed eller person, du vil give adgang til.
Generer nøgleparret Reality X25519
/usr/local/bin/xray x25519
Dette udskriver tre linjer: PrivateKey , Password og Hash32 . PrivateKey indgår kun i serverkonfigurationen og må aldrig deles. Password er den tilsvarende offentlige nøgle – på trods af navnet er dette den værdi, som hver klient indtaster; Xray omdøbte feltet fra PublicKey til Password specifikt for at afskrække folk fra at udgive det uforsigtigt. Hash32 bruges kun til den separate VLESS-krypteringsfunktion og er ikke nødvendig til en Reality-opsætning.
Generer et kort ID
openssl rand -hex 8
Dette producerer en hexadecimal streng på 16 tegn, der bruges til at skelne forskellige klienter eller klientgrupper fra hinanden. Både server og klient skal bruge den samme værdi.
Vælg og test et reality-mål
Målet er det rigtige websted, hvis TLS-handshake din server imiterer. Det skal understøtte TLS 1.3 og HTTP/2, må ikke være placeret bag et CDN som Cloudflare (Xray videresender al trafik, der ikke klarer Reality-godkendelse, direkte til målet, så et CDN-baseret mål kan gøre din server til et åbent relæ for det pågældende CDN), og ideelt set være hosted i omtrent samme netværksregion som din VPS for at få en plausibel latensprofil. Test en kandidat direkte fra serveren:
/usr/local/bin/xray tls ping www.microsoft.com:443
Brug det rene værtsnavn, ikke en URL. En håndfuld domæner, der almindeligvis bruges som Reality-mål, fordi de er stabile, TLS 1.3-kompatible og ikke CDN-frontede: www.microsoft.com, addons.mozilla.org, dl.google.com. Test et par stykker, og vælg et, der reagerer pålideligt fra din VPS' placering; du bruger det samme værtsnavn som både målet og serverNames-posten i afsnit 5.
Skrivning af serverkonfigurationen
Sikkerhedskopier den konfiguration, som installationsprogrammet leverede med, og åbn derefter filen for redigering:
cp /usr/local/etc/xray/config.json /usr/local/etc/xray/config.json.orig
nano /usr/local/etc/xray/config.json
Åbn konfigurationsfilen til redigering:
nano /usr/local/etc/xray/config.json
Erstat hele filen med skabelonen nedenfor, og brug din egen UUID, PrivateKey, short-ID og målværtsnavn fra afsnit 4 (og den port, du åbnede i afsnit 2, hvis du ændrede den fra 443):
{
"log": {
"loglevel": "warning"
},
"inbounds": [
{
"listen": "0.0.0.0",
"port": 443,
"protocol": "vless",
"settings": {
"users": [
{
"id": "YOUR-UUID-HERE",
"flow": "xtls-rprx-vision",
"email": "client1"
}
],
"decryption": "none"
},
"streamSettings": {
"method": "raw",
"security": "reality",
"realitySettings": {
"show": false,
"target": "www.microsoft.com:443",
"serverNames": ["www.microsoft.com"],
"privateKey": "YOUR-SERVER-PRIVATE-KEY",
"shortIds": ["YOUR-SHORT-ID"]
}
}
}
],
"outbounds": [
{ "protocol": "freedom", "tag": "direct" },
{ "protocol": "blackhole", "tag": "blocked" }
]
}
Tryk Ctrl+O (WriteOut) for at gemme filen.
Tryk på Enter for at bekræfte filnavnet.
Tryk Ctrl+X for at afslutte nano.
De vigtige felter: users[].id er UUID'et fra afsnit 4; users[].flow aktiverer XTLS Vision; method (tidligere kaldet network) vælger RAW-transporten, den almindelige TCP-baserede metode, som Reality kræver; target og serverNames er det websted, du testede i afsnit 4; privateKey er server-side X25519-nøglen, aldrig Password-værdien; shortIds viser alle korte ID'er, som klienter har tilladelse til at præsentere. For at tilføje flere brugere senere skal du tilføje yderligere objekter til users-arrayet, hver med sin egen UUID og e-mail-etiket, og derefter genstarte tjenesten.
Siden Xray 26.3.27 har en indgående Reality-applikation uden et eksplicit minClientVer-felt håndhævet en standardværdi for serverens egen kerneversion — ældre klientapps (en forældet v2rayN-, v2rayNG- eller Streisand-build, der indeholder en ældre Xray-kerne) omdirigeres lydløst til målets fallback-side i stedet for at oprette forbindelse, uden fejl i klienten og uden noget åbenlyst galt i serverloggen. Hvis en klient, der plejede at virke, pludselig får timeout efter en opdatering, skal du først prøve at opdatere selve klientappen. Hvis det ikke er muligt, skal du tilføje "minClientVer": "25.9.11" (eller en anden ældre baseline) i realitySettings, på bekostning af at gøre den ældre klients TLS-fingeraftryk lidt mindre konsistent med en moderne browser.
Valider og genstart
Test konfigurationen, før du genstarter live-tjenesten — dette fanger JSON-tastefejl og ikke-understøttede felter, før de fjerner proxyen:
/usr/local/bin/xray run -test -c /usr/local/etc/xray/config.json
Start af tjenesten og aktivering af automatisk start
Genstart Xray med den nye konfiguration, og aktiver den til at starte automatisk ved genstart:
systemctl enable --now xray
systemctl restart xray
systemctl status xray --no-pager
Status bør vise aktiv (kører). Bekræft, at noget rent faktisk lytter på port 443:
ss -lntp | grep ':443'
Hvis Xray ikke starter, er den hurtigste måde at finde ud af hvorfor ved at bruge systemd-journalen (for baggrund om læsning af Linux-logfiler generelt, se Sådan læser du Linux-logfiler og hvor du finder dem ):
journalctl -u xray -n 50 --no-pager
Opbygning af klientforbindelseslinket
Xray-klienter importerer et enkelt vless:// share-link i stedet for en konfigurationsfil. Byg det ud fra de værdier, der er genereret i afsnit 4 (klientapps' share-link-format bruger stadig det ældre navn type=tcp til transporten, selvom selve JSON-feltet nu kaldes method):
DIN-UUID — fra røntgen-uuid (f.eks. a1b2c3d4-e5f6-7890-abcd-ef1234567890)
DIN-ADGANGSKODE-OFFENTLIG-NØGLE — er adgangskoden fra xray x25519 (IKKE den private nøgle!)
DIT-KORT-ID — fra openssl rand -hex 8 (f.eks. a1b2c3d4e5f67890)
din_IP — (din servers IP-adresse)
SNI — www.microsoft.com (eller din målgruppe)
vless://YOUR-UUID-HERE@your_IP:443?encryption=none&security=reality&sni=www.microsoft.com&fp=chrome&pbk=YOUR-PASSWORD-PUBLIC-KEY&sid=YOUR-SHORT-ID&type=tcp&flow=xtls-rprx-vision#My-Xray-Server
Eksempellink:
vless://a1b2c3d4-e5f6-7890-abcd-ef1234567890@your_IP:443?encryption=none&security=reality&sni=www.microsoft.com&fp=chrome&pbk=xyz_public_key_here&sid=a1b2c3d4e5f67890&type=tcp&flow=xtls-rprx-vision#My-Xray-Server
pbk er adgangskodeværdien fra xray x25519 (den offentlige nøgle, aldrig den private nøgle), sni matcher destinationsværtsnavnet, og teksten efter # er blot en visningsetiket, som du frit kan omdøbe i enhver klient.
Lav den om til en QR-kode, så mobilklienter kan scanne den direkte:
qrencode -o ~/vless-client.png "vless://YOUR-UUID@your_IP:443?encryption=none&security=reality&sni=www.microsoft.com&fp=chrome&pbk=YOUR-PASSWORD-PUBLIC-KEY&sid=YOUR-SHORT-ID&type=tcp&flow=xtls-rprx-vision#My-Xray-Server"
Eller udskriv den direkte til terminalen uden at gemme en fil:
qrencode -t ansiutf8 "vless://YOUR-UUID@your_IP:443?encryption=none&security=reality&sni=www.microsoft.com&fp=chrome&pbk=YOUR-PASSWORD-PUBLIC-KEY&sid=YOUR-SHORT-ID&type=tcp&flow=xtls-rprx-vision#My-Xray-Server"
Kopier PNG-filen til din egen computer med scp, kør den fra din computers terminal (eller PowerShell på Windows), ikke serveren:
scp root@your_IP:~/vless-client.png .
Forbinder fra Windows
Alt i dette afsnit sker på din Windows-pc, ikke via SSH – klienten skal køre på den enhed, der rent faktisk bruger proxyen.
Installer v2rayN
v2rayN er en gratis, aktivt vedligeholdt GUI-klient, der indeholder Xray-core med indbygget VLESS/Reality-understøttelse. Download den seneste udgivelse fra projektets side :
Hent Windows 64-bit .zip-filen (en selvstændig build kræver ingen separat .NET-runtime som i de seneste v2rayN-versioner), pak den ud hvor som helst, og kør v2rayN.exe.
Importer serveren
Kopier linket vless:// fra afsnit 7 til din udklipsholder (eller kopier QR PNG-filen over med scp og åbn den), og vælg derefter Servere i v2rayN og derefter Importer masse-URL fra udklipsholder (eller scan QR-koden via den indbyggede scanner). Den nye serverprofil vises på listen med den etiket, du har angivet efter #.
Højreklik på profilen, og vælg den som aktiv, og aktiver derefter systemproxyen (eller TUN-tilstand til routing af hele maskinen) fra hovedvinduets værktøjslinje.
Forbinder fra Android
Alt her sker på din Android-enhed, ikke via SSH.
Installer v2rayNG
v2rayNG er Android-modstykket til v2rayN, fra samme udvikler, og er den mest anvendte Xray-klient på Android. Installer den fra Google Play, eller download APK'en direkte fra projektets udgivelsesside, hvis Play ikke er tilgængelig i din region:
Importer serveren
Åbn v2rayNG, tryk på + knappen øverst til højre, og vælg Importer konfiguration fra udklipsholder efter at have kopieret vless://-linket, eller Scan QR-koden og peg kameraet mod den PNG, der blev genereret i afsnit 7. Tryk på den importerede profil for at vælge den, og tryk derefter på den runde forbindelsesknap nederst. Android vil bede om VPN-tilladelse første gang – godkend den for at etablere tunnelen.
Forbinder fra iOS
Alt her sker på din iPhone eller iPad, ikke via SSH. Apples App Store-retningslinjer betyder, at Xray/VLESS-klienter på iOS typisk er gratis, men lejlighedsvis betalte, separate apps i stedet for en systemintegreret funktion.
Installer en Reality-kompatibel klient
Streisand er en gratis open source-klient, der understøtter VLESS med Reality, sammen med adskillige andre protokoller. Søg efter den i App Store, eller åbn dette link.
App Store-kataloger varierer afhængigt af butik/region og kan ændre sig over tid. Hvis Streisand ikke er synlig i din, inkluderer alternativer med VLESS+Reality-understøttelse Happ, V2Box og V2rayTun – søg i App Store efter det, der er tilgængeligt for din konto.
Importer serveren
Kopier linket vless:// til din udklipsholder, åbn klienten, og brug dens Tilføj fra udklipsholder (eller tilsvarende "import") mulighed, eller scan QR-koden fra afsnit 7 med klientens indbyggede scanner. Slå den nye profil til; iOS vil bede om VPN-konfigurationstilladelse første gang, som du skal godkende via Face ID, Touch ID eller din adgangskode.
Bekræftelse af forbindelsen
Når tunnelen fra afsnit 8, 9 eller 10 er aktiv, skal du gå tilbage til din egen enhed (ikke SSH-sessionen) og åbne en hvilken som helst "Hvad er min IP"-tjekker i en browser — den viste adresse skal matche din VPS' IP-adresse.
For at verificere fra serversiden i stedet, skal du kontrollere systemd-journalen for forbindelsesaktivitet og bekræfte en etableret TCP-session på port 443:
journalctl -u xray -n 50 --no-pager
ss -tnp | grep ':443'
Ved standardlogniveauet "advarsel" udskriver Xray ikke meget om individuelle forbindelser. Hvis du har brug for at se flere detaljer under fejlfinding, skal du midlertidigt indstille "loglevel": "info" i config.json og genstarte tjenesten. Skift derefter tilbage til advarsel, når alt fungerer.
Reference:
|
Felt |
Værdi |
|
Adresse |
din VPS' offentlige IP-adresse |
|
port |
443 (den samme havn åbnet i sektion 2) |
|
UUID / id |
YOUR-UUID-HERE — genereret i afsnit 4 med xray uuid |
|
Flow |
xtls-rprx-vision — skal matche på begge sider |
|
Sikkerhed |
virkelighed |
|
SNI / servernavn |
Målværtsnavnet testet i afsnit 4, f.eks. www.microsoft.com |
|
Fingeraftryk (fp) |
Chrome — et understøttet uTLS-fingeraftryk; skal indstilles på klienten |
|
Offentlig nøgle / pbk |
Adgangskodeværdien fra xray x25519 — aldrig den private nøgle |
|
Kort ID / side |
Genereret med openssl rand -hex 8; skal matche en værdi i shortIds |
Konklusion
Hvis du følger denne vejledning, kører din VPS sin egen Xray VLESS+Reality-server, forklædt som almindelig HTTPS-trafik til et rigtigt websted, uden domæne og certifikat at vedligeholde. Tjenesten kører som systemd-enheden xray og overlever en genstart uden nogen handling fra din side.
Tilføj nye klienter når som helst ved at tilføje et andet objekt til users-arrayet i config.json med en frisk UUID fra xray uuid og en distinkt e-mail-etiket, og genstart derefter tjenesten (systemctl restart xray) og opbygge brugerens eget delingslink fra afsnit 7. Separate UUID'er pr. person eller enhed gør det muligt at tilbagekalde en uden at forstyrre andre.
Et par vaner, der er værd at holde ved lige, når serveren kører:
- Hold Xray opdateret. Kør installationsscriptet fra afsnit 3 med jævne mellemrum – det opgraderer en eksisterende installation – og hold klientapps opdaterede, givet minClientVer-adfærden nævnt i afsnit 5.
- Sikkerhedskopier config.json et sted privat uden for serveren. Den indeholder serverens Reality-private nøgle og hver klients UUID; hvis du mister den, genereres legitimationsoplysninger for hver enhed.
- Tilbagekald mistede enheder med det samme. Fjern den tilsvarende post fra brugerarrayet i config.json, og genstart tjenesten.
Hvis forbindelsen ikke oprettes, skal du kontrollere i rækkefølge:
- servicestatus (systemctl status xray --no-pager) og journalen (journalctl -u xray -n 50 --no-pager)
- firewallreglerne (ufw-status — port 443/tcp skal være åben)
- at port 443 ikke allerede er bundet af en anden tjeneste (ss -lntp | grep ':443' burde kun vise xray)
- at UUID, offentlig nøgle, short ID, SNI og flow i klienten matcher config.json præcist — et enkelt uoverensstemmende tegn fejler handshake lydløst
- Selve Reality-målet, med xray tls ping :443, i tilfælde af at webstedet ændrede sin TLS-konfiguration
Sammenligning af Xray med andre muligheder? Se AmneziaWG Server Deployment Guide og How to set up Wireguard VPN on your server for WireGuard-baserede alternativer, eller Hysteria2 og TUIC setup for to andre censurresistente protokoller bygget til tabsgivende eller stærkt filtrerede netværk. Hvis du kun har brug for en simpel proxy i stedet for en fuld tunneling-opsætning, er 3proxy-konfiguration på CentOS/ArchLinux et meget lettere alternativ, og den ældre VPN-serveropsætning på Linux: PPTP eller OpenVPN? dækker protokoller, der er enklere at konfigurere, men langt lettere for DPI at registrere og blokere. For generel serverhærdning, når proxyen er live, se Linux-brugere: Administration og tilladelser.