Проблема со встроенным DownloadManager на Android и VPN

При использовании VPN от antizapret на Android невозможно скачать что-либо через встроенный менеждер загрузок. Загрузка только начинается и сразу завершается. Запускается только после отключения от VPN. Через любые другие сторонние менеджеры загрузок, например от Chrome, все прекрасно скачивается.

Проверить можно в любом приложении, которое использует встроенный менеджер загрузок по умолчанию, например официальный клиент форума 4PDA. При использовании VPN от антизапрета, невозможно скачать какой-либо файл с форума (Примечательно, что форум распознаёт загрузку, увеличивается количество скачавших файл).

Проблема проявляется только при использовании VPN антизапрета. При использовании pac прокси - все работает. Любой другой VPN, включая любую другую конфигурацию для OpenVPN - тоже без проблем скачивает. Проблема проявляется во всех приложениях для настройки OpenVPN на Android.

Вывод logcat при попытке скачивания не многословен:

[10-20 21:01:35.257 9605:1685 D/DownloadManager]
[177] Starting

[10-20 21:01:35.290 9605:1685 W/DownloadManager]
[177] Stop requested with status HTTP_DATA_ERROR: Unable to resolve host “cs5-1.4pda.to”: No address associated with hostname

[10-20 21:01:35.291 9605:1685 D/DownloadManager]
[177] Finished with status WAITING_TO_RETRY

Наблюдаю такую проблему у себя на Redmi Note 3 Pro, как на AOSP Android 7, так и на Android 9.

Похоже, это проблема официального клиента OpenVPN Connect. На OpenVPN for Android работает корректно, и с ядром OpenVPN v2, и с OpenVPN v3.
Напишите о проблеме в https://openvpn.net/portal/login/#/modal-support

Есть ли какая-то простая программа, которая использует этот способ загрузки?

В OpenVPN for Android у меня тоже самое с любыми настройками.

Я выбрал это приложение (OpenVPN for Android) для костыльного решения проблемы - направлять трафик через VPN только для необходимых приложений, чтобы избежать проблем с 4pda, например.

Однако некоторые такие приложения также могут использовать встроенный менеджер. Одно из них Tachiyomi (https://github.com/inorichi/tachiyomi) - приложение для просмотра манги. Оно использует встроенный менеджер для скачивания дополнительных источников манги (ставятся как отдельные приложения). В меню приложения -> Дополнения -> //Установить что-либо//. (Для скачивания самой манги используется отдельный загрузчик, встроенный в приложение ¯_(ツ)_/¯)

Только эта программа и клиент 4pda у меня используют встроенный DownloadManager. Все остальные приложения, а у меня их много, используют свои, и потому проблема не сильно выражена.

Установил Android 7 (LineageOS 14.1) вместо Android 9, и OpenVPN for Android перестал работать тоже. Видимо, это какая-то ошибка либо в компоненте VPNService, либо в DownloadManager. Вряд ли я могу что-то сделать на стороне антизапрета.

Можете написать пошагово, какие действия нужно сделать, чтобы воспроизвести проблему, например, с Tachiyomi? В этой программе не нужно аутентифицироваться для воспроизведения проблемы? Авторы OpenVPN-клиентов вряд ли будут регистрироваться на том же 4pda, с русской капчей, поэтому, если сообщать о проблеме авторам, нужно подробно написать, что и как делать.

Я тут подумал немного и решил кое-что проверить. Есть такой простой браузер для Android - Via. Он тоже использует встроенный в систему менеджер для скачивания, и он также отказывается что-либо качать вместе с VPN от antizapret. Так что воспроизвести проблему просто. Вероятно многие базовые браузеры, которые встроены в прошивки по умолчанию, этому подвержены.

*При этом не важно - заблокирован ресурс или нет.

Да, с Via тоже проблему повторил.

Провел эксперимент — проблема проявляется даже при самой простой конфигурации OpenVPN, даже без DNS.
Отправил сообщения разработчикам OpenVPN Connect и OpenVPN for Android.

Я не сильно шарю в настройке OpenVPN, но я пробовал через EasyOvpn (https://play.google.com/store/apps/details?id=com.easyovpn.easyovpn&hl=ru) подключаться к открытым VPN серверам. У тех серверов, к которым мне удалось подключиться, проблем со скачиванием нет.

Разработчики OpenVPN Connect поставили проблеме низкий приоритет. Разработчик OpenVPN for Android сначала отвечал мне, потом перестал. Попробую создать баг в багтрекере (до этого писал ему на почту).

Проблема в следующем: если DNS-сервер сообщает адрес DNS-сервера, но не перенаправляет весь трафик в туннель (не использует параметр redirect-gateway), то DownloadManager, по какой-то причине, не может зарезолвить домен.

11-05 01:25:21.890  4670  4790 D DownloadManager: [70] Starting
11-05 01:25:21.927  4670  4790 D NetworkSecurityConfig: Using Network Security Config from resource c debugBuild: false
11-05 01:25:21.933  4670  4790 D NetworkSecurityConfig: No Network Security Config specified, using platform default
11-05 01:25:21.938  4670  4790 W DownloadManager: [70] Stop requested with status HTTP_DATA_ERROR: Unable to resolve host "speedtest.tele2.net": No address associated with hostname
11-05 01:25:21.939  4670  4790 D DownloadManager: [70] Finished with status WAITING_TO_RETRY

Проблема воспроизводится следующим образом:

* Download and import this config file https://antizapret.prostovpn.org/antizapret-tcp.ovpn
* Download software which uses DownloadManager, for example, Via browser https://play.google.com/store/apps/details?id=mark.via.gp
* Connect to the VPN, run Via browser and try to download any file. I usually use http://speedtest.tele2.net/1MB.zip for test.

Проблема, судя по всему, в Android, а не в VPN: ошибка наблюдается также с IPsec IKEv2-клиентом strongSwan с аналогичными настройками.

Нашел 2 заведённых бага в трекере Android:
https://issuetracker.google.com/issues/111574523
https://issuetracker.google.com/issues/113978828