MTProxy Python 版和官方版本以及mtg一样均支持 Fake TLS。
MTProto Proxy Auto Installer
MTProto Proxy Auto Installer 脚本支持 Centos 7/8 、Ubuntu 16+、 Debian 8/9系统,同时支持使用API进行多用户管理,可以为单一用户生成专门的密钥,并限制连接数量和时间。
脚本特性:
- 自动生成随机密钥
- 设置简单
- 支持热重载
- API 支持用户管理
Python 版 MTProxy 更适合低端VPS使用,单核CPU运行无压力,同时可以限制连接数量。Python 版 MTProxy 在 1 CPU core (~2.5 GHz) 1024MB RAM VPS上最多支持4000 同时连接。 比官方原版数量更少。
安装MTProxy的一些建议:MTProxy 代理极易被墙,不建议大范围公开分享,只适合几个人临时应急使用;代理链接不要设置成域名,设置为域名经常无法连接。长时间使用建议搭建 Trojan 多用户管理面板翻墙,方便分享与管理。
脚本安装
Install
在终端上运行:
curl -o MTProtoProxyInstall.sh -L https://git.io/fjo34 && bash MTProtoProxyInstall.sh
然后启用默认值一路回车即可。
完成安装后脚本会自动生成tg链接, 再次运行 systemctl status mtprotoproxy -l
显示tg链接。
脚本更新、改变端口、密钥以及其他设置重新运行脚本即可。
可以选择显示所有tg链接,更新代理程序,变更AD TAG,增加和撤销密钥,变更连接限制、用户到期时间、用户名,更改防火墙规则以及卸载代理脚本。
管理 Proxy
Service
systemctl start mtprotoproxy
systemctl stop mtprotoproxy
systemctl status mtprotoproxy -l
Config
手动编辑配置文件
vi /opt/mtprotoproxy/config.py
然后重启代理
systemctl restart mtprotoproxy
Quota Limiter 配额限制器
Python版本代理具有通过用户使用的流量来限制用户的功能。你可以在安装后重新运行脚本来改变配额。但请记住,如果重新启动代理,所有的使用量将被重置。(他们将从0开始计算。)
因此,如果你要进行用户管理,则可以使用此程序 program
Hot Reload:
热重载可以在不重启服务的情况下重载配置文件。如果你设置了一些配额限制,此操作可能会很有用。 复制并在你的终端上执行这些行。
pid=$(systemctl show --property MainPID mtprotoproxy)
arrPID=(${pid//=/ })
pid=${arrPID[1]}
kill -USR2 "$pid"
API
此脚本添加了API支持,以用于管理用户和设置连接时间。
用户管理
MTProto Proxy Auto Installer 脚本支持为每一个用户单独创建密钥以供连接和管理。
如何使用
bash MTProtoProxyInstall.sh list
列出所有用户,结果:
{
"ok":true,
"msg":{
"User1" : "69c6a98d57c08c4e89084bf5b2897090",
"User2" : "9cd7c782a297a4e8668e82e0b4ff4f6d"
}
}
此密钥不包括ee
用于fake tls或dd
或掩码地址。
错误
如果没有密钥,结果为:
{
"ok":false,
"msg":"You have no secrets"
}
查看用户密钥
查看用户密钥 list <username>
如何使用
查看用户 user1的密钥,运行:
bash MTProtoProxyInstall.sh list user1
参考结果:
{
"ok":true,
"msg":"54ad29de7f1ba75d0338b21949b67a2c"
}
此密钥不包括ee
用于fake tls或dd
或掩码地址。
如果用户不存在将返回一个错误结果。
添加用户
如何使用
bash MTProtoProxyInstall.sh 4 <USERNAME> <SECRET>
若未设置密钥 <SECRET>
脚本将自动生成。
参考结果:
{
"ok":true,
"msg":{
"link":"tg://proxy?server=ip&port=Port&secret=TheSecretInFakeTLSFormat",
"secret":"8564ca0eb7e9f973c2f465972fe4aa4e"
}
}
如果设置了一个未验证的密钥命令将返回错误。
撤销用户
如何使用
bash MTProtoProxyInstall.sh 5 <USERNAME>
参考结果
{
"ok":true,
"msg":""
}
如果用户不存在将返回错误。
连接限制
如何使用
bash MTProtoProxyInstall.sh 6 <USERNAME> <LIMIT>
通过数字6来设置连接数量。要么删除用户的限制,要么设置/更改用户的限制。
如果要删除限制,则在运行脚本时只需忽略<limit>参数。例如,如果要删除user1的限制,运行如下脚本:
bash MTProtoProxyInstall.sh 6 user1
例如,如果想限制user2,只有3个人可以连接,请运行脚本,如下所示:
bash MTProtoProxyInstall.sh 6 user2 3
参考结果:
{
"ok":true,
"msg":""
}
到期时间
如何使用
bash MTProtoProxyInstall.sh 7 <USERNAME> <DATE>
时间必须遵循这个格式: dd/mm/yyyy
示例
可以设置移除或变更时间限制。
改变用户 u1
的到期时间为 29/11/2020 运行命令:
bash MTProtoProxyInstall.sh 7 u1 "29/11/2020"
移除用户 u2
的时间限制运行命令:
bash MTProtoProxyInstall.sh 7 u2
参考结果:
{
"ok":true,
"msg":""
}
除了 Python 版脚本之外,该作者还提供Go版本、官方原版以及Erlang版本安装脚本。不过此go版脚本(mtg)貌似不可用。如果要安装mtg,推荐使用手动安装mtg2.0。
安装官方原版安装:
curl -o MTProtoProxyOfficialInstall.sh -L https://git.io/fjo3u && bash MTProtoProxyOfficialInstall.sh
目前最推荐的MTProxy版本为Go版及mtg。
因为防火墙的探测封锁,MTProto 协议已经迭代了三代:
- 9seconds / mtg(GO 语言实现)
- seriyps / mtproto_proxy (Erlang 实现)
- alexbers / mtprotoproxy(Python 实现)
- TelegramMessenger / MTProxy(Telegram 官方)
MTProto 可通过 secret 字段区分三代的区别:
- 第一代 secret 为 32 位 16 进制字符;
- 第二代 secret 为
dd
开头加 32 位 16 进制字符,一共 34 位; - 第三代 secret 为
ee
开头加不定长的字符,也叫 FakeTLS 模式;
脚本地址:https://github.com/HirbodBehnam/MTProtoProxyInstaller
用户管理API:https://github.com/HirbodBehnam/MTProtoProxyInstaller/wiki/API-For-Python-Script
MTProto现状和建议:https://guide.v2fly.org/app/mtproto.html#%E7%8E%B0%E7%8A%B6%E5%92%8C%E5%BB%BA%E8%AE%AE
文章评论