Мобильное приложение для Android, позволяющее запускать локальный HTTP прокси-сервер, который перенаправляет трафик через цепочку внешних прокси (HTTP, HTTPS, SOCKS5).
- Локальный Прокси: Запуск HTTP прокси-сервера на устройстве (localhost).
- Управление Прокси: CRUD (создание, чтение, обновление, удаление) список внешних прокси-серверов.
- Поддержка протоколов: Поддержка upstream (внешних) прокси типов HTTP, HTTPS и SOCKS5.
- Персистентность: Сохранение настроек и списка прокси в базе данных.
- UX/UI: Современный интерфейс на Jetpack Compose (Material 3).
- Откройте проект в Android Studio.
- Подключите телефон по USB (убедитесь, что включена "Отладка по USB").
- Нажмите кнопку Run (зеленый треугольник).
- Подключите телефон по USB.
- В корне проекта выполните команду:
./gradlew installDebug
- Приложение будет установлено на телефон. Ищите иконку Proxy Switcher.
- Выполните команду:
./gradlew assembleDebug
- Заберите APK файл по пути:
app/build/outputs/apk/debug/app-debug.apk - Перекиньте файл на телефон и установите.
- Настройка прокси в приложении:
- Запустите приложение.
- Нажмите иконку шестеренки (справа сверху).
- Нажмите
+и добавьте внешний прокси (Host, Port, Type). - Сохраните.
- Запуск сервера:
- На главном экране выберите созданный прокси.
- Нажмите START PROXY.
- Настройка телефона:
- Перейдите в настройки Wi-Fi текущей сети.
- Установите Прокси: Вручную.
- Хост:
127.0.0.1(илиlocalhost). - Порт:
8080.
- Язык: Kotlin
- UI: Jetpack Compose (Material 3)
- Архитектура: MVVM + Clean Architecture
- DI: Hilt
- DB: Room
- Network: Java Sockets (Custom Proxy Core)
- Background: Foreground Service
Класс, отвечающий за:
- Открытие
ServerSocketна локальном порту. - Прием соединений (
accept). - Парсинг первого HTTP заголовка для определения цели.
- Установление соединения с целевым сервером (напрямую или через Upstream Proxy).
- Передача данных (Piping) между клиентом и целью (
InputStream<->OutputStream).
Репозиторий для управления списком прокси (Room Database).
Android Service (Foreground), который держит ProxyServerCore запущенным и показывает уведомление "Proxy is running".