Aquesta guia de configuració del servidor Xray VLESS Reality us guiarà a través de la implementació d'un proxy modern al vostre VPS. VLESS amb la capa de seguretat de transport Reality és actualment la configuració de proxy autoallotjament més sol·licitada: a diferència d'una VPN clàssica, no produeix una encaixada de mans distintiva ni una signatura de paquet fixa. Reality clona l'encaixada de mans TLS 1.3 d'un lloc web real i popular (l'objectiu), de manera que per a un sistema DPI que vigila el cable, una connexió al vostre servidor sembla idèntica a algú que visita aquest lloc web; no hi ha cap certificat fals o autosignat per empremtar digitalment, perquè el vostre servidor reenvia breument el certificat real del lloc de destinació durant l'encaixada de mans.
La pila de protocols és: VLESS (un protocol proxy lleuger i sense estat que gestiona l'autenticació) que s'executa sobre XTLS Vision (un mode de control de flux que accelera la connexió copiant els registres TLS ja xifrats a nivell de sòcol en brut) assegurat per Reality (la capa de camuflatge descrita anteriorment). Tots tres provenen del mateix projecte, Xray-core, el successor mantingut activament del projecte original V2Ray/V2Fly.
Aquesta guia configura un servidor Xray manualment, completament des de la línia d'ordres, sense panell web ni Docker, la petjada més petita possible al VPS. No cal comprar cap nom de domini ni certificat TLS: Reality pren prestat el certificat del lloc de destinació per a la confirmació de connexió i mai no en presenta cap de propi. A continuació, on diu la teva_IP, hauràs d'introduir la teva adreça IP assignada.
El que necessitareu: un VPS amb Ubuntu 22.04/24.04 o Debian 11/12, accés root, l'adreça IP del vostre VPS i el port TCP 443 lliure (cap servidor web, panell o altre proxy que ja hi escolti).
Encara no tens un servidor? Consulta Com demanar un servidor i pagar-lo.
Voleu comparar això amb altres opcions autoallotjades primer? Consulteu la Guia de desplegament del servidor AmneziaWG per a una alternativa basada en WireGuard o la configuració d'Hysteria2 i TUIC per a dos altres protocols moderns i resistents a la censura.
Connexió al servidor
Windows (PuTTY)
Obriu PuTTY, introduïu l'adreça IP del vostre VPS al camp Nom de l'amfitrió, configureu el port a 22 i inicieu la sessió com a root amb la contrasenya que us ha enviat el vostre proveïdor de VPS per correu electrònic.
Adreça IP del servidor: la vostra adreça IP
iniciar sessió com a: root
Contrasenya: la teva contrasenya
- Obriu PuTTY i introduïu l'adreça IP del vostre VPS al camp Nom de l'amfitrió.
- Estableix el port a 22.
- Introduïu inicieu la sessió com a root.
- Fes servir la contrasenya que t'ha enviat el teu proveïdor de VPS per correu electrònic. Aleshores, hauries d'arribar a la línia de comandaments del servidor.
Per obtenir una guia detallada sobre com connectar-se mitjançant PuTTY/SSH, consulteu Com connectar-se a un servidor Linux mitjançant SSH.
Linux / macOS (terminal)
ssh root@your_IP
Totes les ordres següents s'executen al servidor, en aquesta mateixa sessió SSH, que cobreix les seccions 2 a 6, a més de les comprovacions del servidor de la secció 10. Les seccions 7 a 9 (instal·lació i configuració del client VPN) es duen a terme al vostre propi dispositiu Windows/Android/iOS, ja que aquest és el dispositiu on s'ha d'executar el proxy; cadascuna d'aquestes seccions indica explícitament quines línies, si n'hi ha, encara toquen el servidor.
Preparant el servidor
Actualitza el sistema
Abans d'instal·lar res, actualitzeu la llista de paquets i actualitzeu els paquets instal·lats:
apt update -y && apt upgrade -y
Si la sessió s'interromp després de l'actualització d'apt, això és previsible (dbus/polkit reiniciat); només cal tornar a connectar-se via SSH.
Si això actualitza el nucli, és una bona idea reiniciar abans de continuar. (Per a un repàs sobre apt i com funcionen els gestors de paquets de Linux, vegeu Gestors de paquets de Linux .) Consulteu amb:
cat /var/run/reboot-required
Si el fitxer existeix, reinicieu primer amb 'reboot', espereu uns 30 segons i després torneu a connectar-vos.
Instal·leu les eines que utilitza aquesta guia
apt install -y curl wget unzip openssl ufw qrencode
El mateix instal·lador de Xray necessita curl i unzip; openssl genera l'ID curt a la Secció 4; ufw és el tallafocs configurat a continuació; qrencode converteix l'enllaç del client acabat en un codi QR escanejable a la Secció 7.
Comproveu el rellotge del sistema
La confirmació de connexió de Reality inclou una comprovació de marca de temps (el camp maxTimeDiff, desactivat per defecte però que val la pena conèixer), i un rellotge que ha variat notablement també pot fer que la validació de certificats TLS normal es comporti malament en altres llocs del servidor. Confirmeu que el rellotge està sincronitzat:
timedatectl status
Si "Sistema sincronitzat amb el rellotge" mostra "no", activeu-ho amb:
timedatectl set-ntp true
Configura el tallafocs (UFW)
Per obtenir més informació sobre les regles d'UFW, consulteu Configuració del tallafocs a Linux.
Obriu els dos ports que necessitareu: 22/tcp per a SSH (si ometeu aquesta regla, us arrisqueu a perdre l'accés al servidor) i 443/tcp, el port que escoltarà Xray i el mateix port que utilitza el trànsit HTTPS normal, que és exactament per això que és l'opció correcta per a Reality.
ufw allow 22/tcp
ufw allow 443/tcp
ufw --force enable
ufw status
Ambdues regles haurien de mostrar-se com a ALLOW a la sortida d'estat d'ufw.
Instal·lació de Xray-core per al servidor de realitat VLESS
El projecte Xray-core (XTLS) publica un script oficial d'instal·lació i actualització que instal·la el binari com a servei systemd. Reviseu qualsevol script de tercers abans d'enviar-lo a bash; aquest prové directament del repositori del projecte.
bash -c "$(curl -L https://github.com/XTLS/Xray-install/raw/main/install-release.sh)" @ install
Verifiqueu que el binari estigui al seu lloc i comproveu la versió instal·lada:
/usr/local/bin/xray version
Si la sortida de l'ordre està paginada i sembla que es penja, premeu Q per sortir. El binari Xray s'instal·la a /usr/local/bin/xray, i els seus fitxers de configuració s'emmagatzemen a /usr/local/etc/xray/.
També podeu utilitzar el mateix script d'instal·lador per actualitzar una instal·lació existent. Per obtenir una llista completa d'opcions (inclosa l'eliminació, les actualitzacions només de geodades i la rotació de registres), executeu:
bash -c "$(curl -L https://github.com/XTLS/Xray-install/raw/main/install-release.sh)" --help
Generació de les claus i les credencials
L'autenticació de la realitat es basa en quatre dades. Genereu-les totes ara; les enganxareu a la configuració del servidor a la secció 5.
Genera un UUID per al client
/usr/local/bin/xray uuid
Aquest és l'ID d'usuari de VLESS; tracteu-lo com una credencial, ja que és el que autentica un client al servidor. Torneu a executar l'ordre per a cada dispositiu o persona addicional a la qual vulgueu concedir accés.
Genera el parell de claus Reality X25519
/usr/local/bin/xray x25519
Això imprimeix tres línies: PrivateKey , Password i Hash32 . PrivateKey només entra a la configuració del servidor i no s'ha de compartir mai. Password és la clau pública corresponent; malgrat el nom, aquest és el valor que cada client introdueix; Xray ha canviat el nom del camp de PublicKey a Password específicament per dissuadir la gent de publicar-lo de manera descuidada. Hash32 només s'utilitza per a la funció de xifratge VLESS independent i no és necessari per a una configuració de Reality.
Genera un ID curt
openssl rand -hex 8
Això produeix una cadena hexadecimal de 16 caràcters que s'utilitza per diferenciar els diferents clients o grups de clients. Tant el servidor com el client han d'utilitzar el mateix valor.
Trieu i proveu un objectiu de realitat
L'objectiu és el lloc web real del qual imita el protocol de connexió TLS el vostre servidor. Hauria de ser compatible amb TLS 1.3 i HTTP/2, no ha de situar-se darrere d'una CDN com Cloudflare (Xray reenvia qualsevol trànsit que no superi l'autenticació de Reality directament a l'objectiu, de manera que un objectiu amb CDN al davant pot convertir el vostre servidor en un relé obert per a aquesta CDN), i idealment està allotjat aproximadament a la mateixa regió de xarxa que el vostre VPS per obtenir un perfil de latència plausible. Proveu un candidat directament des del servidor:
/usr/local/bin/xray tls ping www.microsoft.com:443
Feu servir el nom d'amfitrió simple, no una URL. Uns quants dominis que s'utilitzen habitualment com a objectius de Reality perquè són estables, compatibles amb TLS 1.3 i no tenen CDN al davant: www.microsoft.com, addons.mozilla.org, dl.google.com. Proveu-ne uns quants i trieu-ne un que respongui de manera fiable des de la ubicació del vostre VPS; fareu servir el mateix nom d'amfitrió que l'objectiu i l'entrada serverNames de la secció 5.
Escriptura de la configuració del servidor
Feu una còpia de seguretat de la configuració que us ha enviat l'instal·lador i, a continuació, obriu el fitxer per editar-lo:
cp /usr/local/etc/xray/config.json /usr/local/etc/xray/config.json.orig
nano /usr/local/etc/xray/config.json
Obriu el fitxer de configuració per editar-lo:
nano /usr/local/etc/xray/config.json
Substitueix tot el fitxer per la plantilla següent, substituint el teu propi UUID, PrivateKey, ID curt i nom d'amfitrió de destinació de la Secció 4 (i el port que vas obrir a la Secció 2, si el vas canviar de 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" }
]
}
Premeu Ctrl+O (WriteOut) per desar el fitxer.
Premeu Intro per confirmar el nom del fitxer.
Premeu Ctrl+X per sortir de nano.
Els camps importants: users[].id és l'UUID de la secció 4; users[].flow activa XTLS Vision; method (abans anomenat network) selecciona el transport RAW, el mètode simple basat en TCP que requereix Reality; target i serverNames són el lloc que heu provat a la secció 4; privateKey és la clau X25519 del servidor, mai el valor de Password; shortIds enumera tots els ID curts que els clients poden presentar. Per afegir més usuaris més tard, afegiu objectes addicionals a la matriu users, cadascun amb el seu propi UUID i etiqueta de correu electrònic, i després reinicieu el servei.
Des de la versió 26.3.27 de Xray, una entrada de Reality sense un camp minClientVer explícit imposa una versió predeterminada del nucli del servidor: les aplicacions client més antigues (una compilació v2rayN, v2rayNG o Streisand obsoleta que inclou un nucli Xray més antic) es redirigeixen silenciosament a la pàgina de reserva de la destinació en lloc de connectar-se, sense cap error al client i sense cap problema evident al registre del servidor. Si un client que abans funcionava de sobte s'espera després d'una actualització, primer intenteu actualitzar l'aplicació client; si això no és possible, afegiu "minClientVer": "25.9.11" (o una altra línia de base més antiga) dins de realitySettings, a costa de fer que l'empremta digital TLS d'aquest client més antic sigui una mica menys coherent amb un navegador modern.
Valida i reinicia
Proveu la configuració abans de reiniciar el servei en directe; això detecta errors tipogràfics de JSON i camps no compatibles abans que desactivin el servidor intermediari:
/usr/local/bin/xray run -test -c /usr/local/etc/xray/config.json
Inici del servei i activació de l'inici automàtic
Reinicieu Xray amb la nova configuració i activeu-lo perquè s'iniciï automàticament en reiniciar:
systemctl enable --now xray
systemctl restart xray
systemctl status xray --no-pager
L'estat hauria de mostrar actiu (en execució). Confirmeu que alguna cosa està escoltant realment al port 443:
ss -lntp | grep ':443'
Si Xray no s'inicia, la manera més ràpida de veure per què és el diari de systemd (per obtenir informació sobre la lectura de registres de Linux en general, vegeu Com llegir registres de Linux i on trobar-los ):
journalctl -u xray -n 50 --no-pager
Creació de l'enllaç de connexió del client
Els clients Xray importen un únic enllaç compartit vless:// en lloc d'un fitxer de configuració. Creeu-lo a partir dels valors generats a la Secció 4 (el format d'enllaç compartit de les aplicacions client encara utilitza el nom antic type=tcp per al transport, tot i que el camp JSON en si ara s'anomena mètode):
EL TEU-UUID — de l'uuid de raigs X (per exemple, a1b2c3d4-e5f6-7890-abcd-ef1234567890)
LA-VOSTRA-CONTRASENYA-CLAU-PÚBLICA — és la contrasenya de xray x25519 (NO la clau privada!)
EL-TEU-ID-CURT — des de openssl rand -hex 8 (per exemple, a1b2c3d4e5f67890)
la_vostra_IP — (IP del vostre servidor)
SNI — www.microsoft.com (o el vostre objectiu)
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
Exemple d'enllaç:
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 és el valor de la contrasenya de xray x25519 (la clau pública, mai la clau privada), sni coincideix amb el nom de l'amfitrió de destinació i el text després de # és només una etiqueta de visualització que podeu canviar el nom lliurement a qualsevol client.
Converteix-lo en un codi QR perquè els clients mòbils el puguin escanejar directament:
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"
O imprimir-ho directament al terminal sense desar un fitxer:
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"
Copieu el PNG al vostre ordinador amb scp, executeu-lo des del terminal de l'ordinador (o PowerShell a Windows), no des del servidor:
scp root@your_IP:~/vless-client.png .
Connexió des de Windows
Tot el que s'explica en aquesta secció passa al vostre PC amb Windows, no a través d'SSH; el client ha d'executar-se al dispositiu que realment utilitzarà el proxy.
Instal·la v2rayN
v2rayN és un client GUI gratuït i mantingut activament que inclou Xray-core, amb suport natiu per a VLESS/Reality. Baixeu la darrera versió des de la pàgina del projecte :
Agafeu l'arxiu .zip de Windows de 64 bits (una compilació autònoma no necessita un temps d'execució .NET separat com a versions recents de v2rayN), extraieu-lo a qualsevol lloc i executeu v2rayN.exe.
Importa el servidor
Copieu l'enllaç vles:// creat a la Secció 7 al porta-retalls (o copieu el codi QR PNG amb scp i obriu-lo), després a v2rayN trieu Servidors i, a continuació, Importa l'URL en bloc del porta-retalls (o escanegeu el codi QR amb l'escàner integrat). El nou perfil de servidor apareixerà a la llista amb l'etiqueta que heu definit després del #.
Feu clic amb el botó dret al perfil i seleccioneu-lo com a actiu, després activeu el proxy del sistema (o mode TUN, per encaminar tota la màquina) des de la barra d'eines de la finestra principal.
Connexió des d'Android
Tot això passa al teu dispositiu Android, no per SSH.
Instal·la v2rayNG
v2rayNG és l'equivalent per a Android de v2rayN, del mateix mantenidor, i és el client Xray més utilitzat a Android. Instal·leu-lo des de Google Play o descarregueu l'APK directament des de la pàgina de llançaments del projecte si Play no està disponible a la vostra regió:
Importa el servidor
Obriu v2rayNG, toqueu el botó + a la part superior dreta i trieu Importa la configuració del porta-retalls després de copiar l'enllaç vless://, o bé Escaneja el codi QR i apunta la càmera al PNG generat a la secció 7. Toqueu el perfil importat per seleccionar-lo i, a continuació, toqueu el botó rodó de connexió a la part inferior. Android demanarà permís de VPN la primera vegada: aproveu-la per establir el túnel.
Connexió des d'iOS
Tot això passa al teu iPhone o iPad, no per SSH. Les directrius de l'App Store d'Apple impliquen que els clients Xray/VLESS a iOS solen ser gratuïts, però de vegades són aplicacions de pagament independents en lloc d'una funció integrada al sistema.
Instal·leu un client compatible amb Reality
Streisand és un client gratuït i de codi obert que admet VLESS amb Reality, juntament amb diversos altres protocols. Cerca'l a l'App Store o obre aquest enllaç.
Els catàlegs de l'App Store varien segons la botiga o la regió i poden canviar amb el temps; si Streisand no és visible al vostre, les alternatives compatibles amb VLESS+Reality inclouen Happ, V2Box i V2rayTun; cerqueu a l'App Store les que estiguin disponibles per al vostre compte.
Importa el servidor
Copieu l'enllaç vless:// al porta-retalls, obriu el client i utilitzeu l'opció Afegeix des del porta-retalls (o una opció equivalent d'"importació") o escanegeu el codi QR de la Secció 7 amb l'escàner integrat del client. Activeu el nou perfil; iOS us demanarà permís de configuració VPN la primera vegada, que haureu d'aprovar mitjançant Face ID, Touch ID o el vostre codi d'accés.
Verificació de la connexió
Amb el túnel actiu de la secció 8, 9 o 10, torneu al vostre dispositiu (no a la sessió SSH) i obriu qualsevol verificador de "quina és la meva IP" en un navegador; l'adreça que es mostra hauria de coincidir amb la vostra adreça IP del vostre VPS.
Per verificar des del costat del servidor, comproveu l'activitat de connexió al diari de systemd i confirmeu una sessió TCP establerta al port 443:
journalctl -u xray -n 50 --no-pager
ss -tnp | grep ':443'
Al nivell de registre "d'advertència" per defecte, Xray no imprimeix gaire sobre connexions individuals; si necessiteu veure més detalls mentre solucioneu problemes, definiu temporalment "loglevel": "info" a config.json i reinicieu el servei, i després torneu-lo a l'estat d'advertència un cop tot funcioni.
Referència:
|
Camp |
Valor |
|
Adreça |
l'adreça IP pública del vostre VPS |
|
Port |
443 (el mateix port obert a la Secció 2) |
|
UUID / id |
EL TEU-UUID-AQUÍ — generat a la Secció 4 amb l'uuid de raigs X |
|
Flux |
xtls-rprx-vision — ha de coincidir en ambdós costats |
|
Seguretat |
realitat |
|
SNI / nom del servidor |
El nom d'amfitrió de destinació provat a la secció 4, p. ex. www.microsoft.com |
|
Empremta digital (fp) |
chrome: una empremta digital uTLS compatible; s'ha de configurar al client |
|
Clau pública / pbk |
El valor de la contrasenya de xray x25519, mai la clau privada. |
|
ID curt / sid |
Generat amb openssl rand -hex 8; ha de coincidir amb un valor a shortIds |
Conclusió
Seguint aquesta guia, el vostre VPS executa el seu propi servidor Xray VLESS+Reality, disfressat de trànsit HTTPS normal a un lloc web real, sense domini ni certificat per mantenir. El servei s'executa com la unitat systemd xray i sobreviu a un reinici sense cap acció per part vostra.
Afegiu clients nous en qualsevol moment afegint un altre objecte a la matriu d'usuaris a config.json amb un UUID nou de xray uuid i una etiqueta de correu electrònic diferent, després reinicieu el servei (systemctl restart xray) i creeu per a aquest usuari el seu propi enllaç de compartició de la Secció 7. Els UUID separats per persona o dispositiu permeten revocar-ne un sense molestar ningú més.
Alguns hàbits que val la pena mantenir un cop el servidor estigui en funcionament:
- Mantingueu Xray actualitzat. Torneu a executar l'script d'instal·lació de la Secció 3 periòdicament (actualitza una instal·lació existent) i manteniu les aplicacions client actualitzades també, tenint en compte el comportament minClientVer indicat a la Secció 5.
- Fes una còpia de seguretat del fitxer config.json en un lloc privat fora del servidor. Conté la clau privada Reality del servidor i l'UUID de cada client; perdre'l significa regenerar les credencials per a cada dispositiu.
- Revoca els dispositius perduts immediatament. Elimina l'entrada corresponent de la matriu d'usuaris a config.json i reinicia el servei.
Si la connexió no s'estableix, comproveu-ho en aquest ordre:
- l'estat del servei (systemctl status xray --no-pager) i el diari (journalctl -u xray -n 50 --no-pager)
- les regles del tallafocs (estat d'ufw: el port 443/tcp ha d'estar obert)
- que el port 443 no estigui ja vinculat a un altre servei (ss -lntp | grep ':443' només hauria de mostrar raigs X)
- que l'UUID, la clau pública, l'ID curt, l'SNI i el flux del client coincideixin exactament amb config.json: un sol caràcter no coincident falla la confirmació de connexió silenciosa.
- l'objectiu de Realitat en si, amb ping TLS de raigs X :443, en cas que el lloc web hagi canviat la seva configuració TLS
Voleu comparar Xray amb altres opcions? Consulteu la Guia de desplegament del servidor AmneziaWG i Com configurar Wireguard VPN al vostre servidor per a alternatives basades en WireGuard, o la configuració d'Hysteria2 i TUIC per a dos altres protocols resistents a la censura creats per a xarxes amb pèrdues o molt filtrades. Si només necessiteu un proxy simple en lloc d'una configuració completa de túnel, la configuració de 3proxy a CentOS/ArchLinux és una alternativa molt més lleugera, i la configuració més antiga del servidor VPN a Linux: PPTP o OpenVPN? cobreix protocols que són més senzills de configurar però molt més fàcils de detectar i bloquejar per a DPI. Per a un enduriment general del servidor un cop el proxy està en funcionament, consulteu Usuaris de Linux: administració i permisos.