banner
年糕

年糕日记

此站为备份站点,最新文章请访问 oior.net
telegram
email

ARMフレームワークの構築MTPプロキシ

很多人白嫖了 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に追加できます。

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