Accesser とは?#
🌏一个解决SNI RST导致维基百科、Pixiv等站点无法访问的工具 | A tool for solving SNI RST
Accesser は HTTP プロキシです。中間者として端末の HTTP 出口トラフィックを処理し、SNI ブロックを回避します。通常、ウェブサイトにアクセスする際、クライアントは Client Hello を送信しますが、このメッセージは平文であり、通常は ServerName を含んでいます。この時、GFW は ServerName を検出することでブロックを行い、ウェブサイトの代わりにクライアントに RST メッセージを送信して接続をリセットし、ウェブサイトが「壁」にブロックされる効果を実現します。
しかし、Accesser プロキシを通すと、ServerName を消去して Client Hello を送信します。この時、サーバーがドメイン前置きをサポートしていれば、クライアントにデフォルトの SSL 証明書(公開鍵)を返します。これにより、クライアントはこの公開鍵を使用して再度暗号化された Client Hello を送信でき、ServerName を含めても GFW にブロックされることはありません。ただし、クライアントが最初に公開鍵を取得する際に空の ServerName の Client Hello を拒否した場合、この方法は無効になりますが、ほとんどのウェブサイトはこの方法をサポートしています。
Windows#
-
最初の Github リポジトリに移動します。
-
最新の Release をダウンロードします。一般的には
accesser.exe
があります。 -
このソフトウェアを直接開き、この画面が表示されれば OK です!
-
その原理はシステムプロキシを自動的に設定することであり、他のプロキシソフトウェアを使用している場合は上書きされます。
Linux(Debian12 を例に)#
-
Python をインストールします:
apt install python3
-
(オプション)仮想環境を作成します:
python -m venv venv
-
(オプション)仮想環境に入ります:
source venv/bin/activate
-
Accesser をインストールします:
python3 -m pip install -U accesser
-
実行します:
accesser
-
root.crt
を信頼する必要があると表示されます。Accesser を閉じます。 -
私の証明書ファイルは
/root/Accesser/venv/lib/python3.11/site-packages/accesser/CERT/root.crt
にあります。 -
証明書ディレクトリに移動します:
cd /root/Accesser/venv/lib/python3.11/site-packages/accesser/CERT
-
証明書を信頼します:
sudo cp root.crt /usr/local/share/ca-certificates/
-
証明書ストレージを更新します:
sudo update-ca-certificates
-
グローバルプロキシを設定します:
sudo nano /etc/environment
-
http_proxy="http://127.0.0.1:7654" https_proxy="http://127.0.0.1:7654" no_proxy="localhost,127.0.0.1"
-
再起動します。
-
接続性をテストします:
curl -x https://discord.com