Skip to content

Releases: 9seconds/mtg

v2.2.7

01 Apr 15:20

Choose a tag to compare

This release is mostly about 2 things:

  1. Improve compatibility with ByeDPI
  2. Change priorities so you do not need to disable auto-update anymore

Yes, I know and I see what happens with Telegram in Russia right now. Gonna do my best.

What's Changed

New Contributors

Full Changelog: v2.2.6...v2.2.7

v2.2.6

30 Mar 11:10

Choose a tag to compare

This is a followup release to adress abnormal connections aborts if idle timeout is exceeded

What's Changed

  • fix: use shared idle tracker for relay connections by @dolonet in #424

Full Changelog: v2.2.5...v2.2.6

v2.2.5

29 Mar 21:37

Choose a tag to compare

This release was mostly driven by great contribution made by @dolonet (please check his mtg fork if you are looking for multi-secret proxy). There are couple of fixes and some work towards decreasing memory requirements of the proxy (it was slim, now it is even more fit) + there is a more intelligent calculation of TLS certificate chain size based on real upstream data.

What's Changed

New Contributors

Full Changelog: v2.2.4...v2.2.5

v2.2.4

24 Mar 09:01

Choose a tag to compare

This release adds a new CLI command mtg doctor that helps understanding about possible problems with your current installations:

$ mtg doctor /path/to/my/config.toml
Deprecated options
  βœ… All good
Time skewness
  βœ… Time drift is -607.048Β΅s, but tolerate-time-skewness is 5s
Validate native network connectivity
  βœ… DC 1
  βœ… DC 2
  βœ… DC 3
  βœ… DC 4
  βœ… DC 5
  βœ… DC 203
Validate network connectivity with proxy socks5://127.0.0.1:1080
  βœ… DC 1
  βœ… DC 2
  βœ… DC 3
  βœ… DC 4
  βœ… DC 5
  βœ… DC 203
Validate fronting domain connectivity
  βœ… xx.xx.xx.xx:yyy is reachable
Validate SNI-DNS match
  βœ… IP address xx.xx.xx.xx matches secret hostname <REDACTED>

What's Changed

New Contributors

Full Changelog: v2.2.3...v2.2.4

v2.2.3

20 Mar 10:32

Choose a tag to compare

Mostly technical release, followup of the previous one.

Added profile guided optimizations and plethora of new architectures. You want to try AMD64v3 (this is probably work now everywhere, including VPSes) and ARMv9.

Also, now there is official support of Windows.

What's Changed

Full Changelog: v2.2.2...v2.2.3

v2.2.2

19 Mar 17:55

Choose a tag to compare

This release brings no new features but decreases a CPU usage + trims down a memory usage.

What's Changed

Full Changelog: v2.2.1...v2.2.2

v2.2.1

16 Mar 22:58

Choose a tag to compare

Mostly bug fix release with a very important fix related to socks5 interface.

Important note: if you have a problem with static loading, please disable auto-update setting. It seems that addresses provided by Telegram API are not very stable, so it worth to fallback to core IPs now.

What's Changed

New Contributors

Full Changelog: v2.2.0...v2.2.1

v2.2.0

15 Mar 21:26

Choose a tag to compare

This version introduces a first major feature for the last couple of years. It is called doppelganger because I could not find a better name. This is logical continuation of cloaking (domain fronting, you name it).

Websites and applications are different. They communicate differently, and their patterns are different. Websites burst with short amount of traffic, and this can have long tails of sizes. Applications that are pumping JSON are usually sending very small packages.
This is reflected in TLS packet delays and TLS packet sizes.

Since 2.2.0 mtg introduces some artificial delays in sending of TLS packets back to client, and it tries very hard to look like a real website from statistical point of view.

Of course we cannot mimic it completely because Telegram still communicates like RPC but mtg tries to do its best in hiding this fact. It restructures TLS packets, it delays TLS packets.

Speaking on sizes of TLS packets, it supports 2 modes now: classic and DRS. Most of TLS libraries and implementation aims to always choose max size of TLS packet as possible but there are a couple of implementations that increase this size gradually aiming to get a fastest time-to-first-byte. Most notably, Go crypto/tls does that, and thus other projects like Caddy. So, if you have any insight about implementation, you can enable that setting.

