Comment puis-je me connecter à un proxy SOCKS à partir d'un iPhone / iPod Touch?

19

J'aime surfer en toute sécurité et en privé via un proxy SOCKS que j'ai créé via tunneling SSH, sur Mac. J'ai utilisé le client SSH sur mon Mac pour y parvenir. Ensuite, j'ai pensé, puisque l'iPhone OS est essentiellement Mac OS, la même astuce pourrait fonctionner également sur l'iPhone.

J'ai réussi à créer un tunnel SSh sur mon iPhone via le terminal (terminal de l'iPhone). (Oui, c'est une prison brisée)

ssh -D [port] [email protected]

À ce stade, mon iPhone est un proxy SOCKS.

Cependant, il ne semble pas y avoir de moyen dans le panneau de préférences de mise en réseau iPhone pour spécifier un proxy SOCKS. Quelqu'un suggère de créer un fichier PAC (Proxy Auto-Contig) pour contourner ce problème, mais cela semble compliqué.

Avez-vous des idées sur la façon d'utiliser l'iPhone avec son propre proxy SOCKS?

GeneQ
la source

Réponses:

20

Eh bien, je suppose qu'il n'y a pas de meilleure façon de le faire. Bon sang Apple, est-il si difficile de mettre un paramètre de proxy SOCKS dans le panneau des paramètres réseau de l'iPhone OS? :-(

Quoi qu'il en soit, la meilleure réponse jusqu'à présent, et la seule que j'ai pu trouver sur le Net, provient d'un document du site Web SNIPPLR Code 2.0 intitulé Comment se connecter à un proxy SOCKS à partir d'un iPhone / iPod Touch non rompu .

Voici une version nettoyée de leur solution:

Disons, peut-être, que vous transférez déjà votre trafic Web via un tunnel SSH / SOCKS au travail (pour des raisons de confidentialité) et que vous souhaitez utiliser ce même tunnel sur votre iPhone / iPod Touch. C'est en fait assez facile à réaliser.

  1. Assurez-vous que le tunnel SOCKS sur votre ordinateur de travail autorise les connexions LAN pour que votre iPhone / iPod Touch puisse s'y connecter.

    ssh -N -g -D 1080 [email protected]
    
  2. Créez un fichier texte et insérez le code suivant:

    function FindProxyForURL(url, host)
    { 
         return "SOCKS 192.168.xx.xx:yyyy";
    }
    

    Remplacez les x par votre IP et les y par le port que vous avez utilisé après le -D dans votre commande SSH

  3. Enregistrez le fichier texte en tant que fichier de configuration automatique de proxy (PAC) dans un emplacement accessible sur le Web avec une extension .pac .

    Si vous lisez ces chances, vous savez comment servir un fichier via HTTP sur votre réseau local de travail, donc je ne m'y attarderai pas.

  4. Enfin, sur votre iPhone / iPod Touch, accédez à Paramètres → Wi-Fi et cliquez sur la flèche bleue à droite de votre réseau professionnel. Faites défiler vers le bas, cliquez sur Auto et tapez l'adresse de votre fichier PAC (par exemple http: //192.168.xx.xx/mysupersecretproxy.pac ).

Vous pouvez désormais surfer sur le Web en toute sécurité depuis votre iPhone / iPod touch.

GeneQ
la source
Cela couvre le cas d'utilisation WIFI, mais pas la liaison réseau 2g / 3g.
Douglas s'est tenue
Cela ne va-t-il pas à l'encontre de l'objectif du tunnel ssh? Le trafic entre l'iPhone et l'ordinateur ne sera-t-il pas crypté?
JBis
Il semble également que le paramètre proxy soit ignoré lors de la connexion à un VPN (WireGuard), ce qui est ennuyeux, car je voulais m'appuyer sur cela pour crypter la connexion entre l'appareil iOS et le serveur en cours d'exécution ssh -gD. Retour à la planche à dessin.
sjy
4

Wow merci pour cette dernière réponse.

Avec cet article de blog "SSH pour mettre votre iPhone en ligne via un câble USB" , j'ai trouvé une solution SSH / SOCKS inversée assez solide sur un câble USB, uniquement avec un serveur SSH quelque part sur votre réseau. Cela permet à toutes mes applications basées sur TCP d'utiliser Internet d'un serveur SSH via USB malgré que mon WiFi soit défectueux et ne dispose pas d'un plan de données de téléphone solide (T-Mobile Prepaid).

Aucune configuration de serveur proxy requise.

L'essentiel de l'article de blog est que vous POUVEZ contrôler le proxy à partir de la ligne de commande. Utilisez le fichier:

/private/var/preferences/SystemConfiguration/preferences.plist

Trouvez la section "ip1" (si vous souhaitez remplacer l'interface GPRS / EDGE / 3G) comme:

<dict>
<key>Interface</key>
<dict>
<key>DeviceName</key>
<string>ip1</string>
<key>Hardware</key>
<string>com.apple.CommCenter</string>
<key>Type</key>
<string>com.apple.CommCenter</string>
</dict>

Faites attention à ce que vous ayez la section ip1 si vous voulez remplacer EDGE / 3G! Ne recherchez pas les autres entrées de proxys dans le fichier.

Ajoutez ensuite la section suivante:

<key>Proxies</key>
<dict>
<key>ProxyAutoConfigEnable</key>
<integer>1</integer>
<key>ProxyAutoConfigURLString</key>
<string>file:///private/var/preferences/proxy.pac</string>
</dict>

Utilisez ensuite votre astuce pour spécifier un proxy SOCKS dans le fichier que nous venons de spécifier:

/private/var/preferences/proxy.pac

Ajouter:

function FindProxyForURL(url, host)
{ 
     return "SOCKS 127.0.0.1:1080";
}

Modifiez les autorisations sur proxy.pac en 777 (tous peuvent lire, écrire, exécuter).

Redémarrez l'iPhone.

Téléchargez iTunnel pour iTunes 9 (des versions plus anciennes sont également disponibles). (http://www.mediafire.com/?2q1fzowoy12)

Créez une nouvelle connexion Putty: dans la section Connexion> SSH> Tunnels, ajoutez un nouveau port "distant" transféré, comme le port 202 sur l'iPhone à votre serveur SSH accessible sur Internet (par exemple, 192.168.2.100:22).

Source Port: 202
Destination: 192.168.2.100:22

Dans la section SSH de la même connexion Putty, définissez votre commande à distance sur:

ssh -D 1080 [email protected] -p 202

Enregistrez votre configuration Putty dans une nouvelle session nommée.

Générez éventuellement des clés et ajoutez les clés publiques à * ~ ​​/ .ssh / authorized_keys * aux deux extrémités afin de ne pas avoir à taper de mots de passe. Utilisez putty.exe -load "Profile Name" dans un raccourci pour l'accélérer encore plus.

thadk
la source
Bien sûr, si vous exécutez un serveur OpenSSH sur Windows avec Cygwin ou quelque chose, vous pouvez probablement simplement sauter le tunnel intermédiaire.
Thadk
Voici quelqu'un qui fait l'inverse de cela pour faire un partage de
thadk
0

Ce message semble suggérer qu'il n'est pas possible de le faire via la ligne de commande, si je l'interprète correctement. Je pense que cela signifie que vous ne pouvez vraiment pas du tout, car les préférences réseau ne prennent pas en charge SOCKS.

jtbandes
la source
Ce site indique qu'il n'y a aucun problème avec la création du proxy SOCKS, mais le paramètre doit être défini à l'aide des fichiers PAC. J'étais wodnerign s'il y avait un moyen plus facile. snipplr.com/view/16563/…
GeneQ
0

Les réponses ci-dessus ne sont pas correctes.

  1. Le ssh -D n'est pas un proxy global sur le système iOS (comme l'iPhone et l'iPad).

  2. Le proxy HTTP n'est pas non plus un proxy global.

Ils ne peuvent pas être utilisés tous les deux sur la plupart des jeux et sur la messagerie instantanée (messagerie instantanée). C'est juste pour une certaine navigation sur le Web (Safari va bien), mais surtout pour cela.

Le moyen le meilleur et le plus simple sur iPhone et iPad est d'utiliser un VPN. C'est un agent global, qui peut transférer toutes les données Internet via un serveur VPN distant. Un autre choix est OpenVPN, qui donne un client sur iOS.

Il n'y a pas un tel programme pour iPhone et iPad pour exécuter un proxy global de chaussettes comme celui-ci sur Windows.

Justso
la source
0

J'ai trouvé un moyen de le faire sans jailbreak, mais vous aurez besoin d'accéder à un serveur ssh, que vous pourriez héberger sur votre propre ordinateur personnel.

Vous aurez besoin de deux applications iPhone; iSSH (tunnel ssh) et ProxyBrowse (navigateur socks5).

Vous aurez également besoin d'un serveur SSH.

Pour cet exemple, nous appellerons notre serveur SSH [hôte] et notre compte d'utilisateur pour le serveur ssh [utilisateur].


Serveur SSH

Exécutez la commande suivante:

SSH -f -N -D 8080 [user]@[host]

C'est vrai, vous êtes sur [hôte] créant un port dynamique vers [hôte], vous verrez pourquoi bientôt.


iSSH

"Ajouter une configuration ...", remplissez les éléments habituels pour le serveur / nom d'utilisateur / etc. Près du bas, vous pouvez choisir SSH> Aucun, et vous verrez une option pour "Tunnel", sélectionnez-la. Choisissez le bouton "Ajouter un tunnel".

Port local: 8080

Hôte de destination: [hôte]

Port de destination: 8080

Enregistrez tout et ouvrez la connexion.


ProxyBrowse

Serveur: localhost

Port: 8080

Ne remplissez pas le nom d'utilisateur ou le mot de passe, vous n'en aurez pas besoin, car iSSH a déjà créé le tunnel et iSSH continue de fonctionner en arrière-plan sur votre iPhone.

Voilà, vous pouvez maintenant naviguer sur le Web via un tunnel SSH.


Vous voulez aller plus loin? Installez Tor sur votre serveur, connectez le tunnel iSSH au port Tor, puis à partir de votre téléphone, vous pouvez vraiment naviguer sur le Web de manière anonyme.

Pour les personnes techniquement enclines qui veulent un peu plus de détails sur ce qui vient de se passer:

[host] : ssh -f -N -D 8080 [host]
[client_tunnel] : ssh -L 8080:localhost:8080 [host]
[client_socks5] : localhost:8080

Le navigateur proxy SOCKS communique via le tunnel de redirection de port local vers le tunnel de redirection de port dynamique sur le serveur.

premier

premier
la source
Cela ne couvre aucun des accès réseau à l'exception de ProxyBrowse. L'email, par exemple, n'est pas protégé.
Douglas s'est tenue
0

Si vous avez accès au shell (jailbreaké) et pouvez placer le proxy.pacfichier à l'emplacement mentionné ci-dessus, vous pouvez également utiliser le lien suivant pour le proxy.pacfichier dans les préférences réseau pour la connexion que vous essayez de tunneler:

file://private/var/preferences/proxy.pac

Avec un tunnel SSH vers un serveur SSH aux États-Unis, je peux écouter Pandora / Slacker, etc. via
Wi-Fi en dehors de la zone de couverture autorisée (c'est-à-dire en voyageant en dehors des États-Unis).

user3439894
la source