关于mtg
mtg是Telegram 专用代理MTProxy的go语言编写的版本,相比原版,性能表现更佳。
mtg目前已经是v2.x版本,此版本与早先的v1.x版本不兼容。mtg v2是一个重写的全新版本,值得期待。
其他MTproxy版本:
官方MTProxy以及其他两个版本都很长时间未更新,但 9seconds 表示这几个版本和mtg功能相当,表现良好。包括对adtag的支持,重放攻击防御,域前置,Fake TLS等等。mtg和其他版本MTP一样:帮助更多人在网络审查形势严峻的地区顺利使用Telegram,但重要的细节上做得略有不同。
- 资源高效
mtg在内存资源占用上十分高效。这并不意味着有最低的资源占用率,而是在零浪费模式下使用内存。 - 部署方便
9seconds 强烈建议MTP部署方式遵循 Shadowsocks代理的那种方式,加入adtag是一种奇怪的经营方式。唯一可行的方式是可以在任何地方快速的部署。 - 单密钥
多个密钥解决不了任何问题,只是使软件更复杂。在抛弃代理的情况下,此功能是无用的奢侈品。 - 不支持 adtag
请阅读 Version 2 章节详细描述 - 没有 WebUI 面板
由于mtg是一个轻量级可快速部署的代理,所以作者并未添加此功能。 - 代理链
mtg 支持Socks5代理,所以理论上,可以将mtg代理作为前置代理,并通过v2ray,Gost,trojan等项目转发流量 - 原生屏蔽列表
以前,这项功能这是交给FireHOL项目或类似的项目来跟踪攻击并发布潜在危险IP的列表。 mtg对此类阻止列表具有原生支持。 - 可作为库使用
mtg v2经过了重新设计,因此可以以很方便地嵌入到你的软件(用Golang编写)中。
Version 2
v1.x版本向后不兼容的详细信息:
- 配置文件
- 移除对 adtag 的支持
关于配置文件,请查看这个版本库中的完整示例。它有很多注释,而且大部分选项是可选的。只有secret
和bind-to
部分是必须的。在这个配置文件中,其他部分都是用默认值填充的。
Adtag支持已完全删除。这样做是为了使用mtg更加的纯粹。希望可以实现此目标,并且源代码足够简洁明了。9seconds一直对adtag持怀疑态度。 9seconds的观点认为,数百个客户端连接一个代理节点是不科学的。 在受审查的环境中,权威机构要做的第一件事就是IP阻止。 对我们而言,这意味着那些大型频道发布的代理分分钟就会被阻断。
TG代理的使用场景必须是私密的,只适合小范围轻度用户使用,如分享给家庭成员或你的挚友。TG代理不应该公开在网上。如果代理被检测到,你需要能够尽快在一个新的IP地址上重新部署代理。9seconds认为在这种使用场景下通过频道来推广没有任何意义。
但其他细节,如重放攻击防护、域名前置、FakeTLS、IP黑名单、代理链等在这里都很重要。如果你生活在拥有 GFW 的国家,使用 MTPROTO 代理作为前置,通过 Trojan、Shadowsocks、v2ray 或Gost 隧道来传输流量是更好的选择。
将adtag作为一个可选功能加入mtg是可行的。但事实是,Telegram的MTPROTO代理只是一个代理,要么作为一个普通的客户端(直接模式),要么在TL语言中做一些远程过程调用(adtag支持)。9seconds 理解 Telegram 开发者的意图,他们是在高压下与俄罗斯的监管机构Roskomnadzor(RKN)战斗,之后又做了TON。但没有什么是理想的。但对于代理来说,这意味着源码中充满了复杂的代码,而这些代码只是为了支持一个我们几乎不需要的功能而需要的。
基于以上原因,删除adtag的支持是合理的。
Version 1 和 2
Version 1 目前仅做日常维护。意味着将不会有新的功能和优化,也不会修复Bug除非是有重大问题。不过9seconds欢迎pr。目标是保持mtg项目继续工作。Version 1会得到一些周期性的更新,比如更新到新的Golang版本的依赖性版本,仅此而已。
如果想要使用adtag,那就只能使用Version 1了。
Version 2 作者将会积极支持和修复Bug,作者正在积极开发和维护。事实也证明如此,mtg项目最近一次更新是4天前。
此项目将包含几个分支:
原文:
https://github.com/9seconds/mtg
https://github.com/9seconds/mtg/issues/172
文章评论