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. Usé el cliente SSH en mi Mac para lograr esto. Entonces pensé, dado que el iPhone OS es esencialmente Mac OS, el mismo truco también podría funcionar en el iPhone.
Logré crear un túnel SSh en mi iPhone a través de la Terminal (Terminal de iPhone). (Sí, está jailbreak)
ssh -D [port] user@domain.com
En esta etapa, mi iPhone es un 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?
Bueno, supongo que 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 el momento, 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 desbloqueado .
A continuación se muestra 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 bastante fácil de lograr.
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 user@domain.com
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
Guarde el archivo de texto como un archivo de configuración automática de proxy (PAC) en un lugar accesible desde la web 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.
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 Internet de forma segura desde su iPhone/iPod touch.
Wow, gracias por la ú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 instantánea bastante sólida a través de conexión USB con solo un servidor SSH en algún lugar 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 sea defectuoso y no tenga un plan de datos de teléfono sólido (prepago de T-Mobile).
No se requiere configuración de servidor proxy.
La esencia de la publicación del blog es que PUEDE controlar el proxy desde la línea de comandos. Utilice 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
Agregar:
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.
Descarga iTunnel para iTunes 9 (también hay versiones anteriores 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 orientado 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 Putty Connection, configure su comando remoto en:
ssh -D 1080 user@127.0.0.1 -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/authorized_keys* en ambos extremos para que no tenga que escribir contraseñas. Use putty.exe -load "Nombre de perfil" en un acceso directo para acelerarlo aún más.
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.
iPhone + SSH Tunnel + Socks Proxy = ÉXITO Muy feliz
Gracias por la ayuda :) Ahora puedo usar mi proxy de calcetines local a través de Wifi/3G/Edge:p y también creé un script que recrea el túnel si se pierde la conexión;)
Las respuestas anteriores no están bien.
El ssh -D no es un proxy global en el sistema iOS (como iPhone y iPad).
El proxy HTTP tampoco es un proxy global.
No se pueden usar en la mayoría de los juegos y en la mensajería instantánea (mensaje instantáneo). Es solo para navegar un poco en la web (Safari está bien), pero principalmente solo esto.
La forma mejor y más fácil en iPhone y iPad es usar VPN. Ese 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 existe un programa de este tipo para que iPhone y iPad ejecuten un proxy de calcetines global como ese en Windows.
Encontré una manera de hacer esto sin jailbreak, pero necesitará acceso a un servidor ssh, que podría alojar en la computadora de su propia casa.
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 nuestra cuenta de usuario para el servidor ssh [usuario].
Ejecute el siguiente comando:
SSH -f -N -D 8080 [user]@[host]
Así es, está en [host] creando un reenvío de puerto dinámico de regreso a [host], verá por qué pronto.
"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", seleccione eso. Elija el botón para "Agregar túnel".
Puerto local: 8080
Anfitrión de destino: [anfitrión]
Puerto de destino: 8080
Guarde todo y abra la conexión.
Servidor: servidor local
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 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 Internet de forma anónima.
Para los técnicamente inclinados que quieren 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 con el túnel de reenvío de puerto dinámico en el servidor.
primero
Si tiene acceso al shell (jailbreak) y puede colocar el proxy.pac
archivo en la ubicación mencionada anteriormente, también puede usar el siguiente enlace para el proxy.pac
archivo en las preferencias de red para la conexión que está intentando tunelizar:
file://private/var/preferences/proxy.pac
Junto con un túnel SSH a un servidor SSH en 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 EE. UU.).
douglas sostenido
JBis
sjy
ssh -gD
. De vuelta a la mesa de dibujo.