2023 年の最新バージョンの V2ray は、デュアル WS+TLS を使用してトンネルを構築し、シールドと干渉を突破します!
2022-11-28 · 58508 · 3 min# 前言
この間、よく知られている理由で、Tencent Cloudに構築したV2rayノードが不可解にポートをブロックし始めました。 これが私のネットワークトポロジ図です:
最初は、不可解な封鎖に対応してポートも変更しました。 その後、ブロッキングの速度はどんどん速くなり、設定するとすぐには使えなくなったため、基本的には純粋なTCPプロトコルを介してV2rayを使用するスキームがデッドと宣言されたと判断できました。
# 发现& 問題を解決する
注意深く分析した結果、サーバーIPがブラックリストに登録されていないことがわかりました。 ただし、V2rayの純粋なTCPプロトコルで構築されたトンネルが開始されている限り、数分で正常に使用できますが、時間切れになると接続できなくなります。
GFWは常に私のポートをブロックしますが、ポートを絶えず変更することでそれと戦うことができますが、ポートを頻繁に変更することはエレガントな解決策ではありません。
そこで調べてWS+TLSを構築してみたところ、本土でアクセスすると安定性が良く感じられ、トポロジ図は次のようになります。
V2rayでは、TLSプロトコルを使用してトラフィックをシェル化できるため、GFWプローブ時に通常の接続のように動作します。
よりスムーズに使用し、遅延を減らすために、WS + TLSのデュアル設計を使用し、トポロジ図は次のとおりです。
このような多層マトリョーシカ人形の後、本土のトランジットマシンのインバウンドトラフィックは、GFWを通過するときにTLSによって暗号化され、トラフィックがエージェントに到達した後にアウトバウンドで復号化され、セキュリティと速度の両方を考慮して復号化されます。 これが私のランナップチュートリアルです。
# 如何搭建双重WS+TLS
ここにはさらに多くのステップがあり、前後のステップを結合する必要があるため、3つのステップに分割し、問題なく手順に従う必要があります。 ただし、構成情報は複数回確認する必要があることに注意してください。
準備する必要があります: ✅辛抱。 ✅SSL 証明書 ✅ 中国本土の海外エージェント機 ✅ 中国本土の中型特殊機
1. SSL 証明書を取得する
実際の状況に応じて実行する必要があるこの手順では、ここで最も単純なDNSPodを使用しています。 Tencent Cloudアカウントを登録する方法については、詳細には触れず、コンソールSSL証明書ページ(アスタリスクでマークされています)に直接アクセスします。
見つからない場合は、https://console.cloud.tencent.com/sslのリンクをクリックすることもできます。
開いたページの左側にある[マイ証明書]をクリックし、無料証明書を申請をクリックします。
左側で[アジアの整合性]を選択し、[OK]をクリックして続行します。
自分の情報に従って赤いボックスに正しく記入してください。
すべて入力したら、[申請書の送信]をクリックします。 しばらく待つとレビューに合格し、監査が失敗した場合は、プロンプトに従って変更できる詳細なエラープロンプトが表示されます。
レビューに合格すると、[マイ証明書]ページで監査に合格した証明書を確認し、右側のダウンロードボタンをクリックします。
ポップアップページで、Nginxセクションのダウンロードボタンをクリックします。
ダウンロードした圧縮パッケージを抽出した後、赤いボックスで2つのファイルを見つけます, これは後で必要になる**証明書ファイルです.
2. エージェントの設定
上記の手順を完了すると、証明書が手元に用意され、デバッグ エージェントをデプロイできます。 ここではTencent Cloud 2c2Gの韓国の軽量ノードを使用していますが、香港のノードには購入できる最も安価な軽量がなくなりました。 サーバーへのログイン方法については、任意のsshツールを使用できますが、あまり紹介しません。
2.1 v2ray のインストール
まず、V2rayをインストールするのが普通です、それはエージェント上のインターネットに直接アクセスすることができるので、あなたはすぐにインストールするために直接次のコードを使うことができます: '''HTML v2ray をインストールする バッシュ<(カール-L https://raw.githubusercontent.com/v2fly/fhs-install-v2ray/master/install-release.sh)
geoip.datとジオサイトをインストールします.dat バッシュ<(カール-L https://raw.githubusercontent.com/v2fly/fhs-install-v2ray/master/install-dat-release.sh)
V2ray をシステム サービスに追加し、ブート スタートアップを設定します。
systemctl enable v2ray && systemctl start v2ray
#### 2.2 Nginxをインストールする
次に、NginxコンポーネントをインストールしてTLSトラフィックを処理し、V2rayに復号化する必要があります。 ここではLNMPが提供するワンクリックスクリプトを使用していますが、mysqlとphpは必要なく、Nginxだけです。
コンパイルとインストールには一定の時間がかかり、その間はGFW干渉によりssh接続が切断される可能性があるため、screenを使用してコンパイルプロセスを中断しないようにし、次のコードを使用してscreenを有効にする必要があります。
スクリーン-S nginx
システムにscreenがインストールされていないと言う場合は、インストールします。
sudo apt-get install screen -y
開いた後、コマンドラインで次のコマンドを入力してnginxをインストールし、スクリプトをしばらく実行する必要があります、今回はコーヒーを飲むか、私が書いた他の記事☺を見ることができます
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 SSL 証明書を構成する
上記の手順でエラーがない場合は、Nginxがインストールされており、次にSSL証明書を構成する必要があります。
最初に通常のsftpソフトウェアを使用して証明書ファイルをサーバーにインポートし、ここでtermiusを使用して、ファイルをインポートした後、ディレクトリで「ls」コマンドを使用してファイルが存在するかどうかを確認します。
ティッカー test.learn2.cn.key test.learn2.cn_bundle.pem
次に、lnmp を使用して Web サイトを追加し、SSL 証明書を構成します。
'''HTML
lnmp 仮想ホスト追加
+-------------------------------------------+
| LNMPのマネージャー、ライセスによって書かれた|
+-------------------------------------------+
| https://lnmp.org |
+-------------------------------------------+
ドメインを入力してください(例:www.lnmp.org): test.learn2.cn
ドメイン: test.learn2.cn
さらにドメイン名を入力します(例: lnmp.org sub.lnmp.org):
ドメインリスト:test.learn2.cn
ドメインのディレクトリを入力してください:test.learn2.cn
デフォルトディレクトリ: /home/wwwroot/test.learn2.cn:
仮想ホストディレクトリ: /home/wwwroot/test.learn2.cn
書き換えルールを許可しますか? (y/n)
書き換えを選択します: なし
PHPパス情報を有効にしますか? (y/n)
パス情報を無効にします。
アクセスログを許可しますか? (y/n)
アクセスログを無効にします。
IPv6を有効にしますか? (y/n)
現在の仮想ホストでの IPv6 サポートを無効にしました。
SSL 証明書の追加 (y/n) y
1:独自のSSL証明書とキーを使用する
2:暗号化を使用してSSL証明書とキーを作成する
3:バイパスを使用してSSL証明書とキーを作成する
4: ゼロ SSL を使用して SSL 証明書とキーを作成する
1、2、3、または4:1と入力します
SSL証明書ファイルへのフルパスを入力してください:
SSL証明書キーファイルへのフルパスを入力してください:
ドメイン名は実際の入力に従って入力され、その後にキャリッジリターンが続き、「SSL証明書の追加」の最後にYを入力し、次の2つの入力部分は証明書ファイルのパスを完全に入力し、最初はpemファイル、2番目はキーファイルであり、直接入力できます。 自動的に構成されます。
2.4 Web サイト構成ファイルを変更する
現時点では、SSL証明書が設定されていますが、ドメイン名解決を設定していないため、「httpss://+ip」を使用することはできません。 ここでは、使用するドメインネームサービスプロバイダーに応じて、操作方法が異なりますが、レコードを追加する、つまりドメイン名をプロキシのIPアドレスに解決するだけです。
最後に、Webサイトの構成ファイルを変更して、受信したパケットを復号化してV2rayに転送する必要があります。
通常のテキストエディタを使用してWebサイトの構成ファイルを開き、ここでのデモに「nano」を使用しています。
nano /usr/local/nginx/conf/vhost/ your domain.conf
nanoエディターで開いた後、矢印キーを押して、次のフィールドのような行を見つけます。
ssl_dhparam /usr/local/nginx/conf/ssl/dhparam.pem;
見つかったら、その下にコードを貼り付けます。
'''HTML 場所 /ray { proxyredirectオフ; proxypass http://127.0.0.1:10000; proxyhttpversion 1.1; proxysetheaderアップグレード$httpアップグレード; proxysetheader接続の「アップグレード」。 proxysetheaderホスト$host; #v2rayアクセスで実際のIPを表示します.log proxysetheader X-Real-IP $remoteaddr; proxysetheader X-転送-$proxy追加x転送用; }
最後に、SSLのポートを443から10001に変更します。
サーバー { 10001 SSL http2をリッスンします。
一部の初心者はそれを理解していないかもしれないので、次の図に従ってコードを挿入できます。
![](https://pic.saltyleo.com/i/171082811661.webp)
最後に、ファイルを保存した後、「lnmpリロード」コマンドを使用してNginxを再起動します。
#### 2.5 V2ray インバウンド構成ファイルの設定
次に、エージェントの受信構成ファイルを構成します。 1つ目は、V2rayに接続する際のキーとして理解できるGUIDを取得することです。
直接生成できるオンラインWebサイトがあります:[GUID生成ツール](https://www.iamwawa.cn/guid.html)
次に、通常のエディターを使用して構成ファイルを開き、ここでデモンストレーションとしてnanoを引き続き使用します。
nano /usr/local/etc/v2ray/config.json
次のコードをコピーして 'config.json' ファイルに貼り付け、前に生成された GUID を ID に入力します。
{ "受信": [ { "ポート":10000、 "聞く":"127.0.0.1", "プロトコル": "VMESS", "設定": { "クライアント": [ { "id": "生成されたGUIDをここに入力してください", "alterId": 64 } ] }, "ストリーム設定": { "ネットワーク": "WS", "wsSettings": { "パス": "/レイ" } } } ], "アウトバウンド": [ { "プロトコル": "自由"、 "設定": {} } ] }
ファイルを保存し、V2ray を再起動します。
サービス v2ray の再起動
V2ray が再起動したら、「サービス v2ray ステータス」コマンドを使用して V2ray のステータスを確認します。
![](https://pic.saltyleo.com/i/171082852088.webp)
アクティブバーがエラーを報告しない限り、V2rayが正常に起動していることを意味します。
#### 2.6 テスト
まずは以下の点を確認する必要があり、確認後、V2rayNなどのツールを使用して接続をテストできます。
**ドメイン名解決は完了していますか? **
**Nginxの設定ファイルは保存されて再起動されますか? **
**V2rayの設定ファイルは保存して再起動しますか? **
すべてが確認されたら、テストセッションに入ることができます。
Nginxが機能しているかどうかを最初にテストし、ブラウザを使用して「ドメイン https://」にアクセスします すべてが正常であれば、下の画像になります。
![](https://pic.saltyleo.com/i/171082898654.webp)
次に、V2rayが機能しているかどうかをテストするには、ブラウザを使用して「ドメイン/ray https://」にアクセスします。 すべて問題がなければ、次の画像のようになります。
![](https://pic.saltyleo.com/i/171082904730.webp)
問題がなければ、次のコードをコピーします。
VMESS: ew0KICAidiI6ICIyIiwNCiAgInBzIjogIuS7o+eQhuacuua1i+ivlSIsDQogICJhZGQiOiAi5L2g55qE5Z+ f5ZCNIiwNCiAgInBvcnQiOiAiNDQzIiwNCiAgImlkIjogIuS9oOeahEdVSUQiLA0KICAiYWlkIjogIjAiLA0KICAic2N5IjogImF1dG8iLA0KICAibmV0IjogIndzIiwNCiAgInR5cGUiOiAibm9uZSIsDQogICJob3N0IjogIuS9oOeahOWfn +WQjSIsDQogICJwYXRoIjogIi9yYXkiLA0KICAidGxzIjogInRscyIsDQogICJzbmkiOiAiIg0KfQ==
V2rayNを開く》[サーバをクリップボードからインポート]をクリックして、設定ファイルをインポートします。
![](https://pic.saltyleo.com/i/171082802890.webp)
エージェント テストをダブルクリックし、ポップアップ ウィンドウのパラメーターをパラメーターに変更して、保存します。
![](https://pic.saltyleo.com/i/171082777824.webp)
最後に、YouTubeを開いてテストし、すでに単一レイヤーTLSを使用できるかどうかを確認します。
### 3. トランジットの設定
国内のトランジットマシンはGitHubにアクセスできないため、v2rayのインストール方法が異なるため、まずGitHubにアクセスしてv2rayのオフラインインストールパッケージをダウンロードします。
v2ray-core: [https://github.com/v2fly/v2ray-core/releases](https://github.com/v2fly/v2ray-core/releases)
「v2ray-linux-64.zip」ファイルを見つけてダウンロードし、転送に保存します。
#### 3.1 v2ray のインストール
前の手順で、オフラインインストールパッケージはトランジットマシンに保存されましたが、それでもインストールスクリプトが必要な場合は、次のコマンドを使用してインストールスクリプトをダウンロードします。
wget https://s.learn2.cn/file/install-release.sh
次のコマンドを使用して、v2ray をオフラインでインストールします。
bash install-release.sh --local ./v2ray-linux-64.zip
V2ray をシステム サービスに追加し、ブート スタートアップを設定します。
systemctl enable v2ray && systemctl start v2ray
#### 3.2 nginx をインストールする
プロキシマシンと同じ手順で、私はそれを貼り付けます:
画面を有効にするには、次のコードを使用します。
スクリーン-S nginx
システムにscreenがインストールされていないと言う場合は、インストールします。
sudo apt-get install screen -y
開いた後、コマンドラインで次のコマンドを入力してnginxをインストールし、スクリプトをしばらく実行する必要があります、今回はコーヒーを飲むか、私が書いた他の記事を見ることができます~
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 SSL 証明書を構成する
この手順は、プロキシ マシンと同じです。
通常のsftpソフトウェアを使用して証明書ファイルをサーバーにインポートし、ここでtermiusを使用して、ファイルをインポートした後、ディレクトリで「ls」コマンドを使用してファイルが存在するかどうかを確認します。
ティッカー test.learn2.cn.key test.learn2.cn_bundle.pem
次に、lnmp を使用して Web サイトを追加し、SSL 証明書を構成します。
'''HTML
lnmp 仮想ホスト追加
+-------------------------------------------+
| LNMPのマネージャー、ライセスによって書かれた|
+-------------------------------------------+
| https://lnmp.org |
+-------------------------------------------+
ドメインを入力してください(例:www.lnmp.org): test.learn2.cn
ドメイン: test.learn2.cn
さらにドメイン名を入力します(例: lnmp.org sub.lnmp.org):
ドメインリスト:test.learn2.cn
ドメインのディレクトリを入力してください:test.learn2.cn
デフォルトディレクトリ: /home/wwwroot/test.learn2.cn:
仮想ホストディレクトリ: /home/wwwroot/test.learn2.cn
書き換えルールを許可しますか? (y/n)
書き換えを選択します: なし
PHPパス情報を有効にしますか? (y/n)
パス情報を無効にします。
アクセスログを許可しますか? (y/n)
アクセスログを無効にします。
IPv6を有効にしますか? (y/n)
現在の仮想ホストでの IPv6 サポートを無効にしました。
SSL 証明書の追加 (y/n) y
1:独自のSSL証明書とキーを使用する
2:暗号化を使用してSSL証明書とキーを作成する
3:バイパスを使用してSSL証明書とキーを作成する
4: ゼロ SSL を使用して SSL 証明書とキーを作成する
1、2、3、または4:1と入力します
SSL証明書ファイルへのフルパスを入力してください:
SSL証明書キーファイルへのフルパスを入力してください:
ドメイン名は実際の入力に従って入力され、その後にキャリッジリターンが続き、「SSL証明書の追加」の最後にYを入力し、次の2つの入力部分は証明書ファイルのパスを完全に入力し、最初はpemファイル、2番目はキーファイルであり、直接入力できます。 自動的に構成されます。
3.4 Web サイト構成ファイルを変更する
ここでは同じSSL証明書を使用しますが、ドメイン名は2つのIPを同時に解決できないため、国内のトランジットマシンを解決する必要がないため、この手順はプロキシマシンとは大きく異なります。 接続パラメータを入力するときにIPアドレスを使用し、証明書の検証をスキップします [真] を選択します。
通常のテキストエディタを使用してWebサイトの構成ファイルを開き、ここでのデモに「nano」を使用しています。
nano /usr/local/nginx/conf/vhost/ your domain.conf
nanoエディターで開いた後、矢印キーを押して、次のフィールドのような行を見つけます。
ssl_dhparam /usr/local/nginx/conf/ssl/dhparam.pem;
見つかったら、その下にコードを貼り付けます。
場所 /ray {
proxy_redirectオフ;
proxy_pass http://127.0.0.1:10000;
proxy_http_version 1.1;
proxy_set_headerアップグレード$http_アップグレード;
proxy_set_header接続の「アップグレード」。
proxy_set_headerホスト$host;
#v2rayアクセスで実際のIPを表示します.log
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-転送-$proxy_追加_x_転送_用;
}
最後に、SSLのポートを443から10001に変更します。
サーバー
{
10001 SSL http2をリッスンします。
一部の初心者はそれを理解していないかもしれないので、次の図に従ってコードを挿入できます。
最後に、ファイルを保存した後、「lnmpリロード」コマンドを使用してNginxを再起動します。
3.5 V2ray インバウンドおよびアウトバウンド構成ファイルの設定
ここでわかりやすくするために、この手順では GUID をエージェントと一貫性のある状態に保ち、新しい GUID を使用することもできます。
通常のエディターを使用して構成ファイルを開き、ここでデモンストレーションとしてnanoを引き続き使用します。
nano /usr/local/etc/v2ray/config.json
次のコードをコピーして 'config.json' ファイルに貼り付け、前に生成された GUID を ID に入力します。
{
"受信": [
{
"ポート":10000、
"聞く":"127.0.0.1",
"プロトコル": "VMESS",
"設定": {
"クライアント": [
{
"id": "生成されたGUIDをここに入力してください",
"alterId": 64
}
]
},
"ストリーム設定": {
"ネットワーク": "WS",
"wsSettings": {
"パス": "/レイ"
}
}
}
],
"アウトバウンド": [ {
"タグ": "プロキシ",
"プロトコル": "VMESS",
"設定": {
"vnext": [
{
"アドレス": "エージェントのドメイン名",
"ポート":10001、
"ユーザー": [
{
"id": "生成されたGUIDをここに入力してください",
"alterId": 0,
"セキュリティ": "自動"
}
]
}
]
},
"ストリーム設定": {
"ネットワーク": "WS",
"セキュリティ": "TLS",
"tlsSettings": {
"許可する安全でない":本当、
"サーバー名": "エージェントのドメイン名"
},
"wsSettings": {
"パス": "/レイ",
"ヘッダー": {
"ホスト": "エージェントのドメイン名"
}
}
}
},
{
"プロトコル": "自由"、
"設定": {}
}
]
}
ファイルを保存し、V2ray を再起動します。
サービス v2ray の再起動
V2ray が再起動したら、「サービス v2ray ステータス」コマンドを使用して V2ray のステータスを確認します。
アクティブバーがエラーを報告しない限り、V2rayが正常に起動していることを意味します。
3.6 テスト
繰り返しますが、以前と同様に、何も問題がなければ、テストを開始できます。
次のコードをコピーします。
VMESS: ew0KICAidiI6ICIyIiwNCiAgInBzIjogIuS7o+eQhuacuua1i+ivlSIsDQogICJhZGQiOiAi5L2g55qE5Z+ f5ZCNIiwNCiAgInBvcnQiOiAiNDQzIiwNCiAgImlkIjogIuS9oOeahEdVSUQiLA0KICAiYWlkIjogIjAiLA0KICAic2N5IjogImF1dG8iLA0KICAibmV0IjogIndzIiwNCiAgInR5cGUiOiAibm9uZSIsDQogICJob3N0IjogIuS9oOeahOWfn +WQjSIsDQogICJwYXRoIjogIi9yYXkiLA0KICAidGxzIjogInRscyIsDQogICJzbmkiOiAiIg0KfQ==
V2rayNを開く》[サーバをクリップボードからインポート]をクリックして、設定ファイルをインポートします。
エージェント テストをダブルクリックし、ポップアップ ウィンドウのパラメーターをパラメーターに変更して、保存します。
最後に、YouTubeを開いてインターネット速度をテストします。
# 追記
この時点で、デュアルTLS + WSプロキシをすでに使用できるはずであり、ほとんど干渉のないインターネットエクスペリエンスを体験できます。 しかし、このように、あなたの全体的なインターネット速度は国内のプロキシマシンの最高のアップロード速度です、私はここにいます 30M、それほど高くはありませんが、通常の使用で十分です。
著作権に関する注意事項 :
この記事はSaltyLeoによって書かれました。誤りがある場合は、コメントでフィードバックをお願いします。この記事の転載や引用を行う場合は、CC BY-NC-SA ライセンスに従う必要があります。帰属表示、非営利利用、同一条件の共有が必要です!コメント :
続きを読む :
Google Chrome は間違いなく世界最高のブラウザです. 少し前のプライバシー問題はそれに多くの影を落としました. しかし、私のようなおならのために, それは収集され収集されなければなりません. 、そして最後は自分で使うのですが、一番大事なのは幸せになることです。
この記事では、iSlideの半年トライアル会員を無料で取得する方法を紹介します
これで、通常はサーバーにダウンロードさせ、使用する必要があるときにそこからメイン マシンにダウンロードできるようになりました。メイン マシンはギガビットの速度でダウンロードできます。時間を10倍節約!また、ノートブックの消費電力はほとんど無視できます。
ソースを切り替えてshadowsocks-qt5をインストール
超素晴らしいダウンロードツール
サイト情報
タグ: 164
総ページビュー数: 12,888,652
読み込み時間: 11.03 ms
Ver : 3.0.1