¿Cómo me conecto a un Proxy SOCKS desde un iPhone / iPod Touch?

17

Me gusta navegar de forma segura y privada a través de un proxy SOCKS que creé a través de un túnel SSH, en la Mac. Utilicé el cliente SSH en mi Mac para lograr esto. Entonces pensé que, dado que el sistema operativo del iPhone es esencialmente Mac OS, el mismo truco podría funcionar también en el iPhone.

Logré crear un túnel SSh en mi iPhone a través de la Terminal (Terminal del iPhone). (Sí, está en la cárcel rota)

ssh -D [port] [email protected]

En esta etapa, mi iPhone es un proxy SOCKS.

Sin embargo, no parece haber una manera en el panel de preferencias de red del iPhone para especificar un proxy SOCKS. Alguien sugiere crear un archivo de Auto-Contig Proxy (PAC) para solucionar esto, pero eso suena complicado.

¿Alguna idea de cómo hacer que el iPhone use su propio proxy SOCKS?

    
pregunta GeneQ 21.07.2009 - 04:51

7 respuestas

18

Bueno, supongo que no hay mejor manera de hacerlo. Maldición, Apple, ¿es tan difícil poner una configuración de SOCKS Proxy en el panel de configuración de red del iPhone OS? :-(

De todos modos, la mejor respuesta hasta ahora, y la única que pude encontrar en la Red, es de un documento del sitio web SNIPPLR Code 2.0 titulado .

A continuación hay una versión limpia de su solución:

  

Digamos, quizás, que ya está reenviando su tráfico web a través de un túnel SSH / SOCKS en el trabajo (por razones de privacidad) y le gustaría usar ese mismo túnel en su iPhone / iPod Touch. Esto es realmente muy fácil de lograr.

  1. Asegúrese de que el túnel SOCKS en su computadora de trabajo permita conexiones LAN para que su iPhone / iPod Touch pueda conectarse a él.

    ssh -N -g -D 1080 [email protected]
    
  2. Cree un archivo de texto e inserte el siguiente código:

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

    Reemplace las x con su IP y las con con el puerto que usó después de -D en su comando SSH

  3. Guarde el archivo de texto como un archivo de configuración automática de proxy (PAC) en un lugar accesible mediante una extensión .pac .

    Si estás leyendo esto, es probable que sepas cómo servir un archivo a través de HTTP en la LAN de tu trabajo, así que no voy a profundizar en eso.

  4. Finalmente, en su iPhone / iPod Touch, vaya a Configuración → Wi-Fi y haga clic en la flecha azul a la derecha de su red de trabajo. Desplácese hasta la parte inferior, haga clic en Auto y escriba la dirección en su archivo PAC (por ejemplo, enlace ).

Ahora puede navegar la web de forma segura desde su iPhone / iPod touch.

    
respondido por el GeneQ 24.07.2009 - 18:23
4

Wow, gracias por la última respuesta.

Junto con este "SSH para poner tu iPhone en línea mediante un cable USB" blog Después de esto, se me ocurrió una solución de SSH / SOCKS inversa bastante sólida y instantánea a través del cable USB dado solo un servidor SSH en alguna parte de su red. Esto permite que todas mis aplicaciones basadas en TCP usen Internet de un servidor SSH a través de USB a pesar de que mi WiFi es defectuosa y no tengo un plan de datos de teléfono sólido (T-Mobile Prepaid).

No se requiere configuración del servidor proxy.

La esencia de la publicación del blog es que PUEDES controlar el proxy desde la línea de comandos. Usa el archivo:

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

Busque la sección "ip1" (si desea reemplazar la interfaz GPRS / EDGE / 3G) como:

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

¡Tenga cuidado de tener la sección ip1 si desea anular EDGE / 3G! No busque las otras entradas de Proxies en el archivo.

Luego agregue la siguiente sección después:

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

Luego use su truco para especificar un proxy SOCKS en el archivo que acabamos de especificar:

/private/var/preferences/proxy.pac

Añadir:

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

Cambie los permisos en proxy.pac a 777 (todos pueden leer, escribir, ejecutar).

Reinicia el iPhone.

Descargue iTunnel para iTunes 9 (las versiones anteriores también están disponibles). (http://www.mediafire.com/?2q1fzowoy12)

Cree una nueva conexión de masilla: en la sección Conexión > SSH > Túneles agregue un nuevo puerto "remoto" reenviado, como el puerto 202 en el iPhone, a su servidor SSH de Internet (por ejemplo, 192.168.2.100:22 ).

Source Port: 202
Destination: 192.168.2.100:22

En la sección SSH de la misma conexión de masilla, configure su comando remoto en:

ssh -D 1080 [email protected] -p 202

Guarde la configuración de su Putty en una nueva sesión nombrada.

Opcionalmente genere claves & agregue las claves públicas a * ~ / .ssh / authorized_keys * en ambos extremos para que no tenga que escribir contraseñas. Utiliza putty.exe -load "Profile Name" en un acceso directo para acelerarlo aún más.

    
respondido por el thadk 06.02.2010 - 07:19
0

Este mensaje parece sugerir que no es posible hacerlo a través de La línea de comando, si la estoy interpretando correctamente. Creo que eso significa que realmente no puedes, ya que las preferencias de la red no admiten SOCKS.

    
respondido por el jtbandes 21.07.2009 - 05:23
0

iPhone + SSH Tunnel + Socks Proxy = SUCCESS Muy feliz

- > enlace

Gracias por la ayuda :) Ahora puedo usar mi proxy local de calcetines a través de Wifi / 3G / Edge: py también creé un script que recrea el túnel si se ha perdido la conexión;)

    
respondido por el Thireus 14.03.2010 - 19:13
0

