前言#
私は RackNerd の VPS を購入しました。見て回って、私には最適だと思いました。価格が安く、構成が高く、トラフィックが多く、チケットの返信が迅速でした。そして、ちょうどセールの時期に当たりました。2022 年のブラックフライデーセール(なぜかまだ終わっていない)で注文しました。ここで、チケットの返信が迅速な利点について言及せざるを得ません。支払い方法がまだ準備できていなかったので、注文を作成し、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サービスを再起動した後、新しいセッションを開いて接続できるかどうかを試してみます
Vmess+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) を選択
4.2 キャッシュのクリア
CF キャッシュをクリアするには、Caching > Configuration をクリックし、Purge Everything をクリックしてすべてのキャッシュをクリアします。
4.3 DNS プロキシを有効にする
クラウドアイコンをオンにします(実際にはオンにしなくても有効ですが、スクリプトを実行する前にオンにしないでください。それ以外の場合、インストールが失敗します)。
5. プロキシへの接続#
インストールが成功すると、ターミナルに設定パラメータが表示されます:
===========設定パラメータ=============
アドレス:${domain}
ポート:443/8080
UUID:${v2uuid}
暗号化方式:aes-128-gcm
転送プロトコル:ws
パス:/${v2path}
下層トランスポート:tls
注意:8080はトラフィックフリーポートで、tlsを開く必要はありません
これらのパラメータに従ってクライアントを設定します。
6. Nginx の設定を変更する#
スクリプトのソースコードを観察することで、ルートパス/
のプロキシの内容が「Hello World」だけであることがわかります。サーバーのトラフィックが多くなった場合、ファイアウォールによって毎日「Hello World」という 2 つの単語だけのページが検出されると、疑われる可能性があります。そのため、ルートパス /
のリバースプロキシのターゲットアドレスを変更し、トラフィックが多いと思われるウェブサイトを見つける必要があります。一般的には、自分で作成したクラウドストレージのアドレスを推奨します。
これはスクリプトで自動的に設定された内容です:
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 プロキシのセットアップが完了しました。