Verwenden Sie Ihr Android-Handy als Proxy-Server


10

Ich wollte mein Android-Telefon als Proxyserver verwenden, was bedeutete, dass ich die IP-Adresse des Telefons als Proxy verwenden wollte, damit alle Anfragen und Antworten auf dem Telefon empfangen und an den ursprünglichen Anforderer weitergeleitet werden. Wie mache ich das?

Antworten:


6

Servers Ultimate ist eine erweiterte App, mit der Sie Ihr Telefon in einen Server verwandeln können. Von demselben Entwickler bietet Proxy Server einen grundlegenderen und ausschließlich auf "Proxy Server basierenden" Ansatz. Wie in der Beschreibung angegeben:

Führen Sie Ihren eigenen Proxyserver auf Ihrem Gerät aus! Die App kann HTTP- und HTTPS-Protokolle sowie GET / POST-Anforderungen verarbeiten. Sie können die App sogar so einstellen, dass alle Verbindungen an einen Standardhost und -port weitergeleitet werden, sodass Sie auch andere Protokolle über den Socket verwenden können!

Sie fügen später hinzu

Weitere Server und Funktionen finden Sie in unserer App Servers Ultimate

Weitere Informationen zu Servers Ultimate finden Sie in diesem Artikel zu LifeHacker , in diesem Artikel zu XDA und im XDA-Thread der Apps .


Ich versuche dies so einzurichten, dass ich über die WiFi-IP eine Verbindung zum Proxyserver herstelle und alle ausgehenden Verbindungen die Datenverbindung verwenden. Ist dies möglich?
Arya

Hey @Arya, hast du herausgefunden, wie das geht?
Nick Carraway

@Arya, überprüfen Sie meine Antwort mit adb
nick carraway

5

Wenn Sie nur daran interessiert sind, einen Proxy über Ihr WLAN einzurichten, können Sie dies ganz einfach mit Servers Ultimate tun, aber ich weiß nicht, warum das wirklich jemand tun möchte. Eine viel nützlichere Option ist die Verwendung mobiler Daten, aber wie @Kevin sagte, werden Sie viele Kopfschmerzen bekommen, insbesondere auf ISP-Ebene (Verizon, AT & T usw.). Möglicherweise werden Sie sie nicht dazu bringen, ihre NAT-Richtlinie für Sie zu ändern.

Es ist schwierig, Ihre mobilen Daten als Proxy zu verwenden, da alle eingehenden Verbindungen blockiert sind. Wenn Sie jedoch einen Laptop mit WLAN verbunden haben und Ihr Telefon über ADB mit Ihrem Laptop verbunden ist, können Sie einen Befehl wie den folgenden ausführen:

adb forward tcp:6400 tcp:8080

Dieser Befehl leitet alle an den 6400-Port Ihres Hosts (Laptops) gesendeten TCP-Verbindungen an den 8080-Port Ihres Telefons weiter. Richten Sie als Nächstes einen Proxyserver auf Ihrer Servers Ultimate App ein, der auf Port 8080 ausgeführt wird. Kein Root erforderlich!

Jetzt werden alle Anfragen an Ihren Laptop über Port 6400 an Ihre mobilen Daten weitergeleitet! Testen Sie dies, indem Sie Firefox öffnen, zu Einstellungen, Netzwerke wechseln und 127.0.0.1 und Port 6400 als Proxy verwenden. Sie können Ihren Router über diesen Port für den Zugriff über öffentliches WLAN öffnen, obwohl ich empfehle, eine Sicherheitsrichtlinie einzurichten.

Es gibt unzählige Tutorials zum Aktivieren von Entwickleroptionen und AdB auf Ihrem Laptop. Es ist ganz einfach.


Das könnte tatsächlich funktionieren :) Ich werde es heute versuchen
Arya

Es klappt! genial!
Arya

Dies würde einen SOCKS-Server erstellen, oder? Wenn man einen HTTP-Proxyserver haben wollte, musste man so etwas wie Polipo verwenden, um SOCKS in einen HTTP-Proxy zu konvertieren.
Arya

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, Stimmen Sie zu, dass das Einrichten eines Proxys über 4G (im Gegensatz zu über WLAN) mit Servers Ultimate nicht möglich ist? (Ich frage, weil ich einen Proxy über 4G einrichten könnte und gerne wissen würde, ob es überhaupt möglich ist)
Hartmut

