Método gratuito que funciona, com um iPhone com jailbreak pelo menos:
1) Instale o openSSH no seu iPhone a partir do cydia ou apt-get, se preferir, o terminal.
2) Instale o python 2.7.x.
No momento da redação deste documento, a versão mais recente é 2.7.6.
3) faça o download do libusbmuxd.
https://github.com/libimobiledevice/libusbmuxd
Você pode fazer um git cloneou, se não tiver / deseja obter git, faça o download
do release na guia 'releases'.
4) descompacte-o se você não fez o git clonepercurso. Se você baixou o tarball, faça
tar zxvf <tarball name>.tar.gzde um terminal. No Windows, use 7-zip ou faça o download da versão .zip da ferramenta.
5) cd em libusbmuxd/python-client.
6) A seguinte etapa depende da plataforma:
janelas
Se você executar o Windows, precisará digitar manualmente o caminho para o seu python.exeprograma. Se você escolher o local padrão, ele será instalado no C:\Python27. Portanto, no Windows, vá para o prompt de comando e digite
C:\Python27\python.exe tcprelay.py -t 22:2222.
Linux / Unix / Solaris / BSD, etc.
Se você usa Linux (como eu), Cygwin no Windows, BSD / Unix, solaris ou basicamente qualquer plataforma além de janelas e DOS conhecidas pelo homem, basta digitar
python2.7 tcprelay.py -t 22:2222.
7)
Ainda não está pronto - você precisa de um cliente SSH em execução! Isso também depende da plataforma.
Windows - PuTTY
No Windows, o cygwin facilita isso, mas se você ainda não possui o cygwin, o PuTTY é uma boa opção:
http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html
Configure-o como esta:

Certifique-se de definir o nome de usuário de login como 'móvel'.

E, para um pouco de velocidade extra (sobrecarga mais baixa da criptografia), altere a criptografia para 'arcfour'. Normalmente, eu não recomendaria isso, mas como você está enviando a criptografia por um cabo USB e não por uma rede, a segurança é menos arriscada.

Se desejar, você pode salvar um perfil para isso, para evitar a configuração de todos os backups sempre que houver um problema. Isso é feito na seção 'sessão' na parte superior.
Linux / Unix / BSD / Solaris / OSX / HP-UX / o que ainda estiver faltando
Você pode executar ssh -D 8080 -p 2222 mobile@127.0.0.1
A senha padrão para as contas mobilee rootno iphone deve ser alpine. Depois de fazer login com sucesso, você verá uma xtermjanela semelhante. digite passwdagora, para alterar sua senha para algo mais seguro. Além disso, digite sue use alpinecomo sua senha para fazer login roote alterar a rootsenha também. Em seguida, digite exitpara voltar ao seu login como mobile.
8) Você está quase terminando agora, eu juro! É menos complexo do que parece até agora, se você realmente o fizer!
Agora, você precisa abrir seu navegador preferido; Eu uso o Firefox, então vou usá-lo como um exemplo. Eu usei o chrome, mas como não gosto e não o instale atualmente, não posso usá-lo atualmente como exemplo. Mas você o configura como um proxy SOCKS, independentemente do navegador.
Essas capturas de tela foram feitas com um X11 encaminhado, portanto as fontes são feias, mas não se preocupe.
Primeiro, vá para a janela de preferências ( tools -> optionsou edit -> preferences, dependendo do SO). Então vá para Advanced -> Network -> Settings....

Use a seguinte configuração para o navegador.

Problemas e Soluções
Problema:
Sim, isso não está realmente usando o iphone como um modem.
Solução:
Deixe isso para trás; funciona.
Problema:
Meu aplicativo não permite definir um proxy SOCKS.
Solução:
Eu tive esse problema com jogos como Minecraft. Aqui estão algumas correções.
Para minecraft, eu adicionei um argumento para ssh. Eu jogo regularmente nos servidores minecraft nerd.nu reddit (reddit.com/r/mcpublic). Desde o minecraft 1.6, o encapsulamento SSH e os proxies do SOCKS definidos como argumentos da linha de comando não funcionam. Você costumava adicionar parâmetros java -DSocksProxyHost=127.0.0.1 -DSocksProxyPort=8080e funcionava. Agora, no entanto, a solução não é tão boa, mas funciona.
Quando você começar ssh, em vez de ssh -D 8080 -p 2222 mobile@127.0.0.1, faça
ssh -D 8080 -L 127.0.0.1:25565:p.nerd.nu:25565 -p 2222 mobile@127.0.0.1.
Então, quando você quiser se conectar ao servidor, adicione o URL 127.0.0.1:25565à sua lista de servidores! O servidor remoto aparecerá em 127.0.0.1/localhost, graças ao milagre do encapsulamento SSH!
Para outros programas / jogos, a mesma regra se aplica. Se você não pode definir um proxy SOCKS e nada mais funcionar, basta adicionar -L 127.0.0.1:<port>:<remote URL to access>:<remote port>.
Não há nada de forçá-lo a usar a mesma porta em 127.0.0.1que você normalmente, então eu poderia ter, por exemplo, mapeado p.nerd.nu:25565para 127.0.0.1:1025eo jogo não se importaria, desde que eu especifiquei o porto. Nem todos os programas são tão brandos, mas é útil lembrar.
Além disso, lembre-se: Quase qualquer programa pode usar isso. Portanto, embora não seja tão bom quanto ter um modem simples ou algo assim, ele definitivamente funciona. Observe que, se você perder a conexão com o wi-fi, provavelmente começará a acessar o acesso aos dados da sua rede celular. Se a rede celular fizer inspeção de pacotes em nível profundo, esteja preparado para uma cobrança pela ativação do tethering. Apenas tome cuidado, por favor :) Se você tem o "TetherMe" do Cydia, ou algo parecido, isso pode mascarar o que você está fazendo. Além disso, às vezes, se o iphone for dormir, ele desligará o wi-fi. Instale a insomniapartir do cydia / apt para contornar isso.
Ou, para impedir a inspeção profunda de pacotes, você também pode fazer o SSH do seu iphone em um PC em casa para criptografia e, em seguida, fazer o SSH no seu iPhone a partir do dispositivo em que está conectado.