This is how it could be set up:

[defense.doppelganger]
# mtg comes with very good defaults but if you want to be as specific as possible,
# please set a couple of URL from a domain in disguise. No need to drop many, but it makes sense
# use different ones. One image, one page, one static file is already good set.
#
# mtg will start to crawl them periodically and statistically mimic their TLS delays
urls = [
  "https://lalala"
]
# this is that Dynamic Record Sizing option
drs = false

Please see all settings in example config file. Also please read attached BEST_PRACTICES.md, it comes now with any archive.

If you are not sure, do not set anything. mtg has good enough defaults. As usual, if something does not work, try other projects like telemt. It does not matter what you use as long as you keep connected.

И Π΄Π°ΠΉ Π½Π°ΠΌ сил ΠΏΠ΅Ρ€Π΅ΠΆΠΈΡ‚ΡŒ всю эту Ρ…Π΅Ρ€ΠΎΡ‚Ρƒ.

What's Changed

Full Changelog: v2.1.13...v2.2.0

v2.1.13

28 Feb 14:03

Choose a tag to compare

This release addresses long-running confusion related to DNS-over-HTTP mandatory option. Now it is fixed. Unfortunately, old network.doh-ip option is deprecated now, please use new network.dns.

This is doh-ip you should move from

# DEPRECATED option:
#  If dns option is specified, it will be used instead. No default is defined
#  anymore. But if you set this option, this is literally the same providing
#  https:// URL to `dns`.
#
#  In other words:
#
#    doh-ip = "1.1.1.1"
#
# is literally the same as
#
#    dns = "https://1.1.1.1"
# doh-ip = "1.1.1.1"
# Starting from mtg v2.1.12 we have changed a configuration for DNS. Now it
# supports DNS-over-HTTPS, DNS-over-TLS, custom UDP resolver and system
# resolver.
#
# Here is how to define DNS-over-HTTPS:
#  - https://1.1.1.1
#  - https://1.1.1.1/dns-query
#  - https://cloudflare-dns.com/dns-query
#  - https://cloudflare-dns.com
#
# Here is how to define DNS-over-TLS:
#  - tls://1.1.1.1
#  - tls://cloudflare-dns.com
#
# Here is how to define a custom UDP resolver (we support only IPs here)
#  - 1.1.1.1
#  - udp://1.1.1.1
#
# If you set it to empty string, default resolver will be used.
# But please comment out doh-ip
dns = "https://1.1.1.1"

So, in general you can use 4 different options for DNS setting:

1. Default resolver.

In that case just set dns to empty string:

[network]
dns = ""

so mtg will use local stub resolver for getting DNS records.

2. DNS-over-HTTPS

Just have https:// prefix:

[network]
dns = "https://1.1.1.1"

This will mean that mtg will use https://1.1.1.1/dns-query URL to resolve DNS. If path is different, just specify a full URL:

[network]
dns = "https://1.1.1.1/my-path"

3. DNS-over-TLS

Just use tls:// prefix:

[network]
dns = "tls://dns.google"

4. Classic UDP DNS

Either provide IP address or optionally prefix it with udp://

[network]
dns = "8.8.8.8"

and

[network]
dns = "udp://8.8.8.8"

are both equivalent way of setting that.

Please be aware that if you have to setup DNS, it means that there are some restrictions implied. It could be a good idea to have socks5 upstream connectivity in that case.

What's Changed

Full Changelog: v2.1.12...v2.1.13

v2.1.12

26 Feb 12:56

Choose a tag to compare

This is hotfix release that aims to address the issue with a proxy that cannot access Telegram HTTP endpoints to get lists of updates DCs. It should help running it in restricted environment.

By default autoupdate now is disabled. You can explicitly enable it in config:

# If this setting is set, then mtg will try to get proxy updates from Telegram
# Usually this is completely fine to have it disabled, because mtg has a list
# of some core proxies hardcoded.
auto-update = false

What's Changed

Full Changelog: v2.1.11...v2.1.12