Skip to content

Releases: Another-TGProxy/another-tgproxy

v2.2.0-beta5

v2.2.0-beta5 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 14 Sep 09:41
v2.2.0-beta5
e1b1ae2

What's new

Telegram no longer reports the proxy as misconfigured. A data centre is
fronted by two hosts that hold different keys — one for chats, one for media —
and the proxy treated them as interchangeable: a session whose first attempt
failed was retried against the other one, which does not know its key. Telegram
answered with a refusal, and on one of its forms both the desktop and the
Android client switch the proxy off by themselves. The Cloudflare relays were
the same mistake from the other side: they front only the first host, so every
media session sent through them was refused. Sessions now keep to their own
host. On a phone where the direct route fails constantly, refusals dropped from
about twelve a minute to under one.

Android permissions are asked for in the wizard. The notification and the
battery exemption are what keep the proxy alive once the screen goes off, and
the system dialog used to appear before the app had drawn anything — and again
on every return to it. They now have a step that says what each one is for and
shows whether it is granted, with a button that opens the settings screen where
Android no longer offers a dialog. Setup does not move on without them.

Setup wizard on first launch. Walks through the settings that actually need
a decision — updates, port and secret, autostart, where to show status — then
starts the proxy and hands over the connection link. Steps with nothing to ask
skip themselves: no autostart step on Android, no status step where only one
mode is available.

Media now loads on Android. The engine looked for the system certificate store
only in the bundle files desktop Linux uses, so on Android every verified
connection failed. That guards the Cloudflare path, which meant only the
datacentres with a direct route worked and everything else fell through to
blocked addresses -- in practice, chats loaded and their images did not. Android
keeps its trust store as a hashed directory, which the engine now reads.

Blocked addresses no longer stall transfers. Connecting to an address the ISP
filters used to wait out the kernel's TCP timeout -- over two minutes -- because
such an address swallows the connection attempt instead of refusing it. Media is
fetched over parallel streams, so those stuck attempts were the download: it
stalled rather than failing over to the Cloudflare route. Connections now give up
after five seconds and take the working path.

The proxy no longer goes quiet after sleep. On Windows and Android it could
keep reporting "running" while Telegram refused it with invalid proxy settings.
Two causes, both fixed:

  • Pre-warmed connections were checked for liveness only when handed out, and the
    check missed a peer that had closed the connection while idle. Such a dead
    connection went to the next session, which then broke right after the
    handshake. Connections are now swept in the background every five seconds, and
    the liveness check catches half-closed sockets.
  • Connection age was measured with a clock that stops while the device sleeps,
    so an hour in a pocket counted as seconds and long-dead connections passed as
    fresh. It now uses the wall clock.

A dropped listening socket is rebuilt. Windows can tear it down on its own
after a network adapter change; the proxy used to stop accepting connections
silently. It now restores the socket and carries on.

Android: swiping the app away no longer stops the proxy. The service used to
shut itself down when the app left the recents list, so Telegram lost the proxy
as soon as the window was dismissed. The proxy now keeps running with its
ongoing notification; stopping it is an explicit action inside the app.

Update offers are less pushy. A version you turn down is remembered and not
offered again, and the update dialog no longer pops up right after the setup
wizard has already asked about it.


Что нового

Telegram больше не считает прокси неправильно настроенным. У дата-центра два
адреса, и ключи у них разные: один для переписки, другой для медиа. Прокси считал
их взаимозаменяемыми — если первая попытка не удавалась, сессия уходила на
соседний адрес, который её ключа не знает. Telegram отвечал отказом, а на одну из
форм этого отказа и десктопный, и Android-клиент сами отключают прокси. С
ретрансляторами Cloudflare была та же ошибка с другой стороны: за ними стоит
только первый адрес, поэтому все медиа-сессии через них получали отказ. Теперь
сессия остаётся на своём адресе. На телефоне, где прямой маршрут постоянно не
проходит, отказов стало меньше одного в минуту вместо примерно двенадцати.

Разрешения Android запрашиваются в мастере. Уведомление и снятие ограничений
батареи — это то, что сохраняет прокси живым после выключения экрана. Раньше
системный диалог выскакивал до того, как приложение успевало нарисовать окно, и
повторялся при каждом возврате в него. Теперь под них отведён шаг, где сказано,
зачем нужно каждое, видно, выдано ли оно, а кнопка ведёт в системные настройки,
если диалог Android больше не показывает. Без них настройка дальше не идёт.

