У меня есть ядро прокси, написанное на Golang, которое я скомпилировал как AAR (архив Android) для использования в своем приложении Android Kotlin. Когда я запускаю VPN с помощью vpnservice.Builder, я направляю весь трафик на свое прокси-приложение builder.route("0.0.0.0", 0). Однако у меня возникла проблема с циклическими соединениями.
Вот что происходит:
Код: Выделить всё
1-The proxy client tries to connect to the proxy server.
2-The request loops back to the client because all traffic is routed to my proxy client app.
В документации Android я нашел метод Protect(), который может защитить сокет и маршрутизировать соединения через сетевой стек вместо интерфейса VPN. Хотя этот метод полезен, мое приложение создает новый сокет в коде Golang для каждого нового соединения на устройстве. В результате я не могу защитить большое количество сокетов в секунду в Android.
Как мне решить эту проблему, чтобы избежать циклических соединений в моем прокси-приложении?
Будем очень признательны за любые предложения или альтернативные подходы.
Подробнее здесь:
https://stackoverflow.com/questions/787 ... ndroid-vpn