utiliser votre téléphone Android comme serveur proxy

10

Je voulais utiliser mon téléphone Android comme serveur proxy, ce qui signifie que je voulais pouvoir utiliser l'IP sur le téléphone comme proxy, de sorte que toutes les demandes et réponses soient reçues sur le téléphone et renvoyées au demandeur d'origine. Comment puis-je faire cela?

adit
la source

Réponses:

6

Servers Ultimate est une application avancée pour transformer votre téléphone en serveur. Par le même développeur, Proxy Server propose une approche plus basique et uniquement "basée sur Proxy Server". Comme indiqué sur sa description:

Exécutez votre propre serveur proxy sur votre appareil! L'application peut gérer les protocoles HTTP et HTTPS et les demandes GET / POST. Vous pouvez même configurer l'application pour transférer toutes les connexions vers un hôte et un port par défaut afin que vous puissiez également utiliser d'autres protocoles via le socket!

Ils ajoutent plus tard

Pour plus de serveurs et de fonctionnalités, jetez un œil à notre application Servers Ultimate

Pour obtenir des informations supplémentaires sur Servers Ultimate, consultez cet article sur LifeHacker , cet article sur XDA et le thread XDA des applications .

SarpSTA
la source
J'essaie de configurer cela de manière à me connecter au serveur proxy à l'aide de l'IP WiFi, et toutes les connexions sortantes utiliseraient la connexion de données. Est-ce possible?
Arya
Hé @Arya, as-tu découvert comment faire ça?
nick carraway
@Arya, consultez ma réponse en utilisant adb
nick carraway
5

Si vous souhaitez simplement configurer un proxy sur votre Wifi, vous pouvez le faire avec Servers Ultimate assez facilement, mais je ne sais pas pourquoi quelqu'un voudrait vraiment le faire. Une option beaucoup plus utile consiste à utiliser les données mobiles, mais comme @Kevin l'a dit, vous allez rencontrer beaucoup de maux de tête, notamment au niveau du FAI (Verizon, AT&T, etc.). Il y a de fortes chances que vous ne les incitiez pas à modifier leur politique NAT pour vous.

Il est difficile d'utiliser vos données mobiles comme proxy car toutes les connexions entrantes sont bloquées. Mais, si vous avez un ordinateur portable connecté au wifi et votre téléphone connecté à votre ordinateur portable via adb, une option consiste à exécuter une commande comme celle-ci:

adb forward tcp:6400 tcp:8080

Cette commande transfère toutes les connexions TCP envoyées au port 6400 de votre hôte (ordinateur portable) vers le port 8080 de votre téléphone. Ensuite, configurez un serveur proxy sur votre application Servers Ultimate exécutée sur le port 8080. Aucune racine requise!

Désormais, toutes les demandes adressées à votre ordinateur portable via le port 6400 seront transmises à vos données mobiles! Testez cela en ouvrant Firefox, en allant dans Paramètres, Réseaux et en utilisant 127.0.0.1 et le port 6400 comme proxy. Vous pouvez ouvrir votre routeur pour accéder via le wifi public en utilisant ce port, bien que je recommande de mettre en place une sorte de politique de sécurité.

Il y a des tonnes de tutoriels pour activer les options de développeur et adb sur votre ordinateur portable, c'est facile.

nick carraway
la source
Cela pourrait réellement fonctionner :) Je vais l'essayer aujourd'hui
Arya
Ça marche! impressionnant!
Arya
Cela créerait un serveur SOCKS à droite? si l'on voulait un serveur proxy HTTP, ils devraient utiliser quelque chose comme Polipo pour convertir SOCKS en proxy HTTP?
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, Acceptez-vous que la configuration d'un proxy sur 4G (par opposition à WiFi) ne soit pas possible avec Servers Ultimate? (Je demande parce que je pourrais mettre en place un proxy sur 4G et je voudrais savoir si c'est possible)
hartmut
Super. Je vous remercie.
Kiran
1

J'ai eu du mal à faire fonctionner le serveur proxy de Servers Ultimate, et ma première pensée est que c'est parce que mon téléphone n'est pas rooté. Cependant, le problème ici n'est pas nécessairement au niveau du système d'exploitation, selon votre cas d'utilisation.

Si vous essayez d'utiliser votre connexion de données mobiles comme proxy, vous pourriez avoir des problèmes, car la plupart des fournisseurs de données mobiles bloqueront tous les ports que vous seriez normalement en mesure d'utiliser pour configurer un proxy. Le mieux est de contacter le fournisseur de données mobiles et de voir s'il a des ports ouverts au-delà de 1024 (Android bloque les ports en dessous de ce nombre pour des raisons de sécurité).

Vous pouvez également:

  • Utilisez un serveur proxy sur Wifi, mais assurez-vous que le port proxy est ouvert dans votre routeur
  • Rooter votre téléphone afin que vous puissiez configurer la redirection de port pour utiliser votre connexion de données mobile
  • Rooter votre téléphone afin que vous puissiez utiliser des valeurs de port inférieures à 1024 qui sont généralement ouvertes.

Pour réaliser que c'est le cas, essayez d'exécuter un serveur proxy Servers Ultimate sur Wifi avec son port ouvert. Vous aurez quelque chose qui fonctionne, mais si votre objectif est d'utiliser les données mobiles, vous n'avez pas de chance pour l'instant.

Kevin
la source
0

Si votre téléphone est enraciné (ou au moins le chargeur de démarrage est déverrouillé), vous pouvez exécuter tinyproxy (proxy HTTP / HTTPS) en tant que initservice. Il fonctionne à la fois avec le Wi-Fi et les données mobiles, dans ce dernier cas, vous devez vous assurer que votre téléphone est accessible depuis Internet. Voir Comment se connecter à Android via SSH sur IP publique 3G / 4G?

  • Créez un répertoire sur /dataou /system:
    ~# mkdir -p /data/local/tinyproxy/tmp
    
  • Créer un fichier de configuration:

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

    Pour plus d'options de configuration, voir la documentation .

  • Construisez à tinyproxypartir des sources ou essayez celui-ci . Déplacez le binaire vers /data/local/tinyproxy/et définissez les autorisations. Utiliser AID_NOBODYou tout autre UID inutilisé pour le service:
    ~# cd /data/local/tinyproxy/
    ~# chown -R 9999.9999 .
    ~# chmod 0755 . tmp tinyproxy
    ~# chmod 0644 tinyproxy.conf
    
  • Ajoutez les lignes suivantes à /init.rcou tout autre .rcfichier:

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

Si vous utilisez une application de pare-feu, assurez-vous de débloquer le port entrant 8080. Redémarrez l'appareil. tinyproxyle serveur doit fonctionner avec le moins de privilèges. Connectez-vous localement ou à distance.


PS:

Si le téléphone n'est pas enraciné ou si vous souhaitez continuer à sandboxer le serveur proxy, vous pouvez patcher la stratégie SELinux avec les règles suivantes. Utilisez l' supolicyoutil Magisk ou 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
  • Vérifiez dmesgpour avcrefus de définir des règles plus nécessaires.
  • Remplacer seclabel u:r:magisk:s0en service par seclabel u:r:tinyproxy:s0.
  • Définissez le contexte SELinux:
    ~# chcon -R u:object_r:tinyproxy:s0 /data/local/tinyproxy
    

Désormais, le service fonctionnera également sans Magisk.


EN RELATION:

Le proxy SOCKS peut être exécuté avec SSH, voir:

Irfan Latif
la source