Мастер первичной настройки. Проводит по тем настройкам, где действительно
нужно решение: обновления, порт и секрет, автозапуск, где показывать статус.
В конце запускает прокси и выдаёт ссылку для подключения. Шаги, которым нечего
спросить, пропускаются сами: на Android нет шага автозапуска, а шаг статуса
не показывается, если доступен всего один режим.

На Android снова грузятся картинки. Движок искал системные сертификаты только
в файлах-связках, как принято в десктопном Linux, поэтому на Android проверка
сертификата не проходила никогда. От неё зависит весь путь через Cloudflare: в
итоге работали лишь датацентры с прямым маршрутом, а остальное упиралось в
заблокированные адреса — переписка открывалась, а изображения нет. На Android
хранилище доверия устроено каталогом, и теперь движок читает и его.

Заблокированные адреса больше не подвешивают загрузку. Подключение к адресу,
который фильтрует провайдер, раньше ждало системного таймаута TCP — больше двух
минут: такой адрес не отказывает в соединении, а молча его проглатывает. Медиа
качается несколькими потоками, и эти зависшие попытки и были загрузкой — она
стояла вместо того, чтобы уйти на запасной маршрут через Cloudflare. Теперь
попытка прекращается через пять секунд и работа продолжается рабочим путём.

Прокси больше не замолкает после сна. На Windows и Android он мог считаться
работающим, пока Telegram отказывался от него с ошибкой о неверных настройках.
Две причины, обе устранены:

  • Заранее прогретые соединения проверялись на живость только в момент выдачи,
    и проверка не замечала, что собеседник закрыл соединение во время простоя.
    Такое мёртвое соединение доставалось следующей сессии, и она обрывалась сразу
    после рукопожатия. Теперь соединения перебираются в фоне каждые пять секунд,
    а проверка живости распознаёт полузакрытые сокеты.
  • Возраст соединения считался по часам, которые останавливаются на время сна
    устройства: час в кармане засчитывался за секунды, и давно мёртвые соединения
    проходили как свежие. Теперь используются обычные часы.

Потерянный слушающий сокет восстанавливается. Windows может закрыть его сам
после смены сетевого адаптера — раньше прокси молча переставал принимать
подключения. Теперь сокет пересоздаётся, и работа продолжается.

Android: смахивание приложения больше не выключает прокси. Служба
останавливала себя, когда приложение уходило из списка недавних, и Telegram
терял прокси сразу после закрытия окна. Теперь прокси продолжает работать
вместе со своим постоянным уведомлением, а выключается явно — из приложения.

Обновления навязываются меньше. Версия, от которой вы отказались,
запоминается и больше не предлагается, а диалог обновления не появляется сразу
после мастера, который уже про него спрашивал.

v2.2.0-beta4

v2.2.0-beta4 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 14 Sep 07:51
v2.2.0-beta4
3c23f63

What's new

Setup wizard on first launch. Walks through the settings that actually need
a decision — updates, port and secret, autostart, where to show status — then
starts the proxy and hands over the connection link. Steps with nothing to ask
skip themselves: no autostart step on Android, no status step where only one
mode is available.

Media now loads on Android. The engine looked for the system certificate store
only in the bundle files desktop Linux uses, so on Android every verified
connection failed. That guards the Cloudflare path, which meant only the
datacentres with a direct route worked and everything else fell through to
blocked addresses -- in practice, chats loaded and their images did not. Android
keeps its trust store as a hashed directory, which the engine now reads.

Blocked addresses no longer stall transfers. Connecting to an address the ISP
filters used to wait out the kernel's TCP timeout -- over two minutes -- because
such an address swallows the connection attempt instead of refusing it. Media is
fetched over parallel streams, so those stuck attempts were the download: it
stalled rather than failing over to the Cloudflare route. Connections now give up
after five seconds and take the working path.

The proxy no longer goes quiet after sleep. On Windows and Android it could
keep reporting "running" while Telegram refused it with invalid proxy settings.
Two causes, both fixed:

  • Pre-warmed connections were checked for liveness only when handed out, and the
    check missed a peer that had closed the connection while idle. Such a dead
    connection went to the next session, which then broke right after the
    handshake. Connections are now swept in the background every five seconds, and
    the liveness check catches half-closed sockets.
  • Connection age was measured with a clock that stops while the device sleeps,
    so an hour in a pocket counted as seconds and long-dead connections passed as
    fresh. It now uses the wall clock.

