используя ваш телефон в качестве прокси-сервера

10

Я хотел использовать свой телефон Android в качестве прокси-сервера. Это означало, что я хотел иметь возможность использовать IP-адрес телефона в качестве прокси-сервера, поэтому все запросы и ответы принимаются на телефоне и пересылаются обратно исходному запрашивающему. Как мне это сделать?

штольня
источник

Ответы:

6

Servers Ultimate - это продвинутое приложение для превращения вашего телефона в сервер. Один и тот же разработчик Proxy Server предлагает более простой и основанный исключительно на Proxy Server подход. Как указано в его описании:

Запустите свой собственный прокси-сервер на вашем устройстве! Приложение может обрабатывать протоколы HTTP и HTTPS и запросы GET / POST. Вы даже можете настроить приложение так, чтобы оно перенаправляло все соединения на хост и порт по умолчанию, чтобы вы могли использовать и другие протоколы через сокет!

Они позже добавить

Дополнительные серверы и функции смотрите в нашем приложении Servers Ultimate

Дополнительную информацию о Servers Ultimate можно найти в этой статье на LifeHacker , этой статье о XDA и о собственных потоках приложений XDA .

SarpSTA
источник
Я пытаюсь настроить это так, чтобы я подключался к прокси-серверу с помощью WiFi IP, и все исходящие подключения использовали бы подключение для передачи данных. Возможно ли это?
Arya
Эй @ Арья, ты узнал, как это сделать?
Ник Каррауэй
@ Арья, зацени мой ответ, используя adb
ник carraway
5

Если вы просто заинтересованы в настройке прокси-сервера поверх вашего Wi-Fi, вы можете сделать это с помощью Servers Ultimate довольно легко, но я не знаю, почему кто-то действительно захочет это сделать. Гораздо более полезным вариантом является использование мобильных данных, но, как сказал @Kevin, вы столкнетесь с большим количеством головных болей, а именно на уровне ISP (Verizon, AT & T и т. Д.). Скорее всего, вы не заставите их изменить свою политику NAT для вас.

Трудно использовать ваши мобильные данные в качестве прокси, потому что все входящие соединения заблокированы. Но, если у вас есть ноутбук, подключенный к Wi-Fi, и ваш телефон подключен к ноутбуку через adb, один из вариантов - запустить такую ​​команду:

adb forward tcp:6400 tcp:8080

Эта команда перенаправляет все TCP-соединения, отправленные на порт 6400 вашего хоста (ноутбука), на порт 8080 вашего телефона. Затем настройте прокси-сервер на вашем приложении Servers Ultimate, работающем на порту 8080. Нет необходимости в корне!

Теперь любые запросы к вашему ноутбуку через порт 6400 будут перенаправлены на ваши мобильные данные! Проверьте это, открыв firefox, перейдя в настройки, сети и используя 127.0.0.1 и порт 6400 в качестве прокси. Вы можете открыть свой маршрутизатор для доступа через общедоступный Wi-Fi через этот порт, хотя я рекомендую установить какую-то политику безопасности.

Существует множество обучающих программ для включения параметров разработчика и adb на вашем ноутбуке, это легко.

Ник Каррауэй
источник
Это действительно может сработать :) Я попробую сегодня
Arya
Оно работает! классно!
Арья
Это создаст SOCKS сервер правильно? если кто-то хочет прокси-сервер HTTP, то им придется использовать что-то вроде Polipo для преобразования SOCKS в прокси HTTP?
Арья
If you're just interested in setting a proxy up over your Wifi, you can do that with Servers Ultimate quite easily, but I don't know why anyone would really want to do that. A much more useful option is to use mobile data, Согласны ли вы с тем, что настройка прокси через 4G (в отличие от через WiFi) невозможна с Servers Ultimate? (Я спрашиваю, потому что я мог бы настроить прокси на 4G и хотел бы знать, возможно ли это вообще)
Хартмут
Супер. Спасибо.
Киран,
1

У меня были некоторые проблемы с работой прокси-сервера Servers Ultimate, и я сначала подумал, что это потому, что мой телефон не рутирован. Однако проблема здесь на самом деле не обязательно на уровне ОС, в зависимости от вашего варианта использования.

Если вы пытаетесь использовать мобильное подключение для передачи данных в качестве прокси-сервера, у вас могут возникнуть некоторые проблемы, поскольку большинство поставщиков мобильных данных блокируют любые порты, которые вы обычно можете использовать для настройки прокси-сервера. Лучше всего связаться с провайдером мобильной передачи данных и узнать, есть ли у него открытые порты, превышающие значение 1024 (в целях безопасности Android блокирует порты ниже этого номера).