Las respuestas anteriores no están bien.

  1. La ssh -D no es un proxy global en el sistema iOS (como iPhone y iPad).

  2. El proxy HTTP tampoco es un proxy global.

Ambos no se pueden usar en la mayoría de los juegos y mensajes instantáneos (mensajería instantánea). Solo para navegar por la web (Safari está bien) pero principalmente solo esto.

La mejor y más sencilla manera en iPhone y iPad es usar VPN. Es un agente global, que puede transferir todos los datos de Internet a través de un servidor VPN remoto. Otra opción es OpenVPN, que ofrece un cliente en iOS.

No hay un programa de este tipo para iPhone y iPad que ejecute el proxy global de calcetines como el de Windows.

    
respondido por el Justso 03.04.2012 - 21:31
0

Encontré una manera de hacer esto sin romper la cárcel, pero necesitarás acceso a un servidor ssh, que puedes alojar en tu propia computadora.

Necesitarás dos aplicaciones de iPhone; iSSH (túnel ssh) y ProxyBrowse (navegador socks5).

También necesitarás un servidor SSH.

Para este ejemplo, llamaremos a nuestro servidor SSH [host] y a nuestra cuenta de usuario para el servidor ssh [usuario].

Servidor SSH

Ejecuta el siguiente comando:

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

Así es, estás en [host] creando un puerto dinámico hacia atrás a [host], verás por qué pronto.

iSSH

"Agregar configuración ...", complete las cosas habituales para el servidor / nombre de usuario / etc. Cerca de la parte inferior puedes elegir SSH > Ninguno, y verá una opción para "Túnel", selecciónela. Elija el botón "Agregar túnel".

Localport: 8080

Dest Host: [host]

Puerto de destino: 8080

Guarda todo y abre la conexión.

ProxyBrowse

Servidor: localhost

Puerto: 8080

No complete el nombre de usuario o la contraseña, no lo necesitará, porque iSSH ya creó el túnel y iSSH continúa ejecutándose en segundo plano en su iPhone.

Eso es todo, ahora puede navegar por la web a través de un túnel SSH.

¿Quieres ir un paso más allá? Instale Tor en su servidor, haga que el túnel iSSH se conecte al puerto Tor y luego, desde su teléfono, podrá navegar por la web de forma anónima.

Para aquellos con inclinaciones técnicas que desean un poco más de detalles sobre lo que acaba de suceder:

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

El navegador proxy SOCKS se comunica a través del túnel de reenvío de puerto local al túnel de reenvío de puerto dinámico en el servidor.

rst

    
respondido por el rst 10.09.2013 - 20:49
0

Si tiene acceso al shell (con jailbreak) y puede colocar el archivo proxy.pac en la ubicación mencionada anteriormente, también puede usar el siguiente enlace para el archivo proxy.pac en las preferencias de Red para la conexión que está intentando al túnel:

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

Junto con un túnel SSH a un servidor SSH en los Estados Unidos, puedo escuchar Pandora / Slacker, etc. a través de Wi-Fi fuera del área de cobertura permitida (es decir, mientras viajo fuera de los Estados Unidos).

    
respondido por el Dre 15.05.2010 - 15:14

Lea otras preguntas en las etiquetas