A dropped listening socket is rebuilt. Windows can tear it down on its own
after a network adapter change; the proxy used to stop accepting connections
silently. It now restores the socket and carries on.

Android: swiping the app away no longer stops the proxy. The service used to
shut itself down when the app left the recents list, so Telegram lost the proxy
as soon as the window was dismissed. The proxy now keeps running with its
ongoing notification; stopping it is an explicit action inside the app.

Update offers are less pushy. A version you turn down is remembered and not
offered again, and the update dialog no longer pops up right after the setup
wizard has already asked about it.


Что нового

Мастер первичной настройки. Проводит по тем настройкам, где действительно
нужно решение: обновления, порт и секрет, автозапуск, где показывать статус.
В конце запускает прокси и выдаёт ссылку для подключения. Шаги, которым нечего
спросить, пропускаются сами: на Android нет шага автозапуска, а шаг статуса
не показывается, если доступен всего один режим.

На Android снова грузятся картинки. Движок искал системные сертификаты только
в файлах-связках, как принято в десктопном Linux, поэтому на Android проверка
сертификата не проходила никогда. От неё зависит весь путь через Cloudflare: в
итоге работали лишь датацентры с прямым маршрутом, а остальное упиралось в
заблокированные адреса — переписка открывалась, а изображения нет. На Android
хранилище доверия устроено каталогом, и теперь движок читает и его.

Заблокированные адреса больше не подвешивают загрузку. Подключение к адресу,
который фильтрует провайдер, раньше ждало системного таймаута TCP — больше двух
минут: такой адрес не отказывает в соединении, а молча его проглатывает. Медиа
качается несколькими потоками, и эти зависшие попытки и были загрузкой — она
стояла вместо того, чтобы уйти на запасной маршрут через Cloudflare. Теперь
попытка прекращается через пять секунд и работа продолжается рабочим путём.

Прокси больше не замолкает после сна. На Windows и Android он мог считаться
работающим, пока Telegram отказывался от него с ошибкой о неверных настройках.
Две причины, обе устранены:

  • Заранее прогретые соединения проверялись на живость только в момент выдачи,
    и проверка не замечала, что собеседник закрыл соединение во время простоя.
    Такое мёртвое соединение доставалось следующей сессии, и она обрывалась сразу
    после рукопожатия. Теперь соединения перебираются в фоне каждые пять секунд,
    а проверка живости распознаёт полузакрытые сокеты.
  • Возраст соединения считался по часам, которые останавливаются на время сна
    устройства: час в кармане засчитывался за секунды, и давно мёртвые соединения
    проходили как свежие. Теперь используются обычные часы.

Потерянный слушающий сокет восстанавливается. Windows может закрыть его сам
после смены сетевого адаптера — раньше прокси молча переставал принимать
подключения. Теперь сокет пересоздаётся, и работа продолжается.

Android: смахивание приложения больше не выключает прокси. Служба
останавливала себя, когда приложение уходило из списка недавних, и Telegram
терял прокси сразу после закрытия окна. Теперь прокси продолжает работать
вместе со своим постоянным уведомлением, а выключается явно — из приложения.

Обновления навязываются меньше. Версия, от которой вы отказались,
запоминается и больше не предлагается, а диалог обновления не появляется сразу
после мастера, который уже про него спрашивал.

v2.2.0-beta3

v2.2.0-beta3 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 12 Sep 19:53
v2.2.0-beta3
3cba0a9

What's new

Setup wizard on first launch. Walks through the settings that actually need
a decision — updates, port and secret, autostart, where to show status — then
starts the proxy and hands over the connection link. Steps with nothing to ask
skip themselves: no autostart step on Android, no status step where only one
mode is available.

Media now loads on Android. The engine looked for the system certificate store
only in the bundle files desktop Linux uses, so on Android every verified
connection failed. That guards the Cloudflare path, which meant only the
datacentres with a direct route worked and everything else fell through to
blocked addresses -- in practice, chats loaded and their images did not. Android
keeps its trust store as a hashed directory, which the engine now reads.

Blocked addresses no longer stall transfers. Connecting to an address the ISP
filters used to wait out the kernel's TCP timeout -- over two minutes -- because
such an address swallows the connection attempt instead of refusing it. Media is
fetched over parallel streams, so those stuck attempts were the download: it
stalled rather than failing over to the Cloudflare route. Connections now give up
after five seconds and take the working path.

