1. 紹介#
ShadowTLS の利点は、TLS の混乱を使用することですが、ウェブサイト側の証明書を提供する必要はありません。任意のウェブサイトの証明書を使用して混乱を行うことができます。私が使用している間、Windows にはクライアントがなく、現在は正式な GUI クライアントもありません。使用するには一定のハードルが必要ですので、現在は比較的マイナーな存在です。インストールは非常に簡単で、バイナリファイルを直接実行するだけで、パラメータも複雑ではありません。混乱を目的としたツールであるため、サーバー上で別途暗号化プログラムを開始する必要があります。例えば、Shadowsockes や snell などのソフトウェアです。
プロセスは次のようになります:SS リッスンポート ->ShadowTLS 構成ポート ->ShadowTLS リッスンポート -> クライアント構成 ShadowTLS リッスンポート
2. 暗号化プロキシプログラムのインストール#
Teddysun の Docker 方式を使用することをお勧めします。具体的な手順は次のとおりです:https://hub.docker.com/r/teddysun/shadowsocks-rust を参照してください。
アクセスできない場合は、以下に主な設定を記載します。
#設定ファイルを作成
mkdir -p /etc/shadowsocks-rust
#設定ファイルに書き込む、具体的な内容はパスワードを自分で変更し、ポート番号は変更しなくてもよいので、Dockerを起動するときに多くのコマンドを変更する必要はありません。
#ポート番号を変更する場合は、コンテナ内外のポート番号マッピングに注意してください。わからない場合は検索するか、私のDockerノートを参照してください。
cat > /etc/shadowsocks-rust/config.json <<EOF
{
"server":"0.0.0.0",
"server_port":9000,
"password":"password0",
"timeout":300,
"method":"aes-256-gcm",
"nameserver":"8.8.8.8",
"mode":"tcp_and_udp"
}
EOF
#イメージを取得してコンテナを起動
docker pull teddysun/shadowsocks-rust
docker run -d -p 9000:9000 -p 9000:9000/udp --name ss-rust --restart=always -v /etc/shadowsocks-rust:/etc/shadowsocks-rust teddysun/shadowsocks-rust
Surge のみを使用する場合は、Snell を使用することを検討してください。以下は Surge の作者による 2 つの比較です:
- 完全な特徴なし:shadowsocks、VMess、およびその他の派生プロトコルのように、このような暗号化後のトラフィックにはまったく特徴がなく、逆に特徴としてブロックされる可能性があります。
- ランダムな特徴:Snell の設計方法では、Snell クライアントはいくつかのランダムな特徴を生成し、現在のセッション(Surge は 1 回の設定の再ロードで 1 回の新しいセッションとしてカウントされる)や PSK ハッシュなどの入力に依存してランダムに生成されます。したがって、各ユーザーのトラフィック特徴は異なります。(安心してください、特徴は非常に弱く、アルゴリズムは逆にできないため、Surge を再起動するたびに特徴が更新されます。ユーザーの追跡には絶対に使用されません)このソリューションは現在非常に良いパフォーマンスを発揮しています。
同時に、Snell は比較的マイナーな存在であり、必要に応じてSurge マニュアルを使用することもできます。バイナリを直接実行するだけです。ただし、既に ShadowTLS を使用しているため、暗号化方法は重要ではありません。
3. ShadowTLS の設定#
公式の GitHub を参照してください:https://github.com/ihciah/shadow-tls/releases
2 つの方法があります。1 つは公式が提供する docker-compose.yml ファイルを変更して Docker で実行する方法で、もう 1 つはバイナリファイルをダウンロードして実行する方法です。
私はバイナリの方法を使用しています:
#バイナリファイルを/usr/binにダウンロードします。私がダウンロードしたのは最新バージョンですが、後で更新がある場合はreleasesから探す必要があります。
cd /usr/bin
wget https://github.com/ihciah/shadow-tls/releases/download/v0.2.23/shadow-tls-x86_64-unknown-linux-musl
#実行権限を追加します
chmod +x shadow-tls-x86_64-unknown-linux-musl
#起動時に変更する必要がある設定ファイル:
cat > /etc/systemd/system/shadow-tls.service <<EOF
[Unit]
Description=Shadow-TLS Custom Server Service
Documentation=man:sstls-server(1)
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
ExecStart=/usr/bin/shadow-tls-x86_64-unknown-linux-musl --v3 server --listen 0.0.0.0:45632 --password I6knDArfHW2TPhRdB7 --server 127.0.0.1:9000 --tls www.bing.com:443
[Install]
WantedBy=multi-user.target
EOF
#上記のI6knDArfHW2TPhRdB7はパスワードファイルで、--v3は実行バージョン、--listenは45632ポートでリッスンするため、クライアントの設定ポートは45632にする必要があります。--serverは暗号化プロキシのポートで、上記の設定は9000です。--tlsは混乱するウェブサイトの証明書で、googleなどは入力しないでください。
#次に、サービスをリロードして起動します
systemctl daemon-reload
systemctl enable shadow-tls.service
systemctl start shadow-tls.service
4. クライアントの設定#
クライアントの設定時には、プロキシのタイプまたは方法を暗号化プロキシに設定し、ポートには ShadowTLS のリッスンポートを入力し、パスワードには暗号化プロキシのパスワードを入力し、Shadow-TLS の設定位置には対応するバージョン:v3 を入力し、Shadow-TLS Password には Shadow-TLS の起動時に入力したパスワードを入力し、SNI には起動時の --tls に対応するウェブサイトのアドレスを入力します。
Windows で使用する場合は、sing-box を使用する必要があります。具体的な手順は次を参照してください:https://sing-box.sagernet.org/zh/examples/shadowtls/
設定ドキュメントを自分で作成する必要がありますが、私は NekoBox を使用することをお勧めします。それにはチェーンプロキシを設定できる機能が付属しており、設定でコアを sing-box に設定し、公式の設定に従って ShadowTLS と ss の設定を作成する必要があります。ShadowTLS では、カスタムアウトバウンド設定を使用する必要があります。詳細については、公式マニュアルを参照してください:https://matsuridayo.github.io/n-configuration/#_13
ここでは一部を引用します。
例:NekoBox で ShadowTLS サーバーを使用する方法。
- カスタムアウトバウンド(設定 1)を作成します。
{ "type": "shadowtls", "tag": "shadowtls-out", "server": "サーバーのIPアドレス", "server_port": 45632, "tls": { "enabled": true, "server_name": "www.bing.com" } }
- Shadowsocks アウトバウンド(設定 2)を作成します。ビジュアルインターフェースを使用して作成できます。
- 設定 1 と設定 2 の順序でチェーンプロキシを構成します。
また、NekoBox のチェーンプロキシを使用すると、ShadowTLS を使用しなくても、トラフィックを自分のサーバーに転送することができます。サーバーが禁止されないようにするためです。興味があれば、私が使用している忍者クラウドを試してみてください。