很多人白嫖了 Oracle ARM 架构的サーバーに何を入れるかわからず、MTP プロキシを構築するのは簡単に失敗することがあります。さまざまなエラーに遭遇し、妨げられることがあります。今日は、ARM アーキテクチャで MTProxy を構築する方法について簡単にまとめました。
MTProto Proxy(または MTProxy)は、Telegram の公式なプロキシプロトコルで、Telegram の通信接続に使用されます。このプロジェクトは元々C 言語で開発されていましたが、x86 アーキテクチャにしか対応していなかったため、直接コンパイルすることはできません。多くの人々が公式に適応を要求する問題を提出しましたが、回答は得られませんでした。
公式のリポジトリは 3 年間更新されていませんが、プロトコル自体は使用できます。ほとんどのサーバープロバイダーが x86 アーキテクチャの市場で販売しているため、ほとんどの人々が十分に使用できます。また、プロトコル自体が FakeTLS をサポートしている場合、大幅な更新の必要はありません。
これらの少数の人々のニーズを満たすために、サードパーティの MTProxy サーバーを選択しました。これは Golang で開発されており、さまざまなプラットフォームに簡単にコンパイルして配布することができます。それには ARM アーキテクチャも含まれます。
リポジトリのアドレス:https://github.com/9seconds/mtg
バージョンの違い#
v1 と v2 の 2 つのバージョンに分かれており、わずかな違いがありますが、使用上の感覚的な違いはほとんどありません。最も重要なのは、v1 は adtag チャンネルの共有をサポートしているが、v2 はこの機能をサポートしていないということです。
作者は、MTP プロキシ自体が比較的プライベートな友人やマイナーなコミュニティで使用されることを想定しており、安全性を保つために検出されないようになっています。広範な公開共有や広告収益を通じて利益を得る場合、キャリアに検出されやすくなります。これら 2 つは相反するものですので、最新バージョンでは adtag が削除されましたが、v1 バージョンでは一部の重要な問題が修正されています。
ワンクリックスクリプト#
プロジェクトのアドレス:https://github.com/ellermister/mtproxy
最新のワンクリックスクリプトは ARM サーバーをサポートしており、mtproxy のワンクリックインストールスクリプトは ARM アーキテクチャのサーバーに自動的に 9seconds/mtg をコンパイルしてインストールします。
mkdir /home/mtproxy && cd /home/mtproxy
curl -s -o mtproxy.sh https://raw.githubusercontent.com/ellermister/mtproxy/master/mtproxy.sh && chmod +x mtproxy.sh && bash mtproxy.sh
Docker バージョン#
Docker がインストールされていない場合は、次のスクリプトを使用してインストールできます:
sh get-docker.sh
docker を使用して mtproxy プロキシコンテナを作成します:
docker run --name nginx-mtproxy -d \
-p 80:80 -p 443:443 \
-e ip_white_list="OFF" \
ellermister/nginx-mtproxy:latest
このイメージには、ホワイトリストなどのさまざまな機能があります。詳細はhttps://hub.docker.com/r/ellermister/nginx-mtproxyを参照してください。
コンパイルとインストール#
自分でコンパイルしてインストールする場合は、以下の手順を参考にしてください。ここでは v1 バージョンの mtg を使用していますが、v2 も同様で、実行方法が異なるだけです。
ソースコードの取得#
mkdir ~/work && cd ~/work
git clone https://github.com/9seconds/mtg.git -b v1 --depth=1
golang のインストール#
システムアーキテクチャに応じて、golang のインストールパッケージを選択します:https://go.dev/dl/ここでは arm64 です。
wget https://go.dev/dl/go1.18.4.linux-arm64.tar.gz
tar -xzf go1.18.4.linux-arm64.tar.gz -C /usr/local/
export PATH=$PATH:/usr/local/go/bin
rm -f go1.18.4.linux-arm64.tar.gz
mtg のコンパイル#
デフォルトの Makefile スクリプトでは、現在のシステムにコンパイル可能な静的ファイルが作成されます。ARM アーキテクチャのシステムでコンパイルする場合は、何も変更する必要はありません。クロスプラットフォームでコンパイルする場合は、CGO_ENABLED=0 GOOS=linux GOARCH=arm64 go build
を参照してください。
cd ~/work/mtg
make static
コンパイルが成功すると、現在のディレクトリに mtg の静的ファイルが作成されます。権限を付与し、他の場所にコピーして使用できます。
chmod +x mtg
cp mtg /usr/local/bin
mtg の実行#
mtg run <secret> <adtag>
パラメータの説明
secret
は MTProxy のキーであり、32 文字のランダムな文字列と fakeTLS で使用するドメインを含みます。adtag
は共有チャンネルで使用されるキーで、@MTProxybot ボットから取得できます。
tls マスカレード付きのシークレットの生成
mtg generate-secret -c aws.amazon.com tls
ee5244d2387a0b6945bf96d0433ea3009b6177732e616d617a6f6e2e636f6d
完全な例の実行
mtg run ee5244d2387a0b6945bf96d0433ea3009b6177732e616d617a6f6e2e636f6d 7cfeefce74c922a85e2c6c3c8efb50e3 -b 0.0.0.0:443 >/dev/null 2>&1 &
起動時に実行する必要がある場合は、上記のコマンドを/etc/rc.local
に追加できます。