The proxy no longer goes quiet after sleep. On Windows and Android it could
keep reporting "running" while Telegram refused it with invalid proxy settings.
Two causes, both fixed:

  • Pre-warmed connections were checked for liveness only when handed out, and the
    check missed a peer that had closed the connection while idle. Such a dead
    connection went to the next session, which then broke right after the
    handshake. Connections are now swept in the background every five seconds, and
    the liveness check catches half-closed sockets.
  • Connection age was measured with a clock that stops while the device sleeps,
    so an hour in a pocket counted as seconds and long-dead connections passed as
    fresh. It now uses the wall clock.

A dropped listening socket is rebuilt. Windows can tear it down on its own
after a network adapter change; the proxy used to stop accepting connections
silently. It now restores the socket and carries on.

Android: swiping the app away no longer stops the proxy. The service used to
shut itself down when the app left the recents list, so Telegram lost the proxy
as soon as the window was dismissed. The proxy now keeps running with its
ongoing notification; stopping it is an explicit action inside the app.

Update offers are less pushy. A version you turn down is remembered and not
offered again, and the update dialog no longer pops up right after the setup
wizard has already asked about it.


Что нового

Мастер первичной настройки. Проводит по тем настройкам, где действительно
нужно решение: обновления, порт и секрет, автозапуск, где показывать статус.
В конце запускает прокси и выдаёт ссылку для подключения. Шаги, которым нечего
спросить, пропускаются сами: на Android нет шага автозапуска, а шаг статуса
не показывается, если доступен всего один режим.

На Android снова грузятся картинки. Движок искал системные сертификаты только
в файлах-связках, как принято в десктопном Linux, поэтому на Android проверка
сертификата не проходила никогда. От неё зависит весь путь через Cloudflare: в
итоге работали лишь датацентры с прямым маршрутом, а остальное упиралось в
заблокированные адреса — переписка открывалась, а изображения нет. На Android
хранилище доверия устроено каталогом, и теперь движок читает и его.

Заблокированные адреса больше не подвешивают загрузку. Подключение к адресу,
который фильтрует провайдер, раньше ждало системного таймаута TCP — больше двух
минут: такой адрес не отказывает в соединении, а молча его проглатывает. Медиа
качается несколькими потоками, и эти зависшие попытки и были загрузкой — она
стояла вместо того, чтобы уйти на запасной маршрут через Cloudflare. Теперь
попытка прекращается через пять секунд и работа продолжается рабочим путём.

Прокси больше не замолкает после сна. На Windows и Android он мог считаться
работающим, пока Telegram отказывался от него с ошибкой о неверных настройках.
Две причины, обе устранены:

  • Заранее прогретые соединения проверялись на живость только в момент выдачи,
    и проверка не замечала, что собеседник закрыл соединение во время простоя.
    Такое мёртвое соединение доставалось следующей сессии, и она обрывалась сразу
    после рукопожатия. Теперь соединения перебираются в фоне каждые пять секунд,
    а проверка живости распознаёт полузакрытые сокеты.
  • Возраст соединения считался по часам, которые останавливаются на время сна
    устройства: час в кармане засчитывался за секунды, и давно мёртвые соединения
    проходили как свежие. Теперь используются обычные часы.

Потерянный слушающий сокет восстанавливается. Windows может закрыть его сам
после смены сетевого адаптера — раньше прокси молча переставал принимать
подключения. Теперь сокет пересоздаётся, и работа продолжается.

Android: смахивание приложения больше не выключает прокси. Служба
останавливала себя, когда приложение уходило из списка недавних, и Telegram
терял прокси сразу после закрытия окна. Теперь прокси продолжает работать
вместе со своим постоянным уведомлением, а выключается явно — из приложения.

Обновления навязываются меньше. Версия, от которой вы отказались,
запоминается и больше не предлагается, а диалог обновления не появляется сразу
после мастера, который уже про него спрашивал.

v2.2.0-beta2

v2.2.0-beta2 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 12 Sep 09:27
v2.2.0-beta2
2cdc6a7

What's new

Setup wizard on first launch. Walks through the settings that actually need
a decision — updates, port and secret, autostart, where to show status — then
starts the proxy and hands over the connection link. Steps with nothing to ask
skip themselves: no autostart step on Android, no status step where only one
mode is available.

