Como eu me conecto a um Proxy SOCKS a partir de um iPhone / iPod Touch?

18

Eu gosto de navegar de forma segura e privada por meio de um proxy SOCKS que criei via encapsulamento SSH, no Mac. Eu usei o cliente SSH no meu Mac para conseguir isso. Então pensei: como o iPhone OS é essencialmente o Mac OS, o mesmo truque também pode funcionar no iPhone.

Consegui criar um túnel SSh no meu iPhone através do Terminal (Terminal do iPhone). (Sim, está na cadeia)

ssh -D [port] [email protected]

Nesta fase, meu iPhone é o proxy SOCKS.

No entanto, não parece haver uma maneira no painel de preferências de rede do iPhone especificar um proxy SOCKS. Alguém sugere a criação de um arquivo PAC (Proxy Auto-Contig) para solucionar isso, mas isso parece complicado.

Alguma idéia de como fazer o iPhone usar seu próprio proxy SOCKS?

GeneQ
fonte

Respostas:

20

Bem, eu acho que não há melhor maneira de fazer isso. Caramba, Apple, é tão difícil colocar uma configuração de SOCKS Proxy no painel de configurações de rede do iPhone OS? :-(

De qualquer forma, a melhor resposta até agora, e a única que eu encontrei na Internet, é de um documento do site do SNIPPLR Code 2.0, intitulado Como conectar-se a um proxy de meias a partir de um iPhone / iPod Touch ininterrupto .

Abaixo está uma versão limpa de sua solução:

Digamos, talvez, que você já esteja encaminhando seu tráfego da Web através de um túnel SSH / SOCKS no trabalho (por questões de privacidade) e que gostaria de usar o mesmo túnel no seu iPhone / iPod Touch. Isso é realmente muito fácil de realizar.

  1. Verifique se o túnel SOCKS do seu computador de trabalho permite conexões LAN para que o seu iPhone / iPod Touch possa se conectar a ele.

    ssh -N -g -D 1080 [email protected]
    
  2. Crie um arquivo de texto e insira o seguinte código:

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

    Substitua os xs pelo seu IP e os ys pela porta que você usou após o -D no seu comando SSH

  3. Salve o arquivo de texto como um arquivo de configuração automática de proxy (PAC) em um local acessível pela Web com uma extensão .pac .

    Se você está lendo essas chances, sabe como enviar um arquivo por HTTP na sua LAN de trabalho, por isso não vou me aprofundar nisso.

  4. Por fim, no seu iPhone / iPod Touch, vá para Configurações → Wi-Fi e clique na seta azul à direita da sua rede de trabalho. Role para baixo, clique em Automático e digite o endereço do seu arquivo PAC (por exemplo, http: //192.168.xx.xx/mysupersecretproxy.pac ).

Agora você pode navegar na Web com segurança a partir do seu iPhone / iPod touch.

GeneQ
fonte
Isso abrange o caso de uso WIFI, mas não o link de rede 2g / 3g.
Douglas Held
Isso não derrota todo o objetivo do túnel ssh? O tráfego entre o iPhone e o computador não será criptografado?
JBIS
Também parece que a configuração do proxy é ignorada quando conectado a uma VPN (WireGuard), o que é irritante, porque eu queria confiar nisso para criptografar a conexão entre o dispositivo iOS e o servidor em execução ssh -gD. De volta à prancheta.
sjy 27/10
4

Uau, obrigado por essa última resposta.

Juntamente com esta postagem no blog "SSH para colocar seu iPhone on-line via cabo USB" , criei uma solução SSH / SOCKS reversa instantânea bastante sólida sobre o tether USB, considerando apenas um servidor SSH em algum lugar da sua rede. Isso permite que todos os meus aplicativos baseados em tcp usem a Internet de um servidor SSH através de USB, apesar de meu WiFi estar com defeito e não ter um plano de dados de telefone forte (T-Mobile Prepaid).

Nenhuma configuração de servidor proxy é necessária.

A essência da postagem do blog é que você PODE controlar o proxy na linha de comando. Use o arquivo:

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

Encontre a seção "ip1" (se você deseja substituir a interface 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>

Tenha cuidado para obter a seção ip1 se você deseja substituir o EDGE / 3G! Não procure as outras entradas de Proxies no arquivo.

Em seguida, adicione a seguinte seção depois:

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

Em seguida, use seu truque para especificar um proxy SOCKS no arquivo que acabamos de especificar:

/private/var/preferences/proxy.pac

Adicionar:

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

Altere as permissões no proxy.pac para 777 (todos podem ler, escrever, executar).

Reinicie o iPhone.

Baixe o iTunnel para iTunes 9 (versões antigas também estão disponíveis). (http://www.mediafire.com/?2q1fzowoy12)

Crie uma nova conexão Putty: na seção Conexão> SSH> Túneis, adicione uma nova porta "remota" encaminhada, como a porta 202 no iPhone, ao servidor SSH voltado para a Internet (por exemplo, 192.168.2.100:22).

Source Port: 202
Destination: 192.168.2.100:22

Na seção SSH da mesma conexão Putty, defina seu comando remoto como:

ssh -D 1080 [email protected] -p 202

Salve sua configuração do Putty em uma nova sessão nomeada.

Opcionalmente, gere chaves e adicione as chaves públicas a * ~ / .ssh / allowed_keys * nas duas extremidades, para que você não precise digitar senhas. Use putty.exe -load "Nome do perfil" em um atalho para acelerar ainda mais.

thadk
fonte
Obviamente, se você estiver executando um servidor OpenSSH no Windows com Cygwin ou algo assim, provavelmente poderá ignorar o túnel intermediário.
thadk 6/02/10
Aqui está alguém fazendo o inverso disso para fazer o tethering normal: snipplr.com/view/16563/…
thadk
0

Esta mensagem parece sugerir que não é possível fazer isso pela linha de comando, se eu estiver interpretando corretamente. Eu acho que isso significa que você realmente não pode, pois as preferências de Rede não suportam SOCKS.

jtbandes
fonte
Este site diz que não há problema em criar o proxy SOCKS, mas a configuração deve ser definida usando arquivos PAC. Eu estava pensando se havia uma maneira mais fácil. snipplr.com/view/16563/…
GeneQ 21/07/2009
0

As respostas acima não estão bem.

  1. O ssh -D não é um proxy global no sistema iOS (como iPhone e iPad).

  2. O proxy HTTP também não é um proxy global.

Eles não podem ser usados ​​na maioria dos jogos e mensagens instantâneas (mensagem instantânea). É apenas para navegar na web (o Safari está bem), mas principalmente apenas isso.

A melhor e mais fácil maneira no iPhone e iPad é usar VPN. Esse é o agente global, que pode transferir todos os dados da Internet via servidor VPN remoto. Outra opção é o OpenVPN, que fornece um cliente no iOS.

Não existe um programa para iPhone e iPad para executar proxy global de meias como o Windows.

Só então
fonte
0

Encontrei uma maneira de fazer isso sem jailbreak, mas você precisará acessar um servidor ssh, que poderá hospedar em seu próprio computador doméstico.

Você precisará de dois aplicativos para iPhone; iSSH (túnel ssh) e ProxyBrowse (navegador socks5).

Você também precisará de um servidor SSH.

Neste exemplo, chamaremos nosso servidor SSH [host] e nossa conta de usuário para o servidor ssh [usuário].


Servidor SSH

Execute o seguinte comando:

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

É isso mesmo, você está criando um host dinâmico, encaminhando de volta para o host, e verá em breve.


iSSH

"Add Configuration ...", preencha os itens usuais do servidor / nome de usuário / etc. Na parte inferior, você pode escolher SSH> Nenhum, e você verá uma opção para "Túnel", selecione isso. Escolha o botão para "Adicionar túnel".

Localport: 8080

Host de destino: [host]

Porto de destino: 8080

Salve tudo e abra a conexão.


ProxyBrowse

Servidor: localhost

Porto: 8080

Não preencha Nome de usuário ou Senha, pois não será necessário, porque o iSSH já criou o túnel e o iSSH continua sendo executado em segundo plano no seu iPhone.

É isso, agora você pode navegar na web através de um túnel SSH.


Deseja dar um passo adiante? Instale o Tor no seu servidor, faça com que o túnel iSSH se conecte à porta Tor e, a partir do seu telefone, você pode realmente navegar na web anonimamente.

Para os tecnicamente inclinados que querem um pouco mais de detalhes sobre o que aconteceu:

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

O navegador proxy SOCKS se comunica através do túnel de encaminhamento de porta local para o túnel de encaminhamento de porta dinâmico no servidor.

primeiro

primeiro
fonte
Isso não cobre nenhum acesso à rede, exceto o ProxyBrowse. O email, por exemplo, não está protegido.
Douglas Held
0

Se você tiver acesso ao shell (jailbroken) e puder colocar o proxy.pacarquivo no local mencionado acima, também poderá usar o seguinte link para o proxy.pacarquivo nas preferências de rede da conexão que você está tentando encapsular:

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

Juntamente com um túnel SSH para um servidor SSH nos EUA, eu posso ouvir Pandora / Slacker etc. por
Wi-Fi fora da área de cobertura permitida (ou seja, enquanto viaja fora dos EUA).

user3439894
fonte