Wen.jie

Wen.jie Blog

Vmess+ws+tlsの構築チュートリアル

序文#

私は RackNerd の VPS を購入しました。見て回った結果、最も適していると感じました。価格が安く、構成が高く、トラフィックが多く、チケットの返信が迅速であり、ちょうどブラックフライデーの特典(なぜかまだ終わっていない)に出会ったので、注文しました。ここで、チケットの返信が即時であるという利点について言及せざるを得ません。支払い方法がまだ準備できていなかったため、注文を作成し、2 日後に支払いを行いました。結果として、支払いが行われるまでサーバーが待機状態になりましたので、チケットを開いてすぐに返信があり、約 2 時間後にサーバーが作成されました。おそらく、クレジットカードを使用しているため、バックエンドで私が何かをやっていないかを確認する必要があるため、それに時間がかかったのだと思います。

VPS の設定#

CPU:1

メモリ:1 GB

ストレージ:17 GB(RAID 10)

トラフィック:3 TB / 月(1Gbps ポート)

IPv4:1 IPv6:0

$10.98 / 年

購入リンク:

https://my.racknerd.com/aff.php?aff=7324&pid=358

この設定はプロキシサーバーに最適で、1 年間で 11 ドルで、毎月 3TB のトラフィックが利用でき、1Gbps のポートも利用できます。最も重要なのは、IP が Tiktok と ChatGPT のブロック解除に対応していることです。NetFlix はサポートされていませんが、IPv6 を使用すれば解除できます。

サーバーの設定#

システムはUbuntu20.04です。

1. パッケージの更新とソフトウェアのアップグレード#

# rootユーザーに切り替える
sudo -i
# パッケージのアップグレード
apt update -y
# ソフトウェアのアップグレード
apt upgrade -y

2. 一般的なソフトウェアのインストール#

# wget、curl、vim、git、net-tools、lrzszのインストール
apt install wget curl vim git net-tools lrzsz -y

3. システムのタイムゾーンの変更#

# タイムゾーンリストでShanghaiがあるか検索
timedatectl list-timezones | grep Shanghai
# タイムゾーンをShanghaiに設定
sudo timedatectl set-timezone Asia/Shanghai
# システムの時刻を確認
date -R

VMess プロトコルの認証は時間に基づいていますので、サーバーとクライアントのシステム時刻の差が 90 秒以内であることを確認する必要があります。

4. TCP BBR の輻輳制御アルゴリズムを有効にする#

# スクリプトのダウンロード
wget --no-check-certificate -O /opt/bbr.sh https://github.com/teddysun/across/raw/master/bbr.sh
# スクリプトのパーミッションを変更
chmod 755 /opt/bbr.sh
# スクリプトを実行
/opt/bbr.sh

注意:BBR を有効にするには、カーネルバージョン 4.9 以上が必要です。前の手順で既にカーネルをアップグレードしているため、このスクリプトを実行するだけで有効になります。

4.1 BBR が正常に有効化されたか確認する

uname -r   # カーネルバージョンの確認

sysctl net.ipv4.tcp_available_congestion_control
通常の出力:
net.ipv4.tcp_available_congestion_control = reno cubic bbr

sysctl net.ipv4.tcp_congestion_control
通常の出力:
net.ipv4.tcp_congestion_control = bbr

sysctl net.core.default_qdisc
通常の出力:
net.core.default_qdisc = fq

lsmod | grep bbr
出力にtcp_bbrが含まれていれば、BBRが有効になっています
tcp_bbr      20480 125

5. SSH ポートの変更 [オプション]#

デフォルトのポートは 22 ですが、これは誰でも知っているものであり、リスクがあるため、他の人が総当たり攻撃を行うのを防ぐために変更することをお勧めします。

# 設定ファイルの編集
vim /etc/ssh/sshd_config
# おおよそ15行目の位置に
# Port 22
の行を'#'を削除し、'22'を変更して保存→ Port xxxx
# sshdサービスの再起動
sudo service sshd restart
# サーバーが接続可能かどうかを確認するため、sshdサービスを再起動した後、新しいセッションを開いて接続できるかどうかを試してください

Vmes+WebSocket+TLS の構築#

このプロキシを構築するには、ドメインが必要で、Cloudflare を使用する必要があります。

1. ドメインを Cloudflare の NameServers に追加する#

2. ドメインに A レコードを追加する#

この A レコードのドメインは、アドレスを偽装するために使用されます。第 3 ステップを実行する前に、クラウドアイコンをオンにしないでください。

3. サービスのインストール#

# スクリプトの実行
wget https://git.io/tcp-wss.sh && bash tcp-wss.sh

このスクリプトには以下が含まれています:

  • Nginx のインストールと設定

  • ドメインに対して自動的に SSL 証明書を申請する

  • Vmess プロトコルの設定

4. Cloudflare の設定#

4.1 SSL/TLS を有効にする

操作パス:SSL/TLS をクリック→Overview をクリック→Full または Full (strict) を選択

image

4.2 キャッシュのクリア

CF キャッシュをクリアするには、Caching > Configuration をクリックし、Purge Everything をクリックしてすべてのキャッシュをクリアします。

image

4.3 DNS プロキシを有効にする

クラウドアイコンをオンにします(実際にはオンにしなくても有効ですが、スクリプトを実行する前にオンにしないでください。そうしないとインストールに失敗します。)

image

5. プロキシの接続#

インストールが成功すると、ターミナルに設定パラメータが表示されます:

===========設定パラメータ=============
アドレス:${domain}
ポート:443/8080
UUID:${v2uuid}
暗号化方式:aes-128-gcm
転送プロトコル:ws
パス:/${v2path}
トランスポート:tls
注意:8080はフリートラフィックポートで、tlsをオンにする必要はありません。

これらのパラメータに従ってクライアントを設定してください。

image

6. Nginx の設定を変更する#

スクリプトのソースコードを観察することで、ルートパス/のプロキシコンテンツは「Hello World」だけであることがわかります。サーバートラフィックが大きくなると、ファイアウォールによって毎日そんなにトラフィックの多いページが疑われるでしょう。そのため、ルートパス/のリバースプロキシのターゲットアドレスを変更し、トラフィックの多いウェブサイトを見つける必要があります。一般的には、自分で構築したクラウドストレージのアドレスを推奨します。毎日大量のトラフィックがある可能性があるためです。

これはスクリプトで自動的に設定される内容です:

location / {
            default_type text/plain;
            return 200 "Hello World !";
        }

この部分を以下の内容に置き換えてください:

https://www.fan-2000.com このクラウドストレージのアドレスは Google で適当に見つけました。

location / {
            proxy_pass <https://www.fan-2000.com>;
            proxy_redirect off;
            proxy_ssl_server_name on;
            sub_filter_once off;
            sub_filter "fan-2000.com" $server_name;
            proxy_set_header Host "fan-2000.com";
            proxy_set_header Referer $http_referer;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header User-Agent $http_user_agent;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto https;
            proxy_set_header Accept-Encoding "";
            proxy_set_header Accept-Language "zh-CN";
        }

変更を保存して終了し、Nginx の設定を再読み込みします。

systemctl reload nginx

これで、Vmess+ws+tls プロキシが構築されました。

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。