Media now loads on Android. The engine looked for the system certificate store
only in the bundle files desktop Linux uses, so on Android every verified
connection failed. That guards the Cloudflare path, which meant only the
datacentres with a direct route worked and everything else fell through to
blocked addresses -- in practice, chats loaded and their images did not. Android
keeps its trust store as a hashed directory, which the engine now reads.

Blocked addresses no longer stall transfers. Connecting to an address the ISP
filters used to wait out the kernel's TCP timeout -- over two minutes -- because
such an address swallows the connection attempt instead of refusing it. Media is
fetched over parallel streams, so those stuck attempts were the download: it
stalled rather than failing over to the Cloudflare route. Connections now give up
after five seconds and take the working path.

The proxy no longer goes quiet after sleep. On Windows and Android it could
keep reporting "running" while Telegram refused it with invalid proxy settings.
Two causes, both fixed:

  • Pre-warmed connections were checked for liveness only when handed out, and the
    check missed a peer that had closed the connection while idle. Such a dead
    connection went to the next session, which then broke right after the
    handshake. Connections are now swept in the background every five seconds, and
    the liveness check catches half-closed sockets.
  • Connection age was measured with a clock that stops while the device sleeps,
    so an hour in a pocket counted as seconds and long-dead connections passed as
    fresh. It now uses the wall clock.

A dropped listening socket is rebuilt. Windows can tear it down on its own
after a network adapter change; the proxy used to stop accepting connections
silently. It now restores the socket and carries on.

Android: swiping the app away no longer stops the proxy. The service used to
shut itself down when the app left the recents list, so Telegram lost the proxy
as soon as the window was dismissed. The proxy now keeps running with its
ongoing notification; stopping it is an explicit action inside the app.

Update offers are less pushy. A version you turn down is remembered and not
offered again, and the update dialog no longer pops up right after the setup
wizard has already asked about it.


Что нового

Мастер первичной настройки. Проводит по тем настройкам, где действительно
нужно решение: обновления, порт и секрет, автозапуск, где показывать статус.
В конце запускает прокси и выдаёт ссылку для подключения. Шаги, которым нечего
спросить, пропускаются сами: на Android нет шага автозапуска, а шаг статуса
не показывается, если доступен всего один режим.

На Android снова грузятся картинки. Движок искал системные сертификаты только
в файлах-связках, как принято в десктопном Linux, поэтому на Android проверка
сертификата не проходила никогда. От неё зависит весь путь через Cloudflare: в
итоге работали лишь датацентры с прямым маршрутом, а остальное упиралось в
заблокированные адреса — переписка открывалась, а изображения нет. На Android
хранилище доверия устроено каталогом, и теперь движок читает и его.

Заблокированные адреса больше не подвешивают загрузку. Подключение к адресу,
который фильтрует провайдер, раньше ждало системного таймаута TCP — больше двух
минут: такой адрес не отказывает в соединении, а молча его проглатывает. Медиа
качается несколькими потоками, и эти зависшие попытки и были загрузкой — она
стояла вместо того, чтобы уйти на запасной маршрут через Cloudflare. Теперь
попытка прекращается через пять секунд и работа продолжается рабочим путём.

Прокси больше не замолкает после сна. На Windows и Android он мог считаться
работающим, пока Telegram отказывался от него с ошибкой о неверных настройках.
Две причины, обе устранены:

  • Заранее прогретые соединения проверялись на живость только в момент выдачи,
    и проверка не замечала, что собеседник закрыл соединение во время простоя.
    Такое мёртвое соединение доставалось следующей сессии, и она обрывалась сразу
    после рукопожатия. Теперь соединения перебираются в фоне каждые пять секунд,
    а проверка живости распознаёт полузакрытые сокеты.
  • Возраст соединения считался по часам, которые останавливаются на время сна
    устройства: час в кармане засчитывался за секунды, и давно мёртвые соединения
    проходили как свежие. Теперь используются обычные часы.

Потерянный слушающий сокет восстанавливается. Windows может закрыть его сам
после смены сетевого адаптера — раньше прокси молча переставал принимать
подключения. Теперь сокет пересоздаётся, и работа продолжается.

Android: смахивание приложения больше не выключает прокси. Служба
останавливала себя, когда приложение уходило из списка недавних, и Telegram
терял прокси сразу после закрытия окна. Теперь прокси продолжает работать
вместе со своим постоянным уведомлением, а выключается явно — из приложения.

