Jak połączyć się z serwerem proxy SOCKS z urządzenia iPhone / iPod Touch?

19

Lubię bezpiecznie i prywatnie surfować za pośrednictwem serwera proxy SOCKS, który utworzyłem za pomocą tunelowania SSH na komputerze Mac. W tym celu użyłem klienta SSH na komputerze Mac. Potem pomyślałem, że ponieważ iPhone OS to zasadniczo Mac OS, ta sama sztuczka może działać również na iPhonie.

Udało mi się utworzyć tunel SSh na moim iPhonie za pośrednictwem terminalu (terminalu iPhone'a). (Tak, to jest zepsute więzienie)

ssh -D [port] [email protected]

Na tym etapie mój iPhone jest serwerem proxy SOCKS.

Wydaje się jednak, że w panelu preferencji sieci iPhone nie można określić proxy SOCKS. Ktoś sugeruje utworzenie pliku Auto-Contig Proxy (PAC) w celu obejścia tego problemu, ale wydaje się to skomplikowane.

Jakieś pomysły, jak sprawić, by iPhone używał własnego proxy SOCKS?

GeneQ
źródło

Odpowiedzi:

20

Myślę, że nie ma lepszego sposobu na zrobienie tego. Cholera, Apple, czy tak trudno jest ustawić SOCKS Proxy w panelu ustawień sieciowych iPhone OS? :-(

W każdym razie najlepsza i jak dotąd jedyna odpowiedź, jaką mogłem znaleźć w sieci, pochodzi z dokumentu ze strony internetowej SNIPPLR Code 2.0 zatytułowanego Jak połączyć się z serwerem proxy SOCKS z niezabezpieczonego iPhone'a / iPoda Touch .

Poniżej znajduje się oczyszczona wersja ich rozwiązania:

Powiedzmy, być może, że już przesyłasz swój ruch internetowy przez tunel SSH / SOCKS w pracy (ze względów prywatności) i chcesz użyć tego samego tunelu na swoim iPhonie / iPodzie Touch. W rzeczywistości jest to dość łatwe do osiągnięcia.

  1. Upewnij się, że tunel SOCKS na twoim komputerze roboczym umożliwia połączenia LAN, aby twój iPhone / iPod Touch mógł się z nim połączyć.

    ssh -N -g -D 1080 [email protected]
    
  2. Utwórz plik tekstowy i wstaw następujący kod:

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

    Zamień x na swój IP, a y na port użyty po -D w komendzie SSH

  3. Zapisz plik tekstowy jako plik Auto-Config Proxy (PAC) w miejscu dostępnym w sieci z rozszerzeniem .pac .

    Jeśli czytasz te szanse, czy wiesz, jak podać plik przez HTTP w swojej sieci LAN, więc nie będę się w to zagłębiał.

  4. Na koniec na iPhonie / iPodzie Touch wybierz Ustawienia → Wi-Fi i kliknij niebieską strzałkę po prawej stronie sieci służbowej. Przewiń w dół, kliknij Auto i wpisz adres do pliku PAC (np. Http: //192.168.xx.xx/mysupersecretproxy.pac ).

Teraz możesz bezpiecznie surfować po Internecie z iPhone'a / iPoda touch.

GeneQ
źródło
Dotyczy to przypadku użycia WIFI, ale nie łącza sieciowego 2g / 3g.
Douglas odbył się
Czy to nie pokonuje całego celu tunelu ssh? Czy ruch między iPhonem a komputerem nie będzie szyfrowany?
JBis
Wydaje się również, że ustawienie proxy jest ignorowane po podłączeniu do VPN (WireGuard), co jest denerwujące, ponieważ chciałem polegać na tym, aby szyfrować połączenie między urządzeniem iOS a uruchomionym serwerem ssh -gD. Powrót do tablicy kreślarskiej.
sjy
4

Wow dzięki za ostatnią odpowiedź.

Wraz z postem na blogu „SSH, aby podłączyć iPhone'a do sieci za pomocą kabla USB” , wymyśliłem całkiem solidne natychmiastowe rozwiązanie odwrotnego SSH / SOCKS przez tethering USB, pod warunkiem, że tylko serwer SSH jest gdzieś w twojej sieci. Pozwala to wszystkim moim aplikacjom opartym na tcp korzystać z Internetu serwera SSH przez USB, mimo że moje WiFi jest wadliwe i nie ma silnego planu taryfowego (T-Mobile Prepaid).

Nie wymaga konfiguracji serwera proxy.

Istota postu na blogu polega na tym, że MOŻESZ kontrolować proxy za pomocą wiersza poleceń. Użyj pliku:

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

Znajdź sekcję „ip1” (jeśli chcesz zastąpić interfejs GPRS / EDGE / 3G), np .:

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

Uważaj, aby uzyskać sekcję ip1, jeśli chcesz zastąpić EDGE / 3G! Nie szukaj innych wpisów proxy w pliku.

Następnie dodaj następującą sekcję:

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

Następnie użyj swojej sztuczki, aby określić proxy SOCKS w właśnie określonym pliku:

/private/var/preferences/proxy.pac

Dodaj:

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

Zmień uprawnienia na proxy.pac na 777 (wszyscy mogą czytać, pisać, wykonywać).

Uruchom ponownie iPhone'a.

Pobierz iTunnel na iTunes 9 (dostępne są również starsze wersje). (http://www.mediafire.com/?2q1fzowoy12)

Utwórz nowe połączenie Putty: w sekcji Połączenie> SSH> Tunele dodaj nowy przekazany „zdalny” port, taki jak port 202 na iPhonie, do swojego internetowego serwera SSH (powiedzmy 192.168.2.100:22).

Source Port: 202
Destination: 192.168.2.100:22

W sekcji SSH tego samego Putty Connection ustaw Remote Commmand na:

ssh -D 1080 [email protected] -p 202

Zapisz konfigurację Putty w nowej nazwanej sesji.

Opcjonalnie wygeneruj klucze i dodaj klucze publiczne do * ~ / .ssh / uprawnione_klucze * na obu końcach, abyś nie musiał wpisywać hasła. Użyj putty.exe -load „Profile Profile” w skrócie, aby przyspieszyć go jeszcze bardziej.

thadk
źródło
Oczywiście, jeśli korzystasz z serwera OpenSSH w systemie Windows z Cygwin lub coś takiego, prawdopodobnie możesz po prostu pominąć tunel pośredni.
thadk
Oto ktoś robi to odwrotnie, aby wykonać normalne tethering: snipplr.com/view/16563/...
thadk
0

Ten komunikat wydaje się sugerować, że nie można tego zrobić za pomocą wiersza polecenia, jeśli poprawnie go interpretuję. Myślę, że to oznacza, że ​​naprawdę nie możesz, ponieważ preferencje sieci nie obsługują SOCKS.

jtbandes
źródło
Ta strona mówi, że nie ma problemu z tworzeniem proxy SOCKS, ale ustawienie należy ustawić za pomocą plików PAC. Byłem wodnerign, jeśli byłby łatwiejszy sposób. snipplr.com/view/16563/…
GeneQ
0

Powyższe odpowiedzi nie są w porządku.

  1. Ssh -D nie jest globalnym serwerem proxy w systemie iOS (takim jak iPhone i iPad).

  2. Serwer proxy HTTP nie jest również serwerem globalnym.

Nie można ich używać zarówno w większości gier, jak i komunikatorach internetowych (wiadomości błyskawiczne). To tylko dla niektórych surfowania po Internecie (Safari jest w porządku), ale głównie tylko to.

Najlepszym i najłatwiejszym sposobem na iPhonie i iPadzie jest korzystanie z VPN. To globalny agent, który może przesyłać wszystkie dane internetowe za pośrednictwem zdalnego serwera VPN. Innym wyborem jest OpenVPN, który daje klientowi na iOS.

Nie ma takiego programu dla iPhone'a i iPada, który mógłby obsługiwać globalne proxy proxy do skarpet w systemie Windows.

Tak więc
źródło
0

Znalazłem sposób, aby to zrobić bez jailbreaka, ale potrzebujesz dostępu do serwera ssh, który możesz hostować na własnym komputerze domowym.

Będziesz potrzebował dwóch aplikacji na iPhone'a; iSSH (tunel ssh) i ProxyBrowse (przeglądarka socks5).

Będziesz także potrzebował serwera SSH.

W tym przykładzie wywołamy nasz serwer SSH [host] i nasze konto użytkownika dla serwera ssh [użytkownik].


Serwer SSH

Uruchom następujące polecenie:

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

Zgadza się, tworzysz [host] dynamiczny port przekierowujący z powrotem do [host], zobaczysz dlaczego wkrótce.


iSSH

„Dodaj konfigurację ...”, wypełnij zwykłe czynności dla serwera / nazwy użytkownika / itp. U dołu możesz wybrać SSH> Brak, a zobaczysz opcję „Tunel”, wybierz ją. Wybierz przycisk „Dodaj tunel”.

Port lokalny: 8080

Dest Host: [host]

Port docelowy: 8080

Zapisz wszystko i otwórz połączenie.


ProxyBrowse

Serwer: localhost

Port: 8080

Nie wpisuj nazwy użytkownika ani hasła, nie musisz tego robić, ponieważ iSSH utworzył już tunel, a iSSH nadal działa w tle na twoim iPhonie.

To wszystko, teraz możesz przeglądać sieć w tunelu SSH.


Chcesz pójść o krok dalej? Zainstaluj Tor na swoim serwerze, podłącz tunel iSSH do portu Tor, a następnie z telefonu możesz naprawdę anonimowo przeglądać sieć.

Dla technicznie skłonnych, którzy chcą trochę więcej szczegółów na temat tego, co się właśnie wydarzyło:

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

Przeglądarka proxy SOCKS komunikuje się przez tunel przekierowania portów lokalnych do tunelu przekierowania portów dynamicznych na serwerze.

pierwszy

pierwszy
źródło
Nie obejmuje to żadnego dostępu do sieci z wyjątkiem ProxyBrowse. Na przykład e-mail nie jest chroniony.
Douglas odbył się
0

Jeśli masz dostęp do powłoki (jailbroken) i możesz umieścić proxy.pacplik w wyżej wymienionej lokalizacji, możesz również użyć następującego łącza do proxy.pacpliku w preferencjach sieci dla połączenia, które próbujesz tunelować:

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

Wraz z tunelem SSH do serwera SSH w USA mogę słuchać Pandora / Slacker itp. Przez
Wi-Fi poza dozwolonym obszarem zasięgu (tj. Podczas podróży poza USA).

użytkownik3439894
źródło