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

19

Me gusta navegar de forma segura y privada a través de un proxy SOCKS que creé a través de túneles SSH, en la Mac. Utilicé el cliente SSH en mi Mac para lograr esto. Entonces pensé, ya que el iPhone OS 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 de iPhone). (Sí, está roto en la cárcel)

ssh -D [port] [email protected]

En esta etapa, mi iPhone es proxy SOCKS.

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

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

GeneQ
fuente

Respuestas:

20

Bueno, supongo, no hay mejor manera de hacerlo. Maldita sea Apple, ¿es tan difícil poner una configuración de Proxy SOCKS 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 Cómo conectarse a un proxy SOCKS desde un iPhone / iPod Touch sin interrupciones .

A continuación se muestra una versión limpia de su solución:

Digamos, tal vez, 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 bastante 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 y con el puerto que usó después de -D en su comando SSH

  3. Guarde el archivo de texto como un archivo Proxy Auto-Config (PAC) en un lugar web accesible con una extensión .pac .

    Si está leyendo esto, es probable que sepa cómo servir un archivo a través de HTTP en su LAN de trabajo, por lo que no 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 de su archivo PAC (por ejemplo, http: //192.168.xx.xx/mysupersecretproxy.pac ).

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

GeneQ
fuente
Esto cubre el caso de uso de WIFI, pero no el enlace de red 2g / 3g.
Douglas se celebró el
¿Esto no vence el propósito completo del túnel ssh? ¿No se cifrará el tráfico entre el iPhone y la computadora?
JBis
También parece que la configuración del proxy se ignora cuando se conecta a una VPN (WireGuard), lo cual es molesto, porque quería confiar en eso para cifrar la conexión entre el dispositivo iOS y el servidor en ejecución ssh -gD. De vuelta al tablero de dibujo.
sjy
4

Wow, gracias por esa última respuesta.

Junto con esta publicación de blog "SSH para poner su iPhone en línea a través de un cable USB" , se me ocurrió una solución SSH / SOCKS inversa bastante sólida e instantánea a través de la conexión USB con solo un servidor SSH en algún lugar de su red. Esto permite que todas mis aplicaciones basadas en tcp utilicen Internet de un servidor SSH a través de USB a pesar de que mi WiFi es defectuosa y no tiene 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 Putty: 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 con conexión a 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 Putty, configure su comando remoto para:

ssh -D 1080 [email protected] -p 202

Guarde su configuración de Putty en una nueva sesión con nombre.

Opcionalmente, genere claves y agregue las claves públicas a * ~ / .ssh / certified_keys * en ambos extremos para que no necesite escribir contraseñas. Use putty.exe -load "Nombre de perfil" en un acceso directo para acelerarlo aún más.

thadk
fuente
Por supuesto, si está ejecutando un servidor OpenSSH en Windows con Cygwin o algo así, es probable que pueda saltarse el túnel intermedio.
thadk
Aquí hay alguien haciendo lo contrario de esto para hacer un anclaje normal: snipplr.com/view/16563/…
thadk
0

Este mensaje parece sugerir que no es posible hacer esto a través de la línea de comando, si lo estoy interpretando correctamente. Creo que eso significa que realmente no puedes, ya que las preferencias de red no son compatibles con SOCKS.

jtbandes
fuente
Este sitio dice que no hay ningún problema con la creación del proxy SOCKS, pero la configuración debe establecerse utilizando archivos PAC. Estaba bien si hubiera una manera más fácil. snipplr.com/view/16563/…
GeneQ
0

Las respuestas anteriores no están bien.

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

  2. El proxy HTTP tampoco es un proxy global.

No se pueden usar en la mayoría de los juegos y mensajes instantáneos (mensaje instantáneo). Es solo para un poco de navegación web (Safari está bien) pero principalmente solo esto.

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

No existe un programa para iPhone y iPad que ejecute proxy de calcetines globales como ese en Windows.

Tan
fuente
0

Encontré una manera de hacer esto sin romper el jailbreak, pero necesitarás acceso a un servidor ssh, que podrías alojar en tu propia computadora.

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

También necesitará 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

Ejecute el siguiente comando:

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

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


es SH

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

Puerto local: 8080

Dest Host: [host]

Puerto 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 será necesario, porque iSSH ya creó el túnel e iSSH continúa ejecutándose en segundo plano en su iPhone.

Eso es todo, ahora puedes 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 realmente puede navegar por la web de forma anónima.

Para los expertos en tecnología que desean un poco más de detalle 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.

primero

primero
fuente
Esto no cubre ninguno de los accesos a la red, excepto ProxyBrowse. El correo electrónico, por ejemplo, no está protegido.
Douglas Held
0

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

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

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

usuario3439894
fuente