Esta guía de configuración do servidor Xray VLESS Reality guiarache pola implementación dun proxy moderno no teu VPS. VLESS coa capa de seguridade de transporte de Reality é actualmente a configuración de proxy autoaloxada máis solicitada: a diferenza dunha VPN clásica, non produce un handshake distintivo nin unha sinatura de paquete fixa. Reality clona o handshake TLS 1.3 dun sitio web real e popular (o obxectivo), polo que para un sistema DPI que vixía o cable, unha conexión ao teu servidor parece idéntica á de alguén que visita ese sitio web; non hai ningún certificado falso ou autoasinado para a impresión dixital, porque o teu servidor reenvía brevemente o certificado real do sitio de destino durante o handshake.
A pila de protocolos é: VLESS (un protocolo proxy lixeiro e sen estado que xestiona a autenticación) que se executa sobre XTLS Vision (un modo de control de fluxo que acelera a conexión copiando rexistros TLS xa cifrados no nivel de socket bruto) protexido por Reality (a capa de camuflaxe descrita anteriormente). Os tres proveñen do mesmo proxecto, Xray-core, o sucesor mantido activamente do proxecto orixinal V2Ray/V2Fly.
Esta guía configura un servidor Xray manualmente, completamente desde a liña de comandos, sen panel web nin Docker, o que supón a menor pegada posible no VPS. Non se require ningún nome de dominio nin a compra dun certificado TLS: Reality toma prestado o certificado do sitio de destino para o handshake e nunca presenta un propio. A continuación, onde di o teu_IP, terás que introducir o teu enderezo IP asignado.
O que necesitarás: un VPS con Ubuntu 22.04/24.04 ou Debian 11/12, acceso root, o enderezo IP do teu VPS e o porto TCP 443 libre (sen ningún servidor web, panel ou outro proxy que xa estea a escoitalo).
Aínda non tes un servidor? Consulta Como pedir un servidor e pagalo.
Queres comparar isto primeiro con outras opcións de aloxamento propio? Consulta a Guía de despregamento do servidor AmneziaWG para obter unha alternativa baseada en WireGuard ou a configuración de Hysteria2 e TUIC para outros dous protocolos modernos resistentes á censura.
Conectando ao servidor
Windows (PuTTY)
Abre PuTTY, introduce o teu enderezo IP do VPS no campo Nome do host, configura o porto en 22 e inicia sesión como root co contrasinal que che enviou o teu provedor de VPS por correo electrónico.
Enderezo IP do servidor: o teu enderezo IP
iniciar sesión como: root
Contrasinal: o teu contrasinal
- Abre PuTTY e introduce o enderezo IP do teu VPS no campo Nome do host.
- Configura o porto en 22.
- Introduza iniciar sesión como root.
- Usa o contrasinal que che enviou o teu provedor de VPS por correo electrónico. Entón deberías chegar á liña de comandos do shell do servidor.
Para obter unha guía detallada sobre a conexión mediante PuTTY/SSH, consulte Como conectarse a un servidor Linux mediante SSH.
Linux / macOS (terminal)
ssh root@your_IP
Todos os comandos seguintes execútanse no servidor, nesta mesma sesión SSH, que abrangue as seccións 2 a 6, ademais das comprobacións do servidor na sección 10. As seccións 7 a 9 (instalación e configuración do cliente VPN) realízanse no teu propio dispositivo Windows/Android/iOS, xa que ese é o dispositivo no que o proxy necesita executarse; cada unha desas seccións indica explicitamente que liñas, se é o caso, aínda están en contacto co servidor.
Preparación do servidor
Actualiza o sistema
Antes de instalar nada, actualiza a lista de paquetes e actualiza os paquetes instalados:
apt update -y && apt upgrade -y
Se a sesión se interrompe despois da actualización de apt, isto é o esperado (dbus/polkit reiniciouse); só tes que volver conectar a través de SSH.
Se isto actualiza o kernel, é boa idea reiniciar antes de continuar. (Para un repaso sobre apt e como funcionan os xestores de paquetes de Linux, consulta Xestores de paquetes de Linux ). Consulta con:
cat /var/run/reboot-required
Se o ficheiro existe, reinicie primeiro con 'reboot', agarde uns 30 segundos e logo volva conectar.
Instala as ferramentas que emprega esta guía
apt install -y curl wget unzip openssl ufw qrencode
O propio instalador de Xray precisa de Curl e Unzip; openssl xera o ID curto na Sección 4; ufw é o cortafuegos configurado a continuación; qrencode converte a ligazón do cliente finalizada nun código QR escaneable na Sección 7.
Comprobar o reloxo do sistema
O handshake de Reality inclúe unha comprobación de marca de tempo (o campo maxTimeDiff, desactivado por defecto pero que paga a pena coñecer) e un reloxo que se desviou notablemente tamén pode facer que a validación de certificados TLS ordinaria se comporte mal noutras partes do servidor. Confirma que o reloxo está sincronizado:
timedatectl status
Se "Reloxo do sistema sincronizado" mostra "non", habilíteo con:
timedatectl set-ntp true
Configurar o cortafuegos (UFW)
Para obter máis información sobre as regras de UFW, consulte Configuración do cortafuegos en Linux.
Abre os dous portos que precisarás: 22/tcp para SSH (se omites esta regra, corres o risco de perder o acceso ao servidor) e 443/tcp, o porto que escoitará Xray e o mesmo porto que usa o tráfico HTTPS normal, razón pola cal é a opción correcta para Reality.
ufw allow 22/tcp
ufw allow 443/tcp
ufw --force enable
ufw status
Ambas as regras deberían mostrarse como PERMITIR na saída de estado de ufw.
Instalación de Xray-core para o servidor de realidade VLESS
O proxecto Xray-core (XTLS) publica un script oficial de instalación e actualización que instala o binario como un servizo systemd. Revisa calquera script de terceiros antes de envialo a bash; este provén directamente do propio repositorio do proxecto.
bash -c "$(curl -L https://github.com/XTLS/Xray-install/raw/main/install-release.sh)" @ install
Verifica que o binario estea no seu lugar e comproba a versión instalada:
/usr/local/bin/xray version
Se a saída do comando está paginada e parece que se bloquea, prema Q para saír. O binario Xray está instalado para /usr/local/bin/xraye os seus ficheiros de configuración almacénanse en /usr/local/etc/xray/.
Tamén podes usar o mesmo script de instalación para actualizar unha instalación existente. Para obter unha lista completa de opcións (incluíndo a eliminación, as actualizacións só de xeodatos e a rotación de rexistros), executa:
bash -c "$(curl -L https://github.com/XTLS/Xray-install/raw/main/install-release.sh)" --help
Xeración das claves e credenciais
A autenticación da realidade baséase en catro datos. Xéreos todos agora; pegaraos na configuración do servidor na Sección 5.
Xerar un UUID para o cliente
/usr/local/bin/xray uuid
Este é o ID de usuario de VLESS; trátao como unha credencial, xa que é o que autentica un cliente no servidor. Executa o comando de novo para cada dispositivo ou persoa adicional á que queiras conceder acceso.
Xerar o par de claves Reality X25519
/usr/local/bin/xray x25519
Isto imprime tres liñas: PrivateKey , Password e Hash32 . PrivateKey só entra na configuración do servidor e nunca se debe compartir. Password é a clave pública correspondente; a pesar do nome, este é o valor que introduce cada cliente; Xray renomeou o campo de PublicKey a Password especificamente para disuadir á xente de publicalo de forma descoidada. Hash32 só se usa para a función de cifrado VLESS independente e non é necesario para unha configuración de Reality.
Xerar un ID curto
openssl rand -hex 8
Isto produce unha cadea hexadecimal de 16 caracteres que se usa para diferenciar diferentes clientes ou grupos de clientes. Tanto o servidor como o cliente deben usar o mesmo valor.
Escolle e proba un obxectivo de realidade
O obxectivo é o sitio web real cuxo protocolo de enlace TLS imita o teu servidor. Debería ser compatible con TLS 1.3 e HTTP/2, non debe estar detrás dunha CDN como Cloudflare (Xray reenvía calquera tráfico que falle a autenticación de Reality directamente ao obxectivo, polo que un obxectivo fronte a unha CDN pode converter o teu servidor nun retransmisor aberto para esa CDN) e, idealmente, estar aloxado aproximadamente na mesma rexión de rede que o teu VPS para obter un perfil de latencia plausible. Proba un candidato directamente desde o servidor:
/usr/local/bin/xray tls ping www.microsoft.com:443
Usa o nome de host simple, non un URL. Algúns dominios que se usan habitualmente como destinos de Reality porque son estables, compatibles con TLS 1.3 e non teñen CDN á fronte: www.microsoft.com, addons.mozilla.org, dl.google.com. Proba algúns e escolle un que responda de forma fiable desde a localización do teu VPS; usarás o mesmo nome de host tanto para o destino como para a entrada serverNames da Sección 5.
Escribir a configuración do servidor
Fai unha copia de seguridade da configuración que incluíu o instalador e, a seguir, abre o ficheiro para editalo:
cp /usr/local/etc/xray/config.json /usr/local/etc/xray/config.json.orig
nano /usr/local/etc/xray/config.json
Abre o ficheiro de configuración para editalo:
nano /usr/local/etc/xray/config.json
Substitúe o ficheiro enteiro polo modelo de embaixo, substituíndo o teu propio UUID, PrivateKey, ID curto e nome de host de destino da Sección 4 (e o porto que abriches na Sección 2, se o cambiaches 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" }
]
}
Prema Ctrl+O (Escribir fóra) para gardar o ficheiro.
Prema Intro para confirmar o nome do ficheiro.
Prema Ctrl+X para saír de nano.
Os campos importantes: users[].id é o UUID da Sección 4; users[].flow activa XTLS Vision; method (antes chamado network) selecciona o transporte RAW, o método simple baseado en TCP que require Reality; target e serverNames son o sitio que probaches na Sección 4; privateKey é a clave X25519 do lado do servidor, nunca o valor de Password; shortIds enumera todos os ID curtos que os clientes poden presentar. Para engadir máis usuarios máis tarde, engade obxectos adicionais á matriz de usuarios, cada un co seu propio UUID e etiqueta de correo electrónico e, a seguir, reinicia o servizo.
Desde a versión 26.3.27 de Xray, unha entrada de Reality sen un campo minClientVer explícito impón unha versión predeterminada do núcleo propio do servidor: as aplicacións cliente máis antigas (unha compilación v2rayN, v2rayNG ou Streisand desactualizada que inclúe un núcleo Xray máis antigo) redirixíense silenciosamente á páxina de reserva do destino en lugar de conectarse, sen ningún erro no cliente e sen ningún problema evidente no rexistro do servidor. Se un cliente que antes funcionaba se esgota repentinamente despois dunha actualización, primeiro tenta actualizar a propia aplicación cliente; se iso non é posible, engade "minClientVer": "25.9.11" (ou outra liña base máis antiga) dentro de realitySettings, a custo de facer que a pegada dixital TLS dese cliente máis antigo sexa un pouco menos consistente cun navegador moderno.
Validar e reiniciar
Proba a configuración antes de reiniciar o servizo en directo: isto detecta erros tipográficos en JSON e campos non compatibles antes de que desactiven o proxy:
/usr/local/bin/xray run -test -c /usr/local/etc/xray/config.json
Inicio do servizo e activación do inicio automático
Reinicie Xray coa nova configuración e active o arranque automático ao reiniciar:
systemctl enable --now xray
systemctl restart xray
systemctl status xray --no-pager
O estado debería mostrar activo (en execución). Confirma que algo está realmente escoitando no porto 443:
ss -lntp | grep ':443'
Se Xray non se inicia, a forma máis rápida de ver por que é o diario de systemd (para obter información sobre a lectura de rexistros de Linux en xeral, consulte Como ler rexistros de Linux e onde atopalos ):
journalctl -u xray -n 50 --no-pager
Construíndo a ligazón de conexión do cliente
Os clientes de Xray importan unha única ligazón compartida vless:// en lugar dun ficheiro de configuración. Compílaa a partir dos valores xerados na Sección 4 (o formato de ligazón compartida das aplicacións cliente aínda usa o nome antigo type=tcp para o transporte, aínda que o propio campo JSON agora se chama método):
O SEU UUID — do uuid de raios X (por exemplo, a1b2c3d4-e5f6-7890-abcd-ef1234567890)
O SEU-CONTRASINAL-CHAVE-PÚBLICA — é o contrasinal de xray x25519 (NON a Chave Privada!)
O SEU-ID-ACURTADO — de openssl rand -hex 8 (por exemplo, a1b2c3d4e5f67890)
o_teu_IP — (o IP do teu servidor)
SNI — www.microsoft.com (ou o teu destino)
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
Ligazón de exemplo:
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 é o valor do contrasinal de xray x25519 (a clave pública, nunca a clave privada), sni coincide co nome do host de destino e o texto despois de # é só unha etiqueta para mostrar que podes renomear libremente en calquera cliente.
Convérteo nun código QR para que os clientes móbiles poidan escanealo directamente:
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"
Ou imprímeo directamente no terminal sen gardar un ficheiro:
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"
Copia o PNG ao teu propio ordenador con scp, execútao desde o terminal do teu ordenador (ou PowerShell en Windows), non desde o servidor:
scp root@your_IP:~/vless-client.png .
Conectando desde Windows
Todo o contido desta sección ocorre no teu PC con Windows, non a través de SSH; o cliente ten que executarse no dispositivo que realmente usará o proxy.
Instalar v2rayN
v2rayN é un cliente de GUI gratuíto e mantido activamente que inclúe Xray-core, con soporte nativo para VLESS/Reality. Descarga a última versión da páxina do proxecto :
Colle o recurso .zip de Windows de 64 bits (unha compilación autónoma non precisa un tempo de execución .NET separado nas versións recentes de v2rayN), extráeo en calquera lugar e executa v2rayN.exe.
Importar o servidor
Copia a ligazón vless:// creada na Sección 7 ao teu portapapeis (ou copia o ficheiro QR PNG con scp e ábreo), despois en v2rayN escolle Servidores e despois Importar URL masivo desde o portapapeis (ou escanea o código QR mediante o escáner integrado). O novo perfil de servidor aparece na lista coa etiqueta que configuraches despois do #.
Fai clic co botón dereito no perfil e selecciónao como activo, despois activa o proxy do sistema (ou o modo TUN, para enrutar toda a máquina) desde a barra de ferramentas da xanela principal.
Conectando desde Android
Todo isto ocorre no teu dispositivo Android, non a través de SSH.
Instalar v2rayNG
v2rayNG é a contraparte para Android de v2rayN, do mesmo responsable do mantemento, e é o cliente Xray máis empregado en Android. Instálao desde Google Play ou descarga o APK directamente desde a páxina de versións do proxecto se Play non está dispoñible na túa rexión:
Importar o servidor
Abre v2rayNG, toca o botón + na parte superior dereita e escolle Importar configuración do portapapeis despois de copiar a ligazón vless:// ou Escanear código QR e apuntar a cámara ao PNG xerado na Sección 7. Toca o perfil importado para seleccionalo e, a seguir, toca o botón redondo de conexión na parte inferior. Android solicitará permiso de VPN a primeira vez: apróbao para establecer o túnel.
Conectando desde iOS
Todo isto ocorre no teu iPhone ou iPad, non a través de SSH. As directrices da App Store de Apple significan que os clientes de Xray/VLESS en iOS adoitan ser gratuítos, pero ás veces aplicacións independentes de pago en lugar dunha función integrada no sistema.
Instalar un cliente compatible con Reality
Streisand é un cliente gratuíto e de código aberto que admite VLESS con Reality, xunto con outros protocolos. Búscao na App Store ou abre esta ligazón.
Os catálogos da App Store varían segundo a tenda ou a rexión e poden cambiar co tempo; se Streisand non é visible na túa, as alternativas compatibles con VLESS+Reality inclúen Happ, V2Box e V2rayTun; busca na App Store calquera que estea dispoñible para a túa conta.
Importar o servidor
Copia a ligazón vless:// ao portapapeis, abre o cliente e usa a opción Engadir desde o portapapeis (ou unha opción equivalente de "importar") ou escanea o código QR da Sección 7 co escáner integrado do cliente. Activa o novo perfil; iOS solicitará permisos de configuración de VPN a primeira vez, que terás que aprobar mediante Face ID, Touch ID ou o teu contrasinal.
Verificando a conexión
Co túnel activo da Sección 8, 9 ou 10, volve ao teu propio dispositivo (non á sesión SSH) e abre calquera comprobador de "cal é o meu IP?" nun navegador; o enderezo que se mostra debería coincidir co enderezo IP do teu VPS.
Para verificar desde o lado do servidor, comproba o diario de systemd para ver se hai actividade de conexión e confirma unha sesión TCP establecida no porto 443:
journalctl -u xray -n 50 --no-pager
ss -tnp | grep ':443'
No nivel de rexistro predeterminado de "advertencia", Xray non imprime moito sobre as conexións individuais; se precisa ver máis detalles mentres soluciona problemas, defina temporalmente "loglevel": "info" en config.json e reinicie o servizo, logo volva a poñer o nivel de advertencia unha vez que todo funcione.
referencia:
|
Campo |
Valor |
|
dirección |
o enderezo IP público do teu VPS |
|
Porta |
443 (o mesmo porto aberto na Sección 2) |
|
UUID / id |
O SEU-UUID-AQUÍ — xerado na Sección 4 con uuid de raios X |
|
Fluxo |
xtls-rprx-vision — debe coincidir en ambos os dous lados |
|
seguridade |
realidade |
|
SNI / nome do servidor |
O nome do host de destino probado na Sección 4, por exemplo www.microsoft.com |
|
Pegada dixital (fp) |
Chrome: unha pegada dixital uTLS compatible; debe configurarse no cliente |
|
Clave pública / pbk |
O valor do contrasinal de xray x25519, nunca a clave privada. |
|
ID curto / sid |
Xerado con openssl rand -hex 8; debe coincidir cun valor en shortIds |
Conclusión
Seguir esta guía deixa o teu VPS executando o seu propio servidor Xray VLESS+Reality, disfrazado de tráfico HTTPS ordinario a un sitio web real, sen dominio nin certificado que manter. O servizo execútase como a unidade systemd xray e sobrevive a un reinicio sen ningunha acción da túa parte.
Engade novos clientes en calquera momento engadindo outro obxecto á matriz de usuarios en config.json cun UUID novo de xray uuid e unha etiqueta de correo electrónico distinta, logo reinicia o servizo (systemctl restart xray) e creando para ese usuario a súa propia ligazón compartida da Sección 7. Os UUID separados por persoa ou dispositivo permiten revogar un sen molestar a ninguén máis.
Algúns hábitos que paga a pena manter unha vez que o servidor estea funcionando:
- Mantén Xray actualizado. Reexecuta periodicamente o script de instalación da Sección 3 (actualiza unha instalación existente) e mantén actualizadas tamén as aplicacións cliente, dado o comportamento minClientVer indicado na Sección 5.
- Fai unha copia de seguridade do ficheiro config.json nalgún lugar privado fóra do servidor. Contén a clave privada de Reality do servidor e o UUID de cada cliente; perdelo significa rexenerar as credenciais para cada dispositivo.
- Revoga os dispositivos perdidos canto antes. Elimina a entrada correspondente da matriz de usuarios en config.json e reinicia o servizo.
Se a conexión non se establece, comprobe na seguinte orde:
- o estado do servizo (systemctl status xray --no-pager) e o diario (journalctl -u xray -n 50 --no-pager)
- as regras do cortafuegos (estado de ufw: o porto 443/tcp debe estar aberto)
- que o porto 443 non estea xa vinculado a outro servizo (ss -lntp | grep ':443' debería mostrar só raios X)
- que o UUID, a clave pública, o ID curto, o SNI e o fluxo no cliente coincidan exactamente con config.json: un único carácter non coincidente falla silenciosamente no handshake
- o propio obxectivo de Realidade, con ping TLS de raios X :443, no caso de que o sitio web cambiase a súa configuración TLS
¿ Estás a comparar Xray con outras opcións? Consulta a Guía de despregamento do servidor AmneziaWG e Como configurar Wireguard VPN no teu servidor para obter alternativas baseadas en WireGuard, ou a configuración de Hysteria2 e TUIC para outros dous protocolos resistentes á censura creados para redes con perdas ou moi filtradas. Se só necesitas un proxy sinxelo en lugar dunha configuración de túnel completa, a configuración de 3proxy en CentOS/ArchLinux é unha alternativa moito máis lixeira, e a configuración máis antiga do servidor VPN en Linux: PPTP ou OpenVPN? abrangue protocolos que son máis sinxelos de configurar pero moito máis fáciles de detectar e bloquear para DPI. Para o reforzo xeral do servidor unha vez que o proxy está activo, consulta Usuarios de Linux: Xestión e permisos.