Générateur de config VLESS + REALITY
Indiquez l'adresse de votre serveur et le site dont REALITY doit emprunter la poignée de main TLS. Le générateur crée la paire de clés X25519, l'UUID et le short ID, puis écrit les configs serveur et client correspondantes pour Xray-core ou sing-box, un lien vless:// à importer dans v2rayN, v2rayNG, Hiddify ou Shadowrocket, et les commandes d'installation. Les clés ne quittent jamais votre navigateur.
Tout se passe dans votre navigateur : clés, UUID et configs sont générés localement et ne sont envoyés nulle part.
L'IP publique de votre VPS (ou un domaine qui pointe dessus). Utilisée dans la config client et le lien de partage.
443 est la norme : REALITY imite le HTTPS.
Un site tiers en TLS 1.3 et HTTP/2, joignable depuis vos clients. Voir la liste de contrôle sous l'outil.
L'empreinte TLS que le client imite. chrome est le choix habituel.
La clé privée va uniquement sur le serveur. La clé publique va à chaque client.
Hexadécimal, longueur paire, 16 caractères au plus.
- Les clés manquent ou sont invalides (32 octets, base64url, 43 caractères). Générez une paire ou collez la vôtre.
Lien de partage vless://
vless://@203.0.113.10:443?encryption=none&flow=xtls-rprx-vision&security=reality&sni=www.example.com&fp=chrome&pbk=&sid=&type=tcp&headerType=none#my-reality
Importez-le dans v2rayN, v2rayNG, Hiddify, Streisand ou Shadowrocket, ou scannez le QR code.
{
"log": {
"loglevel": "warning"
},
"inbounds": [
{
"listen": "0.0.0.0",
"port": 443,
"protocol": "vless",
"settings": {
"clients": [
{
"id": "",
"flow": "xtls-rprx-vision",
"email": "my-reality"
}
],
"decryption": "none"
},
"streamSettings": {
"network": "tcp",
"security": "reality",
"realitySettings": {
"show": false,
"target": "www.example.com:443",
"xver": 0,
"serverNames": [
"www.example.com"
],
"privateKey": "",
"shortIds": [
""
]
}
},
"sniffing": {
"enabled": true,
"destOverride": [
"http",
"tls",
"quic"
],
"routeOnly": true
}
}
],
"outbounds": [
{
"protocol": "freedom",
"tag": "direct"
},
{
"protocol": "blackhole",
"tag": "block"
}
]
}{
"log": {
"loglevel": "warning"
},
"inbounds": [
{
"listen": "127.0.0.1",
"port": 10808,
"protocol": "socks",
"settings": {
"udp": true
}
},
{
"listen": "127.0.0.1",
"port": 10809,
"protocol": "http"
}
],
"outbounds": [
{
"protocol": "vless",
"tag": "proxy",
"settings": {
"vnext": [
{
"address": "203.0.113.10",
"port": 443,
"users": [
{
"id": "",
"flow": "xtls-rprx-vision",
"encryption": "none"
}
]
}
]
},
"streamSettings": {
"network": "tcp",
"security": "reality",
"realitySettings": {
"serverName": "www.example.com",
"fingerprint": "chrome",
"publicKey": "",
"shortId": "",
"spiderX": "/"
}
}
},
{
"protocol": "freedom",
"tag": "direct"
}
]
}# Installer Xray-core avec le script officiel (service systemd inclus)
bash -c "$(curl -L https://github.com/XTLS/Xray-install/raw/main/install-release.sh)" @ install
# Facultatif : vérifier que la clé publique correspond à la clé privée
xray x25519 -i ""
# Vérifier que la cible répond en TLS 1.3 et HTTP/2
xray tls ping www.example.com
# Ouvrir le port
sudo ufw allow 443/tcp
# Coller la config serveur, la tester, puis démarrer le service
sudo nano /usr/local/etc/xray/config.json
xray run -test -c /usr/local/etc/xray/config.json
sudo systemctl restart xray && sudo systemctl enable xray
# Suivre le journal pendant la connexion du premier client
sudo journalctl -u xray -f
REALITY demande un serveur que vous contrôlez
Un serveur REALITY, c'est un VPS avec une IP publique et le port 443 libre, rien de plus. Le VPS d'entrée de gamme de Contabo inclut une IPv4 publique, l'accès root et un gros volume de trafic, et vous choisissez le datacenter le plus proche de vos utilisateurs.
Lien affilié : nous pouvons toucher une commission, sans surcoût pour vous. Le générateur reste gratuit et n'en dépend pas.
Le rôle de chaque valeur, et pourquoi elles doivent concorder
REALITY remplace le certificat TLS dont vous auriez normalement besoin. Votre serveur répond sur le port 443 comme le vrai site choisi comme cible : un censeur qui se connecte sans les bons identifiants reçoit la poignée de main et les pages du site authentique, relayées par votre serveur. Seul un client qui connaît la clé publique du serveur et un short ID valide termine la poignée de main du proxy.
D'où quatre valeurs qui doivent concorder des deux côtés. La clé privée reste sur le serveur, la clé publique va à chaque client. Le site cible doit figurer comme destination (target, ou dest dans les anciens guides ; handshake.server dans sing-box) et dans les noms de serveur acceptés, et le client l'envoie en SNI. Le short ID envoyé par le client doit faire partie de la liste du serveur. L'UUID identifie l'utilisateur, et xtls-rprx-vision doit être réglé des deux côtés, sinon la connexion est refusée.
Les configs ci-dessous s'en tiennent aux champs documentés : pas d'options sniff de sing-box dépréciées dans l'inbound, pas de transport superflu. Ajoutez des règles de routage ou d'autres utilisateurs une fois le tunnel de base fonctionnel.
Choisir le site cible : la liste de contrôle
La cible compte plus que tout autre champ, et aucun outil ne peut la choisir à votre place. Voici les points à vérifier avant de vous décider.
| Point | Pourquoi c'est important | Comment vérifier |
|---|---|---|
| TLS 1.3 et HTTP/2 | REALITY a besoin d'une poignée de main TLS 1.3 à imiter | xray tls ping <hôte>, ou curl -I --tlsv1.3 --http2 |
| Non bloqué là où sont vos clients | Une cible bloquée fait passer votre serveur pour un site bloqué | Ouvrez-la depuis le réseau du client, sans proxy |
| Plausible depuis le réseau du serveur | Un petit VPS qui sert la page d'accueil d'un géant se remarque ; un hôte chez le même fournisseur ou dans la même région se fond mieux | Comparez la localisation IP de la cible et le datacenter de votre VPS |
| Pas de redirection vers un autre domaine | Le SNI doit correspondre au certificat réellement servi par la cible | curl -sI https://<hôte> et cherchez un en-tête Location |
| Pas votre propre domaine | Le but est de ressembler au vrai trafic de quelqu'un d'autre | Choisissez un site tiers que vous ne contrôlez pas |
Contourner des restrictions réseau est encadré ou interdit dans certains pays. Vérifiez ce qui s'applique là où vous et vos utilisateurs vous trouvez.