Обновления навязываются меньше. Версия, от которой вы отказались,
запоминается и больше не предлагается, а диалог обновления не появляется сразу
после мастера, который уже про него спрашивал.

v2.2.0-beta1

v2.2.0-beta1 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 12 Sep 07:30
v2.2.0-beta1
8896055

What's new

Setup wizard on first launch. Walks through the settings that actually need
a decision — updates, port and secret, autostart, where to show status — then
starts the proxy and hands over the connection link. Steps with nothing to ask
skip themselves: no autostart step on Android, no status step where only one
mode is available.

Media now loads on Android. The engine looked for the system certificate store
only in the bundle files desktop Linux uses, so on Android every verified
connection failed. That guards the Cloudflare path, which meant only the
datacentres with a direct route worked and everything else fell through to
blocked addresses -- in practice, chats loaded and their images did not. Android
keeps its trust store as a hashed directory, which the engine now reads.

Blocked addresses no longer stall transfers. Connecting to an address the ISP
filters used to wait out the kernel's TCP timeout -- over two minutes -- because
such an address swallows the connection attempt instead of refusing it. Media is
fetched over parallel streams, so those stuck attempts were the download: it
stalled rather than failing over to the Cloudflare route. Connections now give up
after five seconds and take the working path.

The proxy no longer goes quiet after sleep. On Windows and Android it could
keep reporting "running" while Telegram refused it with invalid proxy settings.
Two causes, both fixed:

  • Pre-warmed connections were checked for liveness only when handed out, and the
    check missed a peer that had closed the connection while idle. Such a dead
    connection went to the next session, which then broke right after the
    handshake. Connections are now swept in the background every five seconds, and
    the liveness check catches half-closed sockets.
  • Connection age was measured with a clock that stops while the device sleeps,
    so an hour in a pocket counted as seconds and long-dead connections passed as
    fresh. It now uses the wall clock.

A dropped listening socket is rebuilt. Windows can tear it down on its own
after a network adapter change; the proxy used to stop accepting connections
silently. It now restores the socket and carries on.

Android: swiping the app away no longer stops the proxy. The service used to
shut itself down when the app left the recents list, so Telegram lost the proxy
as soon as the window was dismissed. The proxy now keeps running with its
ongoing notification; stopping it is an explicit action inside the app.

Update offers are less pushy. A version you turn down is remembered and not
offered again, and the update dialog no longer pops up right after the setup
wizard has already asked about it.


Что нового

Мастер первичной настройки. Проводит по тем настройкам, где действительно
нужно решение: обновления, порт и секрет, автозапуск, где показывать статус.
В конце запускает прокси и выдаёт ссылку для подключения. Шаги, которым нечего
спросить, пропускаются сами: на Android нет шага автозапуска, а шаг статуса
не показывается, если доступен всего один режим.

На Android снова грузятся картинки. Движок искал системные сертификаты только
в файлах-связках, как принято в десктопном Linux, поэтому на Android проверка
сертификата не проходила никогда. От неё зависит весь путь через Cloudflare: в
итоге работали лишь датацентры с прямым маршрутом, а остальное упиралось в
заблокированные адреса — переписка открывалась, а изображения нет. На Android
хранилище доверия устроено каталогом, и теперь движок читает и его.

Заблокированные адреса больше не подвешивают загрузку. Подключение к адресу,
который фильтрует провайдер, раньше ждало системного таймаута TCP — больше двух
минут: такой адрес не отказывает в соединении, а молча его проглатывает. Медиа
качается несколькими потоками, и эти зависшие попытки и были загрузкой — она
стояла вместо того, чтобы уйти на запасной маршрут через Cloudflare. Теперь
попытка прекращается через пять секунд и работа продолжается рабочим путём.

Прокси больше не замолкает после сна. На Windows и Android он мог считаться
работающим, пока Telegram отказывался от него с ошибкой о неверных настройках.
Две причины, обе устранены:

  • Заранее прогретые соединения проверялись на живость только в момент выдачи,
    и проверка не замечала, что собеседник закрыл соединение во время простоя.
    Такое мёртвое соединение доставалось следующей сессии, и она обрывалась сразу
    после рукопожатия. Теперь соединения перебираются в фоне каждые пять секунд,
    а проверка живости распознаёт полузакрытые сокеты.
  • Возраст соединения считался по часам, которые останавливаются на время сна
    устройства: час в кармане засчитывался за секунды, и давно мёртвые соединения
    проходили как свежие. Теперь используются обычные часы.

