Come posso collegarmi a un proxy SOCKS da un iPhone / iPod Touch?


19

Mi piace navigare in modo sicuro e privato tramite un proxy SOCKS che ho creato tramite tunneling SSH, sul Mac. Ho usato il client SSH sul mio Mac per raggiungere questo obiettivo. Poi ho pensato, dato che il sistema operativo iPhone è essenzialmente Mac OS, lo stesso trucco potrebbe funzionare anche su iPhone.

Sono riuscito a creare un tunnel SSh sul mio iPhone tramite il Terminale (Terminale di iPhone). (Sì, è rotto in prigione)

ssh -D [port] user@domain.com

A questo punto il mio iPhone è proxy SOCKS.

Tuttavia, nel pannello delle preferenze di rete dell'iPhone non sembra esserci un modo per specificare un proxy SOCKS. Qualcuno suggerisce di creare un file Proxy Auto-Contig (PAC) per risolvere il problema, ma sembra complicato.

Qualche idea su come fare in modo che iPhone utilizzi il proprio proxy SOCKS?

Risposte:


20

Beh, immagino, non c'è modo migliore per farlo. Maledizione, Apple, è così difficile inserire un'impostazione SOCKS Proxy nel pannello delle impostazioni di rete del sistema operativo iPhone? :-(

Ad ogni modo, la migliore risposta finora, e l'unica che ho potuto trovare in rete, proviene da un documento del sito web SNIPPLR Code 2.0 intitolato Come connettersi a un proxy SOCKS da un iPhone / iPod Touch senza errori .

Di seguito è una versione ripulita della loro soluzione:

Diciamo, forse, che stai già inoltrando il tuo traffico web attraverso un tunnel SSH / SOCKS al lavoro (per motivi di privacy) e vorresti utilizzare lo stesso tunnel sul tuo iPhone / iPod Touch. Questo è in realtà abbastanza facile da realizzare.

  1. Assicurati che il tunnel SOCKS sul tuo computer di lavoro consenta connessioni LAN in modo che il tuo iPhone / iPod Touch possa connettersi ad esso.

    ssh -N -g -D 1080 user@domain.com
    
  2. Crea un file di testo e inserisci il seguente codice:

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

    Sostituisci le x con il tuo IP e le y con la porta che hai usato dopo il -D nel tuo comando SSH

  3. Salvare il file di testo come file PAC (Proxy Auto-Config) in un luogo accessibile dal Web con estensione .pac .

    Se stai leggendo questa possibilità, sai come servire un file su HTTP sulla tua LAN di lavoro, quindi non approfondirò quello.

  4. Infine, sul tuo iPhone / iPod Touch, vai su Impostazioni → Wi-Fi e fai clic sulla freccia blu a destra della tua rete di lavoro. Scorri verso il basso, fai clic su Auto e digita l'indirizzo nel tuo file PAC (ad es. Http: //192.168.xx.xx/mysupersecretproxy.pac ).

Ora puoi navigare in sicurezza sul Web dal tuo iPhone / iPod touch.


Questo riguarda il caso d'uso WIFI, ma non il collegamento di rete 2g / 3g.
Douglas Held

Questo non sconfigge l'intero scopo del tunnel ssh? Il traffico tra iPhone e computer non sarà crittografato?
JBis,

Sembra anche che l'impostazione del proxy sia ignorata quando connesso a una VPN (WireGuard), il che è fastidioso, perché volevo fare affidamento su quello per crittografare la connessione tra il dispositivo iOS e il server in esecuzione ssh -gD. Torna al tavolo da disegno.
sjy

4

Caspita grazie per l'ultima risposta.

Insieme a questo post sul blog "SSH per rendere il tuo iPhone online tramite cavo USB" , ho trovato una soluzione SSH / SOCKS inversa istantanea piuttosto solida su cavo USB, dato che solo un server SSH da qualche parte sulla tua rete. Ciò consente a tutte le mie app basate su tcp di utilizzare Internet di un server SSH tramite USB nonostante il mio WiFi sia difettoso e non abbia un piano dati telefonico forte (T-Mobile Prepaid).

Nessuna configurazione del server proxy richiesta.

L'essenza del post sul blog è che PUOI controllare il proxy dalla riga di comando. Usa il file:

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

Trova la sezione "ip1" (se vuoi sostituire l'interfaccia GPRS / EDGE / 3G) come:

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

Fai attenzione a ottenere la sezione ip1 se desideri sostituire EDGE / 3G! Non cercare le altre voci Proxy nel file.

Quindi aggiungere la seguente sezione in seguito:

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

Quindi usa il tuo trucco per specificare un proxy SOCKS nel file che abbiamo appena specificato:

/private/var/preferences/proxy.pac

Inserisci:

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

Modifica le autorizzazioni su proxy.pac su 777 (tutti possono leggere, scrivere, eseguire).

Riavvia l'iPhone.

Scarica iTunnel per iTunes 9 (sono disponibili anche versioni precedenti). (Http://www.mediafire.com/?2q1fzowoy12)

Crea una nuova connessione Putty: nella sezione Connessione> SSH> Tunnel aggiungi una nuova porta "remota" inoltrata, come la porta 202 su iPhone al tuo server SSH rivolto a Internet (diciamo, 192.168.2.100:22).

Source Port: 202
Destination: 192.168.2.100:22

Nella sezione SSH della stessa connessione Putty imposta il tuo telecomando su:

ssh -D 1080 user@127.0.0.1 -p 202

Salva la tua configurazione Putty in una nuova sessione denominata.

Se lo desideri, genera le chiavi e aggiungi le chiavi pubbliche a * ~ / .ssh / authorized_keys * su entrambe le estremità, quindi non è necessario digitare le password. Usa putty.exe -load "Nome profilo" in un collegamento per accelerare ancora di più.


Naturalmente, se stai eseguendo un server OpenSSH su Windows con Cygwin o qualcosa del genere, probabilmente puoi semplicemente saltare il tunnel intermedio.
Thadk,

Ecco qualcuno che sta facendo il contrario
thadk

0

Questo messaggio sembra suggerire che non è possibile farlo tramite la riga di comando, se lo sto interpretando correttamente. Penso che ciò significhi che non puoi affatto, dal momento che le preferenze di rete non supportano SOCKS.


Questo sito afferma che non esiste alcun problema con la creazione del proxy SOCKS, ma l'impostazione deve essere configurata utilizzando i file PAC. Ero wodnerign se ci fosse un modo più semplice. snipplr.com/view/16563/…
GeneQ


0

Le risposte sopra non vanno bene.

  1. Ssh -D non è un proxy globale sul sistema iOS (come iPhone e iPad).

  2. Anche il proxy HTTP non è un proxy globale.

Non possono essere entrambi utilizzati sulla maggior parte dei giochi e messaggi istantanei (messaggio istantaneo). È solo per un po 'di navigazione (Safari va bene) ma soprattutto solo per questo.

Il modo migliore e più semplice su iPhone e iPad è utilizzare VPN. È un agente globale, che può trasferire tutti i dati Internet tramite un server VPN remoto. Un'altra scelta è OpenVPN, che offre un client su iOS.

Non esiste un programma simile per iPhone e iPad per eseguire proxy di calzini globali come quello su Windows.


0

Ho trovato un modo per farlo senza jailbreak, ma avrai bisogno di accedere a un server SSH, che potresti ospitare sul tuo computer di casa.

Avrai bisogno di due applicazioni per iPhone; iSSH (tunnel ssh) e ProxyBrowse (browser socks5).

Sarà inoltre necessario un server SSH.

Per questo esempio chiameremo il nostro server SSH [host] e il nostro account utente per il server ssh [utente].


Server SSH

Esegui il seguente comando:

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

Esatto, sei su [host] creando una porta dinamica in avanti su [host], vedrai presto perché.


iSSH

"Aggiungi configurazione ...", compila le solite cose per il server / nome utente / ecc. Nella parte inferiore puoi scegliere SSH> Nessuno e vedrai un'opzione per "Tunnel", selezionala. Scegli il pulsante "Aggiungi tunnel".

Localport: 8080

Dest Host: [host]

Dest Port: 8080

Salva tutto e apri la connessione.


ProxyBrowse

Server: localhost

Porto: 8080

Non inserire nome utente o password, non sarà necessario, poiché iSSH ha già creato il tunnel e iSSH continua a funzionare in background sul tuo iPhone.

Ecco fatto, ora puoi navigare sul web su un tunnel SSH.


Vuoi fare un passo ulteriore? Installa Tor sul tuo server, fai in modo che il tunnel iSSH si colleghi alla porta Tor e quindi dal tuo telefono puoi davvero navigare sul web in modo anonimo.

Per i tecnicamente inclini che vogliono un po 'più di dettaglio su ciò che è appena accaduto:

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

Il browser proxy SOCKS comunica tramite il tunnel di port forwarding locale con il tunnel di port forwarding dinamico sul server.

prima


Questo non copre nessuno degli accessi alla rete tranne ProxyBrowse. L'email, ad esempio, non è protetta.
Douglas Held

0

Se hai accesso alla shell (jailbroken) e puoi posizionare il proxy.pacfile nella posizione sopra menzionata, puoi anche usare il seguente link per il proxy.pacfile nelle preferenze Network per la connessione che stai provando a tunnel:

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

Insieme a un tunnel SSH verso un server SSH negli Stati Uniti, posso ascoltare Pandora / Slacker ecc. Tramite
Wi-Fi al di fuori dell'area di copertura consentita (ovvero viaggiando fuori dagli Stati Uniti).

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.