La dernière version de V2ray en 2023 utilise le double WS+TLS pour construire un tunnel pour percer le blindage et les interférences !
2022-11-28 · 58509 · 34 min# 前言
Pendant ce temps, pour des raisons bien connues, le nœud V2ray que j’ai construit dans Tencent Cloud a inexplicablement commencé à bloquer les ports. Voici mon diagramme de topologie réseau :
Au début, j’ai également changé de port en réponse au verrouillage inexplicable. Plus tard, la vitesse de blocage est devenue de plus en plus rapide, et dès qu’il a été configuré, il ne pouvait pas être utilisé immédiatement, de sorte qu’il pouvait essentiellement être déterminé que le schéma d’utilisation de V2ray via le protocole TCP pur avait été déclaré mort.
# 发现& Résoudre le problème
Après mon analyse minutieuse, j’ai constaté que l’adresse IP du serveur n’était pas sur liste noire. Cependant, tant que le tunnel construit par le protocole TCP pur de V2ray est démarré, il peut être utilisé normalement en quelques minutes, mais lorsque le temps est écoulé, il ne peut pas être connecté.
Bien que GFW bloque toujours mes ports, je peux le combattre en changeant constamment de port, mais changer de port si fréquemment n’est pas une solution élégante.
J’ai donc fait des recherches et essayé de construire WS+TLS, et la stabilité était agréable lorsqu’on y accédait sur le continent, et le diagramme de topologie est le suivant:
V2ray permet l’utilisation du protocole TLS pour shell le trafic de sorte que lorsque le GFW sonne, il se comporte comme une connexion normale.
Afin de l’utiliser plus facilement et de réduire la latence, j’ai utilisé une conception double WS + TLS, le diagramme de topologie est le suivant:
Après une telle poupée matriochka multicouche, le trafic entrant de la machine de transit sur le continent est déjà chiffré par TLS lors du passage par GFW, et déchiffré en sortant une fois que le trafic atteint l’agent, en tenant compte à la fois de la sécurité et de la vitesse. Voici mon tutoriel de préparation.
# 如何搭建双重WS+TLS
Il y a plus d’étapes ici, et les étapes avant et après doivent être couplées, donc je l’ai divisé en trois étapes, et j’ai juste besoin de suivre les étapes sans problèmes. Cependant, n’oubliez pas que les informations de configuration doivent être vérifiées plusieurs fois.
Nécessité de préparer : ✅Patience. ✅Certificat SSL ✅ Avions d’agents étrangers en Chine continentale ✅ Avions spéciaux de taille moyenne en Chine continentale
1. Obtenir un certificat SSL
Cette étape que vous devez faire en fonction de la situation réelle, j’utilise le DNSPod le plus simple ici. Comment enregistrer un compte Tencent Cloud, je n’entrerai pas dans les détails, allez directement sur la page du certificat SSL de la console (marquée d’un astérisque):
Si vous ne le trouvez pas, vous pouvez également cliquer sur le lien: https://console.cloud.tencent.com/ssl
Cliquez sur Mes certificats sur le côté gauche de la page qui s’ouvre, puis cliquez sur [Demander un certificat gratuit] (dans la zone rouge) :
Sélectionnez Asia Integrity sur la gauche, cliquez sur OK pour continuer :
Remplissez correctement la case rouge selon vos propres informations:
Une fois que vous avez tout rempli, cliquez sur Soumettre la demande. Après avoir attendu un certain temps, l’examen passera et, si l’audit échoue, une invite d’erreur détaillée s’affichera, qui peut être modifiée en fonction de l’invite.
Lorsque l’examen est réussi, vous pouvez voir le certificat tel qu’il a réussi l’audit sur la page [Mes certificats], cliquez sur le bouton de téléchargement à droite :
Sur la page contextuelle, cliquez sur le bouton de téléchargement dans la section Nginx:
Après avoir extrait le package compressé téléchargé, recherchez les deux fichiers dans la zone rouge, qui sont les fichiers de certificat ** dont nous aurons besoin plus tard.
2. Configuration de l’agent
Après avoir terminé les étapes ci-dessus, nous avons le certificat en main, puis nous pouvons déployer l’agent de débogage. J’utilise le nœud léger coréen de Tencent Cloud 2c2G ici, et le nœud de Hong Kong n’a plus le léger le moins cher à acheter. Quant à savoir comment se connecter au serveur, vous pouvez utiliser n’importe quel outil ssh, je ne présenterai pas grand-chose.
2.1 Installer v2ray
Tout d’abord, il est normal d’installer V2ray, car il peut accéder directement à Internet sur l’agent, vous pouvez directement utiliser le code suivant pour installer rapidement: '''HTML Installer v2ray bash <(curl -L https://raw.githubusercontent.com/v2fly/fhs-install-v2ray/master/install-release.sh)
Installez geoip.dat et geosite.dat bash <(curl -L https://raw.githubusercontent.com/v2fly/fhs-install-v2ray/master/install-dat-release.sh)
Ajoutez V2ray aux services système et définissez le démarrage :
systemctl activer v2ray && systemctl démarrer v2ray
#### 2.2 Installez Nginx
Ensuite, nous devons installer le composant Nginx pour gérer le trafic TLS et le décrypter en V2ray. J’utilise un script en un clic fourni par LNMP ici, mais nous n’avons pas besoin de mysql et php, juste de Nginx.
Étant donné que la compilation et l’installation prennent un certain temps, pendant lequel la connexion ssh peut être déconnectée en raison d’interférences GFW, nous devons utiliser screen pour garder le processus de compilation ininterrompu et utiliser le code suivant pour activer l’écran:
écran -S nginx
Si vous dites que votre système n’a pas d’écran installé, installez-le:
sudo apt-get install screen -y
Après l’ouverture, nous entrons la commande suivante sur la ligne de commande pour installer nginx, le script doit fonctionner pendant un certain temps, cette fois, vous pouvez prendre une tasse de café ou regarder d’autres articles ☺ que j’ai écrits
wget http://soft.vpser.net/lnmp/lnmp1.9.tar.gz -cO lnmp1.9.tar.gz && tar zxf lnmp1.9.tar.gz && cd lnmp1.9 && ./install.sh nginx
#### 2.3 Configurer les certificats SSL
S’il n’y a pas d’erreurs dans les étapes ci-dessus, Nginx a été installé, et nous devons ensuite configurer le certificat SSL.
Utilisez d’abord votre logiciel sftp habituel pour importer le fichier de certificat sur le serveur, j’utilise termius ici, après avoir importé le fichier, utilisez la commande 'ls' dans le répertoire pour vérifier si le fichier existe.
Ls test.learn2.cn.key test.learn2.cn_bundle.pem
Ensuite, ajoutez un site Web à l’aide de lnmp et configurez le certificat SSL :
'''HTML
lnmp vhost ajouter
+-------------------------------------------+
| Manager pour LNMP, Écrit par Licess |
+-------------------------------------------+
| https://lnmp.org |
+-------------------------------------------+
Veuillez saisir le domaine (exemple: www.lnmp.org): test.learn2.cn
Votre domaine : test.learn2.cn
Entrez plus de nom de domaine (exemple: lnmp.org sub.lnmp.org):
Liste des domaines : test.learn2.cn
Veuillez entrer le répertoire du domaine : test.learn2.cn
Répertoire par défaut : /home/wwwroot/test.learn2.cn :
Répertoire hôte virtuel : /home/wwwroot/test.learn2.cn
Autoriser la règle de réécriture ? (o/n)
Vous choisissez réécrire : aucun
Activer PHP Pathinfo? (o/n)
Désactivez pathinfo.
Autoriser le journal d’accès? (o/n)
Désactivez le journal d’accès.
Activer IPv6 ? (o/n)
Prise en charge IPv6 désactivée dans l’hôte virtuel actuel.
Ajouter un certificat SSL (o/n) y
1: Utilisez votre propre certificat SSL et votre propre clé
2: Utilisez Let’s Encrypt pour créer un certificat SSL et une clé
3: Utilisez BuyPass pour créer un certificat SSL et une clé
4: Utilisez ZeroSSL pour créer un certificat SSL et une clé
Entrez 1, 2, 3 ou 4: 1
Veuillez entrer le chemin d’accès complet au fichier de certificat SSL:
Veuillez entrer le chemin d’accès complet au fichier de clé de certificat SSL:
Le nom de domaine est entré en fonction de l’entrée réelle, suivi d’un retour chariot, remplissez Y à la fin de 'Ajouter un certificat SSL', les deux parties d’entrée suivantes, remplissez complètement le chemin du fichier de certificat, la première est le fichier pem, la seconde est le fichier clé, puis vous pouvez entrer directement. Il le configurera automatiquement pour vous.
2.4 Modifier le fichier de configuration du site Web
Pour le moment, bien que le certificat SSL soit configuré, il n’est pas possible d’utiliser 'httpss://+ip' car nous n’avons pas configuré la résolution de nom de domaine. Ici, selon le fournisseur de services de nom de domaine que vous utilisez, la méthode d’opération est différente, il vous suffit d’ajouter un enregistrement, c’est-à-dire de résoudre le nom de domaine à l’adresse IP du proxy.
Enfin, nous devons modifier le fichier de configuration du site Web pour décrypter les paquets reçus et les transmettre à V2ray.
Ouvrez le fichier de configuration du site Web en utilisant votre éditeur de texte habituel, et j’utilise 'nano' pour ma démo ici:
nano /usr/local/nginx/conf/vhost/ votre domaine.conf
Après avoir ouvert avec l’éditeur nano, appuyez sur les touches fléchées pour rechercher une ligne similaire au champ suivant.
ssl_dhparam /usr/local/nginx/conf/ssl/dhparam.pem;
Une fois trouvé, collez le code en dessous.
'''HTML emplacement /ray { proxyredirect éteint; proxypass http://127.0.0.1:10000; proxyhttpversion 1,1; proxysetheader Mise à niveau $httpupgrade; proxysetheader « mise à niveau » de la connexion; proxysetheader $host d’accueil; # Afficher l’adresse IP réelle dans l’accès v2ray.log proxysetheader X-Real-IP $remoteaddr; proxysetheader X-Forwarded-For $proxyaddxforwardedfor; }
Enfin, modifiez ensuite le port de SSL de 443 à 10001:
serveur { écouter 10001 SSL http2;
Certains novices peuvent ne pas le comprendre, vous pouvez donc insérer le code selon l’image suivante:
![](https://pic.saltyleo.com/i/171082811661.webp)
Enfin, après avoir enregistré le fichier, redémarrez Nginx avec la commande: 'lnmp reload'.
#### 2.5 Configurer le fichier de configuration entrant V2ray
Ensuite, nous configurons le fichier de configuration entrant pour l’agent. La première consiste à obtenir un GUID, qui peut être compris comme la clé lors de la connexion à V2ray.
Il existe un site Web en ligne qui peut être généré directement : [GUID Generation Tool] (https://www.iamwawa.cn/guid.html)
Ensuite, ouvrez le fichier de configuration en utilisant votre éditeur habituel, et je continuerai à utiliser nano comme démonstration ici:
nano /usr/local/etc/v2ray/config.json
Copiez et collez le code suivant dans le fichier 'config.json' et remplissez le GUID généré précédemment dans l’id.
{ « entrants »: [ { « port »: 10000, « écouter »:"127.0.0.1 », « protocole »: « vmess », « paramètres »: { « clients »: [ { « id »: « Remplissez le GUID généré ici », « alterId »: 64 } ] }, « streamSettings »: { « réseau »: « ws », « wsSettings »: { « chemin »: « /rayon » } } } ], « sortants »: [ { « protocole »: « liberté », « paramètres »: {} } ] }
Enregistrez le fichier et redémarrez V2ray :
Redémarrage du service v2ray
Après le redémarrage de V2ray, utilisez la commande 'service v2ray status' pour vérifier l’état de V2ray :
![](https://pic.saltyleo.com/i/171082852088.webp)
Tant que la barre Active ne signale pas d’erreur, cela signifie que V2ray démarre normalement.
#### Test 2.6
Tout d’abord, nous devons confirmer les points suivants, et après confirmation, nous pouvons utiliser un outil tel que V2rayN pour tester la connexion.
**La résolution du nom de domaine est-elle terminée ? **
** Le fichier de configuration de Nginx est-il enregistré et redémarré? **
**Le fichier de configuration de V2ray est-il enregistré et redémarre-t-il ? **
Si tout est confirmé, vous pouvez entrer dans la session de test.
Testez d’abord si Nginx fonctionne, utilisez un navigateur pour accéder à 'https:// votre domaine' Si tout est en ordre, ce devrait être l’image ci-dessous:
![](https://pic.saltyleo.com/i/171082898654.webp)
À côté de tester si V2ray fonctionne, utilisez un navigateur pour accéder à 'https:// votre domaine/rayon' Si tout va bien, cela devrait être comme indiqué dans l’image suivante:
![](https://pic.saltyleo.com/i/171082904730.webp)
Si tout est OK, copiez le code suivant :
vmess: ew0KICAidiI6ICIyIiwNCiAgInBzIjogIuS7o+eQhuacuua1i+ivlSIsDQogICJhZGQiOiAi5L2g55qE5Z+ f5ZCNIiwNCiAgInBvcnQiOiAiNDQzIiwNCiAgImlkIjogIuS9oOeahEdVSUQiLA0KICAiYWlkIjogIjAiLA0KICAic2N5IjogImF1dG8iLA0KICAibmV0IjogIndzIiwNCiAgInR5cGUiOiAibm9uZSIsDQogICJob3N0IjogIuS9oOeahOWfn +WQjSIsDQogICJwYXRoIjogIi9yYXkiLA0KICAidGxzIjogInRscyIsDQogICJzbmkiOiAiIg0KfQ==
Ouvrez V2rayN 》Cliquez sur Importer le serveur à partir du presse-papiers pour importer le fichier de configuration.
![](https://pic.saltyleo.com/i/171082802890.webp)
Double-cliquez sur le test de l’agent, modifiez les paramètres de la fenêtre contextuelle en fonction de vos paramètres, puis enregistrez.
![](https://pic.saltyleo.com/i/171082777824.webp)
Enfin, ouvrez YouTube et testez pour voir si vous pouvez déjà utiliser TLS monocouche.
### 3. Configuration du transit
Les machines de transit domestiques ne peuvent pas accéder à GitHub, donc sa méthode d’installation de v2ray est différente, allez d’abord sur GitHub pour télécharger le package d’installation hors ligne de v2ray:
v2ray-core: [https://github.com/v2fly/v2ray-core/releases](https://github.com/v2fly/v2ray-core/releases)
Trouvez le fichier 'v2ray-linux-64.zip', téléchargez-le et enregistrez-le dans le transfert.
#### 3.1 Installer v2ray
À l’étape précédente, le package d’installation hors connexion a été enregistré sur la machine de transit, mais vous avez toujours besoin d’un script d’installation, utilisez la commande suivante pour télécharger le script d’installation :
WGET https://s.learn2.cn/file/install-release.sh
Installez v2ray hors ligne à l’aide de la commande suivante :
bash install-release.sh --local ./v2ray-linux-64.zip
Ajoutez V2ray aux services système et définissez le démarrage :
systemctl activer v2ray && systemctl démarrer v2ray
#### 3.2 Installez nginx
Les mêmes étapes que la machine proxy, je vais la coller:
Utilisez le code suivant pour activer l’écran :
écran -S nginx
Si vous dites que votre système n’a pas d’écran installé, installez-le:
sudo apt-get install screen -y
Après l’ouverture, nous entrons la commande suivante sur la ligne de commande pour installer nginx, le script doit fonctionner pendant un certain temps, cette fois, vous pouvez prendre une tasse de café ou regarder d’autres articles que j’ai écrits ~
wget http://soft.vpser.net/lnmp/lnmp1.9.tar.gz -cO lnmp1.9.tar.gz && tar zxf lnmp1.9.tar.gz && cd lnmp1.9 && ./install.sh nginx
#### 3.3 Configurer les certificats SSL
Cette étape est toujours la même que la machine proxy.
Utilisez votre logiciel sftp habituel pour importer le fichier de certificat sur le serveur, j’utilise termius ici, après avoir importé le fichier, utilisez la commande 'ls' dans le répertoire pour vérifier si le fichier existe.
Ls test.learn2.cn.key test.learn2.cn_bundle.pem
Ensuite, ajoutez un site Web à l’aide de lnmp et configurez le certificat SSL :
'''HTML
lnmp vhost ajouter
+-------------------------------------------+
| Manager pour LNMP, Écrit par Licess |
+-------------------------------------------+
| https://lnmp.org |
+-------------------------------------------+
Veuillez saisir le domaine (exemple: www.lnmp.org): test.learn2.cn
Votre domaine : test.learn2.cn
Entrez plus de nom de domaine (exemple: lnmp.org sub.lnmp.org):
Liste des domaines : test.learn2.cn
Veuillez entrer le répertoire du domaine : test.learn2.cn
Répertoire par défaut : /home/wwwroot/test.learn2.cn :
Répertoire hôte virtuel : /home/wwwroot/test.learn2.cn
Autoriser la règle de réécriture ? (o/n)
Vous choisissez réécrire : aucun
Activer PHP Pathinfo? (o/n)
Désactivez pathinfo.
Autoriser le journal d’accès? (o/n)
Désactivez le journal d’accès.
Activer IPv6 ? (o/n)
Prise en charge IPv6 désactivée dans l’hôte virtuel actuel.
Ajouter un certificat SSL (o/n) y
1: Utilisez votre propre certificat SSL et votre propre clé
2: Utilisez Let’s Encrypt pour créer un certificat SSL et une clé
3: Utilisez BuyPass pour créer un certificat SSL et une clé
4: Utilisez ZeroSSL pour créer un certificat SSL et une clé
Entrez 1, 2, 3 ou 4: 1
Veuillez entrer le chemin d’accès complet au fichier de certificat SSL:
Veuillez entrer le chemin d’accès complet au fichier de clé de certificat SSL:
Le nom de domaine est entré en fonction de l’entrée réelle, suivi d’un retour chariot, remplissez Y à la fin de 'Ajouter un certificat SSL', les deux parties d’entrée suivantes, remplissez complètement le chemin du fichier de certificat, la première est le fichier pem, la seconde est le fichier clé, puis vous pouvez entrer directement. Il le configurera automatiquement pour vous.
3.4 Modifier le fichier de configuration du site Web
Cette étape est très différente de la machine proxy, car nous utilisons le même certificat SSL ici, mais un nom de domaine ne peut pas résoudre deux adresses IP en même temps, de sorte que notre machine de transit domestique n’a pas besoin d’être résolue. Utilisez l’adresse IP lors du remplissage des paramètres de connexion et ignorez la vérification du certificat Sélectionnez Vrai.
Ouvrez le fichier de configuration du site Web en utilisant votre éditeur de texte habituel, et j’utilise 'nano' pour ma démo ici:
nano /usr/local/nginx/conf/vhost/ votre domaine.conf
Après avoir ouvert avec l’éditeur nano, appuyez sur les touches fléchées pour rechercher une ligne similaire au champ suivant.
ssl_dhparam /usr/local/nginx/conf/ssl/dhparam.pem;
Une fois trouvé, collez le code en dessous.
emplacement /ray {
proxy_redirect éteint;
proxy_pass http://127.0.0.1:10000;
proxy_http_version 1,1;
proxy_set_header Mise à niveau $http_upgrade;
proxy_set_header « mise à niveau » de la connexion;
proxy_set_header $host d’accueil;
# Afficher l’adresse IP réelle dans l’accès v2ray.log
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
Enfin, modifiez ensuite le port de SSL de 443 à 10001:
serveur
{
écouter 10001 SSL http2;
Certains novices peuvent ne pas le comprendre, vous pouvez donc insérer le code selon l’image suivante:
Enfin, après avoir enregistré le fichier, redémarrez Nginx avec la commande: 'lnmp reload'.
3.5 Configurer les fichiers de configuration entrants et sortants V2ray
Afin de simplifier les choses ici, j’ai conservé le GUID cohérent avec l’agent dans cette étape, et vous pouvez également utiliser le nouveau GUID.
Ouvrez le fichier de configuration en utilisant votre éditeur habituel, et je continuerai à utiliser nano comme démonstration ici:
nano /usr/local/etc/v2ray/config.json
Copiez et collez le code suivant dans le fichier 'config.json' et remplissez le GUID généré précédemment dans l’id.
{
« entrants »: [
{
« port »: 10000,
« écouter »:"127.0.0.1 »,
« protocole »: « vmess »,
« paramètres »: {
« clients »: [
{
« id »: « Remplissez le GUID généré ici »,
« alterId »: 64
}
]
},
« streamSettings »: {
« réseau »: « ws »,
« wsSettings »: {
« chemin »: « /rayon »
}
}
}
],
« sortants »: [ {
« tag »: « proxy »,
« protocole »: « vmess »,
« paramètres »: {
« vnext »: [
{
« adresse » : « nom de domaine de l’agent »,
« port »: 10001,
« utilisateurs »: [
{
« id »: « Remplissez le GUID généré ici »,
« alterId »: 0,
« sécurité »: « auto »
}
]
}
]
},
« streamSettings »: {
« réseau »: « ws »,
« sécurité »: « tls »,
« tlsSettings »: {
« allowInsecure »: true,
« serverName » : « Le nom de domaine de l’agent »
},
« wsSettings »: {
« chemin »: « /rayon »,
« en-têtes »: {
« Hébergeur » : « Le nom de domaine de l’agent »
}
}
}
},
{
« protocole »: « liberté »,
« paramètres »: {}
}
]
}
Enregistrez le fichier et redémarrez V2ray :
Redémarrage du service v2ray
Après le redémarrage de V2ray, utilisez la commande 'service v2ray status' pour vérifier l’état de V2ray :
Tant que la barre Active ne signale pas d’erreur, cela signifie que V2ray démarre normalement.
3.6 Test
Encore une fois, comme auparavant, si rien ne va pas, vous pouvez commencer à tester.
Copiez le code suivant :
vmess: ew0KICAidiI6ICIyIiwNCiAgInBzIjogIuS7o+eQhuacuua1i+ivlSIsDQogICJhZGQiOiAi5L2g55qE5Z+ f5ZCNIiwNCiAgInBvcnQiOiAiNDQzIiwNCiAgImlkIjogIuS9oOeahEdVSUQiLA0KICAiYWlkIjogIjAiLA0KICAic2N5IjogImF1dG8iLA0KICAibmV0IjogIndzIiwNCiAgInR5cGUiOiAibm9uZSIsDQogICJob3N0IjogIuS9oOeahOWfn +WQjSIsDQogICJwYXRoIjogIi9yYXkiLA0KICAidGxzIjogInRscyIsDQogICJzbmkiOiAiIg0KfQ==
Ouvrez V2rayN 》Cliquez sur Importer le serveur à partir du presse-papiers pour importer le fichier de configuration.
Double-cliquez sur le test de l’agent, modifiez les paramètres de la fenêtre contextuelle en fonction de vos paramètres, puis enregistrez.
Enfin, ouvrez YouTube pour tester votre vitesse Internet.
# Post-scriptum
À ce stade, vous devriez déjà être en mesure d’utiliser le double proxy TLS + WS, et vous pouvez profiter de l’expérience Internet avec presque aucune interférence. Mais de cette façon, votre vitesse Internet globale est la vitesse de téléchargement la plus élevée de la machine proxy domestique, je suis ici 30M, bien que ce ne soit pas très élevé, mais une utilisation normale est toujours suffisante.
Avis de droit d'auteur :
Cet article est écrit par SaltyLeo. Si le contenu comporte des erreurs, veuillez laisser un commentaire. Lors de la reprise ou de la citation de cet article, veuillez respecter la licence CC BY-NC-SA en indiquant la source, en utilisant à des fins non commerciales et en partageant de la même manière !Commentaire :
Lire la suite :
Vous apprendre à déployer l'outil de tatouage en ligne open source sur GitHub.
Utiliser pip pour installer
Idées de scripts par lots pour la copie de fichiers par lots
Pour confirmer le problème de version
Faites l'expérience sans publicités d'adhésion, profitez de médias en streaming haute définition 4K.
Table des matières
Balises populaires
Informations sur le site
Balises: 164
Vues de page: 12,888,652
temps de chargement: 14.43 ms
Ver : 3.0.1