Потерянный слушающий сокет восстанавливается. Windows может закрыть его сам
после смены сетевого адаптера — раньше прокси молча переставал принимать
подключения. Теперь сокет пересоздаётся, и работа продолжается.

Android: смахивание приложения больше не выключает прокси. Служба
останавливала себя, когда приложение уходило из списка недавних, и Telegram
терял прокси сразу после закрытия окна. Теперь прокси продолжает работать
вместе со своим постоянным уведомлением, а выключается явно — из приложения.

Обновления навязываются меньше. Версия, от которой вы отказались,
запоминается и больше не предлагается, а диалог обновления не появляется сразу
после мастера, который уже про него спрашивал.

v2.1.0-beta1

v2.1.0-beta1 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 08 Jun 15:40
v2.1.0-beta1
d83caea

Another TGProxy 2.1.0 — beta 1

A Telegram MTProto ⇄ WebSocket proxy (Cloudflare, fake-TLS, TCP fallback):
a GTK4 app plus a background daemon.

What's new

  • In-app updates — check and apply from inside the app (Windows / macOS /
    Android / AppImage): a dialog with the release notes, a download progress bar,
    then the installer is launched (the system installer on Android). Repo-managed
    Linux (native/Flatpak) keeps updating through its repository.
  • Update channels — Release / Beta, switchable in Settings.
  • Single instance — a second launch no longer spawns a copy; it brings the
    running window forward (with an "already running" notice on Windows/macOS).
  • Localization — stock widgets (the About dialog, etc.) are now translated
    in the Windows/macOS/Android bundles too.

Downloads

Platform File
Windows x64 AnotherTGProxy-2.1.0-beta1-windows-x86_64-setup.exe
macOS (Apple Silicon) AnotherTGProxy-2.1.0-beta1-macos-arm64.dmg
macOS (Intel) AnotherTGProxy-2.1.0-beta1-macos-x86_64.dmg
Linux x86_64 (AppImage) AnotherTGProxy-2.1.0-beta1-linux-x86_64.AppImage
Linux x86_64 (Flatpak) AnotherTGProxy-2.1.0-beta1-linux-x86_64.flatpak
Android arm64 AnotherTGProxy-2.1.0-beta1-android-arm64-v8a.apk

The Flatpak bundle installs with flatpak install ./<file>.flatpak (the GNOME
runtime is pulled from flathub). A Flatpak repository is also available (README).

Notes

  • Windows — installer; the app lives in the tray. SmartScreen may warn (unsigned).
  • macOS — unsigned: on first launch use System Settings → Privacy & Security → "Open Anyway". Pick the build for your CPU.
  • Linux — chmod +x the AppImage.
  • Android — allow notifications and disable battery optimization. In-app updates need the "install unknown apps" permission for this source.

Beta — bugs are possible. The Android APK is release-signed; the other binaries are unsigned.


Another TGProxy 2.1.0 — бета 1

Прокси Telegram MTProto ⇄ WebSocket (Cloudflare, fake-TLS, резервный TCP):
приложение на GTK4 + фоновый демон.

Что нового

  • Обновления внутри приложения — проверка и установка прямо из приложения
    (Windows / macOS / Android / AppImage): диалог с описанием релиза, прогресс
    скачивания, затем запуск установщика (на Android — системный установщик).
    Linux из репозиториев (native/Flatpak) обновляется как раньше.
  • Каналы обновлений — «Релиз» / «Бета», переключаются в настройках.
  • Один экземпляр — второй запуск больше не плодит копии, а поднимает уже
    открытое окно (с предупреждением «уже запущено» на Windows/macOS).
  • Локализация — стандартные элементы (диалог «О приложении» и пр.) теперь
    переведены и в сборках под Windows/macOS/Android.

Загрузки

Платформа Файл
Windows x64 AnotherTGProxy-2.1.0-beta1-windows-x86_64-setup.exe
macOS (Apple Silicon) AnotherTGProxy-2.1.0-beta1-macos-arm64.dmg
macOS (Intel) AnotherTGProxy-2.1.0-beta1-macos-x86_64.dmg
Linux x86_64 (AppImage) AnotherTGProxy-2.1.0-beta1-linux-x86_64.AppImage
Linux x86_64 (Flatpak) AnotherTGProxy-2.1.0-beta1-linux-x86_64.flatpak
Android arm64 AnotherTGProxy-2.1.0-beta1-android-arm64-v8a.apk

