18 votes

utiliser votre téléphone Android comme serveur proxy

Je voulais utiliser mon téléphone Android comme serveur proxy, c'est-à-dire que je voulais pouvoir utiliser l'IP du 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 initial. Comment dois-je m'y prendre ?

13voto

nick carraway Points 101

Si vous êtes simplement intéressé par la mise en place d'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 est d'utiliser les données mobiles, mais comme @Kevin l'a dit, vous allez rencontrer de nombreux problèmes, notamment au niveau des fournisseurs d'accès (Verizon, AT&T, etc.). Il y a de fortes chances que vous n'arriviez pas à les convaincre de 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é en wifi, et votre téléphone connecté à votre ordinateur portable via adb, une option est d'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 serveur Ultimate App fonctionnant sur le port 8080. Pas besoin de Root !

Désormais, toutes les requêtes adressées à votre ordinateur portable sur le port 6400 seront transmises à vos données mobiles ! Testez ceci en ouvrant firefox, en allant dans les paramètres, les réseaux, et en utilisant 127.0.0.1 et le port 6400 comme proxy. Vous pouvez ouvrir votre routeur pour accéder au wifi public en utilisant ce port, bien que je recommande de mettre en place une sorte de politique de sécurité.

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

0 votes

Cela pourrait fonctionner :) Je vais l'essayer aujourd'hui

0 votes

Ça marche ! Génial !

0 votes

Cela créerait un serveur SOCKS, n'est-ce pas ? Si l'on veut un serveur proxy HTTP, il faudrait alors utiliser quelque chose comme Polipo pour convertir SOCKS en proxy HTTP ?

7voto

SarpSTA Points 2629

Serveurs Ultimate est une application avancée permettant de transformer votre téléphone en serveur. Par le même développeur, Serveur Proxy propose une approche plus basique et uniquement "basée sur un serveur proxy". Comme indiqué dans sa description :

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

Ils ajoutent ensuite

Pour plus de serveurs et de fonctionnalités, consultez notre application. Serveurs Ultimate

Pour de plus amples informations sur Servers Ultimate, consultez le site cet article sur LifeHacker , cet article sur XDA et le fil de discussion XDA propre à l'application .

0 votes

J'essaie de configurer cela de manière à ce que je me connecte au serveur proxy en utilisant l'IP WiFi, et que toutes les connexions sortantes utilisent la connexion de données. Est-ce possible ?

0 votes

Hey @Arya, as-tu trouvé comment faire ?

0 votes

@Arya, consultez ma réponse en utilisant adb

2voto

Irfan Latif Points 16863

Si votre téléphone est enraciné (ou au moins le bootloader est déverrouillé), vous pouvez exécuter tinyproxy (proxy HTTP/HTTPS) comme init service. 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 une IP publique 3G/4G ?

  • Créez un répertoire sur /data o /system :

    ~# mkdir -p /data/local/tinyproxy/tmp
  • Créer le 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 d'autres options de configuration, voir documentation .

  • Construire tinyproxy de la source ou peut essayer celui-ci . Déplacer le binaire vers /data/local/tinyproxy/ et définir les autorisations. Utilisez AID_NOBODY ou tout autre UID inutilisé pour le service :

    ~# cd /data/local/tinyproxy/
    ~# chown -R 9999.9999 .
    ~# chmod 0755 . tmp tinyproxy
    ~# chmod 0644 tinyproxy.conf
  • Ajouter les lignes suivantes à /init.rc ou tout autre .rc fichier :

    # /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 pare-feu, assurez-vous de débloquer le port entrant. 8080 . Redémarrez l'appareil. tinyproxy doit être exécuté avec le minimum de privilèges. Connectez-vous localement ou à distance.


PS :

Si le téléphone n'est pas enraciné ou si vous souhaitez renforcer le sandbox du serveur proxy, vous pouvez modifier la politique SELinux avec les règles suivantes. Utiliser Magisk supolicy outil 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
  • Consulte dmesg für avc refus de définir d'autres règles nécessaires.
  • Remplacer seclabel u:r:magisk:s0 en service avec seclabel u:r:tinyproxy:s0 .
  • Définir le contexte SELinux :

    ~# chcon -R u:object_r:tinyproxy:s0 /data/local/tinyproxy

Maintenant le service fonctionnera sans Magisk aussi.


RELATED :

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

0 votes

Je n'arrive pas à faire fonctionner la partie chroot sur 2 téléphones différents. à chaque fois, il y a un échec : chroot: exec /tinyproxy: No such file or directory - sans chroot, tinyproxy fonctionne bien (bien que je doive créer /tmp pour lui)

1voto

Kevin Points 11

J'ai eu quelques difficultés à faire fonctionner le serveur proxy de Servers Ultimate, et ma première idée est que c'est parce que mon téléphone n'est pas enraciné. Cependant, le problème ici n'est en fait 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 risquez d'avoir des difficultés, car la plupart des fournisseurs de données mobiles bloquent tous les ports que vous pourriez normalement utiliser pour configurer un proxy. Votre meilleure chance est de contacter le fournisseur de données mobiles et de voir s'il a des ports ouverts au-delà de la valeur 1024 (Android bloque les ports en dessous de ce nombre pour des raisons de sécurité).

Vous pouvez également le faire :

  • Utilisez un serveur proxy sur Wifi, mais assurez-vous que le port du proxy est ouvert dans votre routeur
  • Créez une racine dans votre téléphone pour pouvoir configurer la redirection de port afin d'utiliser votre téléphone. connexion de données mobile
  • Rootez votre téléphone afin de pouvoir utiliser des valeurs de port inférieures à 1024 qui sont généralement ouverts.

Pour vous en rendre compte, 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 le moment.

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X