Кроме того, вы можете:

  • Используйте прокси-сервер на Wi-Fi, но убедитесь, что прокси-порт открыт в вашем маршрутизаторе
  • Получите root права на свой телефон, чтобы вы могли настроить переадресацию портов для использования вашего мобильного подключения для передачи данных
  • Корень телефона, чтобы вы могли использовать значения портов ниже 1024, которые обычно открыты.

Чтобы понять, что это так, попробуйте запустить прокси-сервер Servers Ultimate на Wifi с открытым портом. У вас будет кое-что, что работает, но если ваша цель - использовать мобильные данные, вам сейчас не повезло.

Kevin
источник
0

Если ваш телефон рутирован (или, по крайней мере, загрузчик разблокирован), вы можете запустить tinyproxy (прокси HTTP / HTTPS) в качестве initслужбы. Он работает как с Wi-Fi, так и с Mobile Data, в последнем случае вы должны убедиться, что ваш телефон доступен из Интернета. См. Как подключиться к Android через SSH через публичный IP-адрес 3G / 4G?

  • Создать каталог на /dataили /system:
    ~# mkdir -p /data/local/tinyproxy/tmp
    
  • Создать файл конфигурации:

    # /data/local/tinyproxy/tinyproxy.conf
    
    Port 8080
    Timeout 600
    LogFile "/tinyproxy.log"
    LogLevel Connect
    MaxClients 100
    MinSpareServers 5
    MaxSpareServers 20
    StartServers 5
    MaxRequestsPerChild 0
    ViaProxyName "tinyproxy"
    #BasicAuth <username> <password>
    

    Для дальнейших вариантов конфигурации см. Документацию .

  • Сборка tinyproxyиз источника или может попробовать это . Переместить двоичный файл в /data/local/tinyproxy/и установить разрешения. Используйте AID_NOBODYили любой другой неиспользованный UID для обслуживания:
    ~# cd /data/local/tinyproxy/
    ~# chown -R 9999.9999 .
    ~# chmod 0755 . tmp tinyproxy
    ~# chmod 0644 tinyproxy.conf
    
  • Добавьте следующие строки в /init.rcлюбой другой .rcфайл:

    # /system/etc/init/tinyproxy.rc
    
    service tinyproxy /system/bin/chroot /data/local/tinyproxy /tinyproxy -d -c /tinyproxy.conf
        seclabel u:r:magisk:s0
        user 9999
        group 9999
        disabled
        capabilities NET_RAW NET_BIND_SERVICE SYS_CHROOT
    
    on property:sys.boot_completed=1
        start tinyproxy
    

При использовании любого приложения брандмауэра обязательно разблокируйте входящий порт 8080. Перезагрузите устройство. tinyproxyСервер должен работать с наименьшими привилегиями. Подключение локально или удаленно.


PS:

Если телефон не имеет root-прав или вы хотите дополнительно изолировать прокси-сервер, вы можете исправить политику SELinux, следуя следующим правилам. Используйте supolicyинструмент Magisk или sepolicy-inject:

create tinyproxy
allow init tinyproxy process transition
allow init tinyproxy process { rlimitinh siginh noatsecure }
allow tinyproxy tinyproxy process { getsched fork }
allow tinyproxy toolbox_exec file { entrypoint read getattr execute }
allow tinyproxy tinyproxy dir { search write add_name remove_name }
allow tinyproxy tinyproxy lnk_file read
allow tinyproxy labeledfs filesystem associate
allow tinyproxy tinyproxy file { read open getattr create write append unlink execute execute_no_trans }
allow tinyproxy tinyproxy capability { sys_chroot net_raw }
allow tinyproxy tinyproxy unix_dgram_socket { create connect write }
allow tinyproxy tinyproxy tcp_socket { create connect accept read bind getattr write shutdown setopt listen }
allow tinyproxy port tcp_socket { name_connect name_bind }
allow tinyproxy node tcp_socket node_bind
allow tinyproxy tinyproxy udp_socket { create connect read getattr write bind }
allow tinyproxy node udp_socket node_bind
allow tinyproxy system_data_file file lock
allow tinyproxy tinyproxy file lock
  • Проверьте dmesgна avcотказы, чтобы определить более необходимые правила.
  • Заменить seclabel u:r:magisk:s0в сервисе на seclabel u:r:tinyproxy:s0.
  • Установить контекст SELinux:
    ~# chcon -R u:object_r:tinyproxy:s0 /data/local/tinyproxy
    

Теперь сервис будет работать и без Magisk.


СВЯЗАННЫЕ С:

SOCKS прокси может быть запущен с SSH, смотрите:

Ирфан Латиф
источник