Super. Vielen Dank.
Kiran

1

Ich hatte einige Probleme damit, den Proxyserver von Servers Ultimate zum Laufen zu bringen, und mein erster Gedanke ist, dass mein Telefon nicht gerootet ist. Das Problem liegt hier jedoch nicht unbedingt auf Betriebssystemebene, abhängig von Ihrem Anwendungsfall.

Wenn Sie versuchen, Ihre mobile Datenverbindung als Proxy zu verwenden, können Probleme auftreten, da die meisten mobilen Datenanbieter alle Ports blockieren, die Sie normalerweise zum Einrichten eines Proxys verwenden können. Wenden Sie sich am besten an den Mobilfunkanbieter, um festzustellen, ob Ports verfügbar sind, die über den Wert 1024 hinaus geöffnet sind (Android blockiert Ports aus Sicherheitsgründen unter dieser Nummer).

Alternativ können Sie:

  • Verwenden Sie einen Proxyserver für WLAN, stellen Sie jedoch sicher, dass der Proxy-Port in Ihrem Router geöffnet ist
  • Rooten Sie Ihr Telefon, damit Sie die Portweiterleitung für die Verwendung Ihrer mobilen Datenverbindung einrichten können
  • Rooten Sie Ihr Telefon, damit Sie Portwerte unter 1024 verwenden können, die normalerweise geöffnet sind.

Um dies zu erkennen, versuchen Sie, einen Servers Ultimate-Proxyserver auf Wifi mit geöffnetem Port auszuführen. Sie haben etwas, das funktioniert, aber wenn Sie mobile Daten verwenden möchten, haben Sie vorerst kein Glück.


0

Wenn Ihr Telefon gerootet ist (oder zumindest der Bootloader entsperrt ist), können Sie tinyproxy (HTTP / HTTPS-Proxy) als initDienst ausführen . Es funktioniert sowohl mit Wi-Fi als auch mit mobilen Daten. In letzterem Fall müssen Sie sicherstellen, dass Ihr Telefon über das Internet erreichbar ist. Siehe So stellen Sie über SSH über öffentliche 3G / 4G-IP eine Verbindung zu Android her

  • Erstellen Sie ein Verzeichnis auf /dataoder /system:
    ~# mkdir -p /data/local/tinyproxy/tmp
    
  • Konfigurationsdatei erstellen:

    # /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>
    

    Weitere Konfigurationsoptionen finden Sie in der Dokumentation .

  • Erstellen Sie tinyproxyaus dem Quellcode oder versuchen Sie es mit diesem . Verschieben Sie die Binärdatei nach /data/local/tinyproxy/und legen Sie die Berechtigungen fest. Verwenden Sie AID_NOBODYeine andere nicht verwendete UID für den Service:
    ~# cd /data/local/tinyproxy/
    ~# chown -R 9999.9999 .
    ~# chmod 0755 . tmp tinyproxy
    ~# chmod 0644 tinyproxy.conf
    
  • Fügen Sie der /init.rcoder einer anderen .rcDatei folgende Zeilen hinzu :

    # /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
    

Wenn Sie eine Firewall-App verwenden, müssen Sie den eingehenden Port entsperren 8080. Gerät neustarten. tinyproxyDer Server sollte mit den geringsten Berechtigungen ausgeführt werden. Stellen Sie eine lokale oder Remote-Verbindung her.


PS:

Wenn das Telefon nicht gerootet ist oder Sie den Proxyserver weiter sandboxen möchten, können Sie die SELinux-Richtlinie mit den folgenden Regeln patchen. Verwenden Sie das Magisk- supolicyTool oder 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
  • Suchen Sie dmesgnach avcAblehnungen, um weitere erforderliche Regeln zu definieren.
  • Im Betrieb ersetzen seclabel u:r:magisk:s0durch seclabel u:r:tinyproxy:s0.
  • SELinux-Kontext festlegen:
    ~# chcon -R u:object_r:tinyproxy:s0 /data/local/tinyproxy
    

Jetzt läuft der Dienst auch ohne Magisk.


VERBUNDEN:

Der SOCKS-Proxy kann mit SSH ausgeführt werden, siehe:

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.