banner
年糕

年糕日记

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

建立ARM框架的MTP代理

很多人白嫖了 Oracle ARM 架構的伺服器不知道放點啥,用來搭建 MTP 代理,卻很容易失敗,遇到各種錯誤阻礙,今天簡單整理下在 ARM 架構下搭建 MTProxy 的方法教程。

MTProto Proxy (也叫 MTProxy) 是 Telegram 官方開源的代理協議用於 Telegram 通信連接, 項目原本是基於 C 語言開發的,因為只適配了 x86 架構的,所以你直接去編譯是編譯不通過的 ,也有很多人給官方提交了要求適配的 issue,也沒有得到回應。

官方倉庫至今已經停更 3 年了協議本身也不是不能用,在大多數伺服器提供商售賣的都是 x86 架構的市場下,大多數人已經足以使用,並且在協議本身支持了 FakeTLS 得情況下,也沒有太大更新的必要。

為了解決這部分少數人的需求,我們選擇第三方開發的 MTProxy 服務端,由於它是用 Golang 開發的,可以很輕鬆編譯發布到不同的平台,也包括我們用到的 ARM 架構。

倉庫地址:https://github.com/9seconds/mtg

版本區別#

它分為兩個版本 v1 和 v2,會有些細微差別,在使用上感官區別不大。最重要的是, v1 支持 adtag 頻道分享,而 v2 不支持這項功能。

因為作者認為 MTP 代理本身就是在比較私密的朋友,小眾圈子中進行使用,才會安全保密,不會被檢測到。若用到大範圍的公開分享推廣,並通過廣告取益,就很容易被運營商檢測到,這兩者是相悖的,即在最新版本中移除了 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 偽裝的 secret

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

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。