Flatpak-bundle ставится flatpak install ./<файл>.flatpak (рантайм GNOME
подтянется с flathub). Есть и Flatpak-репозиторий (README).

Нюансы

  • Windows — установщик; приложение в трее. SmartScreen может ругаться (неподписан).
  • macOS — неподписан: при первом запуске Системные настройки → Конфиденциальность и безопасность → «Открыть всё равно». Бери сборку под свой CPU.
  • Linux — chmod +x для AppImage.
  • Android — разреши уведомления и отключи оптимизацию батареи. Для обновления внутри приложения нужно разрешить установку из этого источника.

Бета — возможны баги. Android подписан релизным ключом, остальные бинарники без подписи.

2.0.0-alt1

2.0.0-alt1 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 08 Jun 19:01
d83caea
Merge pull request #2 from Another-TGProxy/devel

In-app updates, release channels, single instance, localized bundles

Another TGProxy 2.0 — beta 1

Pre-release

Choose a tag to compare

@Ampernic Ampernic released this 07 Jun 06:26
d89a008

Another TGProxy 2.0 — бета 1

Прокси Telegram MTProto ⇄ WebSocket (Cloudflare, fake‑TLS, резервный TCP):
приложение на GTK4 + фоновый демон. Первая публичная бета.

Загрузки

Платформа Файл
Windows x64 AnotherTGProxy-2.0.0-beta1-windows-x86_64-setup.exe
macOS (Apple Silicon) AnotherTGProxy-2.0.0-beta1-macos-arm64.dmg
macOS (Intel) AnotherTGProxy-2.0.0-beta1-macos-x86_64.dmg
Linux x86_64 (AppImage) AnotherTGProxy-2.0.0-beta1-linux-x86_64.AppImage
Linux x86_64 (Flatpak) AnotherTGProxy-2.0.0-beta1-linux-x86_64.flatpak
Android arm64 AnotherTGProxy-2.0.0-beta1-android-arm64-v8a.apk

Flatpak-bundle ставится flatpak install ./<файл>.flatpak (рантайм GNOME подтянется
с flathub). Есть и Flatpak-репозиторий (README).

Что внутри

  • Работа в фоне (демон + трей/уведомление), автозапуск при входе (Windows/macOS/Linux).
  • Живая статистика, лог, копирование/открытие tg://proxy. Интерфейс RU/EN.

Нюансы

  • Windows — установщик; приложение в трее. SmartScreen может ругаться (неподписан).
  • macOS — неподписан: первый запуск — правый клик → Открыть. Бери сборку под свой CPU.
  • Linux — chmod +x для AppImage.
  • Android — разреши уведомления и отключи оптимизацию батареи. Старта по загрузке нет.

Бета — возможны баги. Android подписан релизным ключом, остальные бинарники без подписи.


Another TGProxy 2.0 — beta 1

Telegram MTProto ⇄ WebSocket proxy (Cloudflare, fake‑TLS, direct‑TCP fallback):
a GTK4 app + a background daemon. First public beta.

Downloads

Platform File
Windows x64 AnotherTGProxy-2.0.0-beta1-windows-x86_64-setup.exe
macOS (Apple Silicon) AnotherTGProxy-2.0.0-beta1-macos-arm64.dmg
macOS (Intel) AnotherTGProxy-2.0.0-beta1-macos-x86_64.dmg
Linux x86_64 (AppImage) AnotherTGProxy-2.0.0-beta1-linux-x86_64.AppImage
Linux x86_64 (Flatpak) AnotherTGProxy-2.0.0-beta1-linux-x86_64.flatpak
Android arm64 AnotherTGProxy-2.0.0-beta1-android-arm64-v8a.apk

Install the Flatpak bundle with flatpak install ./<file>.flatpak (the GNOME runtime
is pulled from flathub). A Flatpak repo is available too (README).

What's in it

  • Runs in the background (daemon + tray/notification), autostart at login (Windows/macOS/Linux).
  • Live stats, log, copy/open tg://proxy. RU/EN UI.

Notes

  • Windows — installer; lives in the tray. SmartScreen may warn (unsigned).
  • macOS — unsigned: first launch — right‑click → Open. Pick the build for your CPU.
  • Linux — chmod +x the AppImage.
  • Android — allow notifications, disable battery optimization. No start‑on‑boot.

Beta — expect bugs. Android is release‑signed; the other binaries are unsigned.