Wie verbinde ich mich von einem iPhone / iPod Touch mit einem SOCKS Proxy?


18

Ich surfe gerne sicher und privat über einen SOCKS-Proxy, den ich über SSH-Tunnel erstellt habe, auf dem Mac. Ich habe den SSH-Client auf meinem Mac verwendet, um dies zu erreichen. Dann dachte ich, da das iPhone im Wesentlichen Mac OS ist, könnte der gleiche Trick auch auf dem iPhone funktionieren.

Ich habe es geschafft, über das Terminal (iPhone's Terminal) einen SSh-Tunnel auf meinem iPhone zu erstellen. (Ja, es ist im Gefängnis kaputt)

ssh -D [port] user@domain.com

Zu diesem Zeitpunkt ist mein iPhone SOCKS-Proxy.

Im Einstellungsfeld für das iPhone-Netzwerk scheint es jedoch keine Möglichkeit zu geben, einen SOCKS-Proxy anzugeben. Jemand schlägt vor, eine Proxy Auto-Contig (PAC) -Datei zu erstellen, um dies zu umgehen, aber das klingt kompliziert.

Irgendwelche Ideen, wie man das iPhone dazu bringt, seinen eigenen SOCKS-Proxy zu verwenden?

Antworten:


20

Nun, ich denke, es gibt keinen besseren Weg, dies zu tun. Verdammt, Apple, ist es so schwer, eine SOCKS-Proxy-Einstellung in die Netzwerkeinstellungen des iPhone zu übernehmen? :-(

Wie dem auch sei, die beste Antwort und die einzige, die ich im Internet finden konnte, stammt aus einem Dokument der SNIPPLR Code 2.0-Website mit dem Titel " Herstellen einer Verbindung zu einem SOCKS-Proxy von einem unversehrten iPhone / iPod Touch" .

Unten ist eine bereinigte Version ihrer Lösung:

Angenommen, Sie leiten Ihren Webdatenverkehr bereits über einen SSH / SOCKS-Tunnel bei der Arbeit weiter (aus Datenschutzgründen) und möchten denselben Tunnel auf Ihrem iPhone / iPod Touch verwenden. Dies ist eigentlich ziemlich einfach zu bewerkstelligen.

  1. Stellen Sie sicher, dass der SOCKS-Tunnel auf Ihrem Arbeitscomputer LAN-Verbindungen zulässt, damit Ihr iPhone / iPod Touch eine Verbindung herstellen kann.

    ssh -N -g -D 1080 user@domain.com
    
  2. Erstellen Sie eine Textdatei und fügen Sie den folgenden Code ein:

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

    Ersetzen Sie die x durch Ihre IP und die y durch den Port, den Sie nach dem -D in Ihrem SSH-Befehl verwendet haben

  3. Speichern Sie die Textdatei als Proxy Auto-Config (PAC) -Datei an einem im Internet zugänglichen Ort mit der Erweiterung .pac .

    Wenn Sie dies lesen, wissen Sie wahrscheinlich, wie Sie eine Datei über HTTP in Ihrem Arbeits-LAN bereitstellen, sodass ich darauf nicht näher eingehen werde.

  4. Rufen Sie schließlich auf Ihrem iPhone / iPod Touch Einstellungen → WLAN auf und klicken Sie auf den blauen Pfeil rechts neben Ihrem Arbeitsnetzwerk. Scrollen Sie nach unten, klicken Sie auf Auto und geben Sie die Adresse in Ihre PAC-Datei ein (z. B. http: //192.168.xx.xx/mysupersecretproxy.pac ).

Jetzt können Sie mit Ihrem iPhone / iPod touch sicher im Internet surfen.


Dies gilt für den WIFI-Anwendungsfall, nicht jedoch für die 2g / 3g-Netzwerkverbindung.
Douglas Held

Hat dies nicht den gesamten Zweck des SSH-Tunnels zunichte gemacht? Wird der Datenverkehr zwischen dem iPhone und dem Computer nicht verschlüsselt?
JBis

Es scheint auch, dass die Proxy-Einstellung ignoriert wird, wenn eine Verbindung zu einem VPN (WireGuard) besteht, was ärgerlich ist, da ich mich darauf verlassen wollte, um die Verbindung zwischen dem iOS-Gerät und dem Server zu verschlüsseln, der ausgeführt wird ssh -gD. Zurück zum Zeichenbrett.
Sonntag,

4

Wow, danke für die letzte Antwort.

Zusammen mit diesem Blogbeitrag "SSH, um Ihr iPhone online über USB-Kabel zu bringen" habe ich eine ziemlich solide sofortige umgekehrte SSH / SOCKS-Lösung über USB-Tether entwickelt, wenn nur ein SSH-Server irgendwo in Ihrem Netzwerk vorhanden ist. Auf diese Weise können alle tcp-basierten Apps das Internet eines SSH-Servers über USB nutzen, obwohl mein WLAN defekt ist und kein solider Telefondatenplan (T-Mobile Prepaid) vorliegt.

Keine Proxy-Server-Konfiguration erforderlich.

Der Kern des Blogposts ist, dass Sie den Proxy über die Befehlszeile steuern können. Verwenden Sie die Datei:

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

Suchen Sie den Abschnitt "ip1" (wenn Sie die GPRS / EDGE / 3G-Schnittstelle ersetzen möchten) wie folgt:

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

Achten Sie darauf, dass Sie den IP1-Abschnitt haben, wenn Sie EDGE / 3G überschreiben möchten! Suchen Sie nicht nach den anderen Proxies-Einträgen in der Datei.

Fügen Sie anschließend den folgenden Abschnitt hinzu:

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

Verwenden Sie dann Ihren Trick, um einen SOCKS-Proxy in der soeben angegebenen Datei anzugeben:

/private/var/preferences/proxy.pac

Hinzufügen:

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

Ändern Sie die Berechtigungen für proxy.pac auf 777 (alle können lesen, schreiben, ausführen).

Starten Sie das iPhone neu.

Laden Sie iTunnel für iTunes 9 herunter (ältere Versionen sind ebenfalls verfügbar). (http://www.mediafire.com/?2q1fzowoy12)

Erstellen Sie eine neue Putty-Verbindung: Fügen Sie im Abschnitt "Verbindung> SSH> Tunnel" einen neuen weitergeleiteten "Remote" -Port wie Port 202 auf dem iPhone zu Ihrem mit dem Internet verbundenen SSH-Server hinzu (z. B. 192.168.2.100:22).

Source Port: 202
Destination: 192.168.2.100:22

Stellen Sie im SSH-Bereich der gleichen Putty-Verbindung Ihren Remote-Befehl auf:

ssh -D 1080 user@127.0.0.1 -p 202

Speichern Sie Ihre Putty-Konfiguration in einer neuen benannten Sitzung.

Optional können Sie Schlüssel generieren und die öffentlichen Schlüssel an beiden Enden zu * ~ / .ssh / authorized_keys * hinzufügen, damit Sie keine Kennwörter eingeben müssen. Verwenden Sie putty.exe -load "Profile Name" in einer Verknüpfung, um es noch weiter zu beschleunigen.


Wenn Sie einen OpenSSH-Server unter Windows mit Cygwin oder etwas anderem ausführen, können Sie den Zwischentunnel wahrscheinlich einfach überspringen.
Thadk

Hier ist jemand, der das Gegenteil
thadk

0

Diese Meldung scheint darauf hinzudeuten, dass dies nicht über die Befehlszeile möglich ist, wenn ich es richtig interpretiere. Ich denke, das bedeutet, dass Sie das überhaupt nicht können, da die Netzwerkeinstellungen SOCKS nicht unterstützen.


Diese Site gibt an, dass beim Erstellen des SOCKS-Proxys keine Probleme auftreten, die Einstellung muss jedoch mithilfe von PAC-Dateien festgelegt werden. Ich war witzig, wenn es einen einfacheren Weg gab. snipplr.com/view/16563/…
GeneQ


0

Die obigen Antworten sind nicht in Ordnung.

  1. Das ssh -D ist kein globaler Proxy auf iOS-Systemen (wie iPhone und iPad).

  2. Der HTTP-Proxy ist auch kein globaler Proxy.

Sie können nicht für die meisten Spiele und Sofortnachrichten verwendet werden. Es ist nur für ein paar Web-Surfer (Safari ist in Ordnung), aber meistens nur das.

Die beste und einfachste Möglichkeit für iPhone und iPad ist die Verwendung von VPN. Dies ist ein globaler Agent, der alle Internetdaten über einen Remote-VPN-Server übertragen kann. Eine andere Möglichkeit ist OpenVPN, mit dem ein Client auf iOS läuft.

Es gibt kein solches Programm für iPhone und iPad, um einen globalen Socken-Proxy wie diesen unter Windows auszuführen.


0

Ich habe einen Weg gefunden, dies ohne Jailbreak zu tun, aber Sie benötigen Zugriff auf einen SSH-Server, den Sie auf Ihrem eigenen Heimcomputer hosten können.

Sie benötigen zwei iPhone-Anwendungen. iSSH (SSH-Tunnel) und ProxyBrowse (Socks5-Browser).

Sie benötigen außerdem einen SSH-Server.

In diesem Beispiel rufen wir unseren SSH-Server [Host] und unser Benutzerkonto für den SSH-Server [Benutzer] auf.


SSH-Server

Führen Sie den folgenden Befehl aus:

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

Richtig, Sie sind auf [Host] und erstellen einen dynamischen Port für die Weiterleitung an [Host]. Sie werden sehen, warum.


iSSH

"Add Configuration ...", füllen Sie die üblichen Angaben für den Server / username / etc. Im unteren Bereich können Sie SSH> Keine auswählen, und für "Tunnel" wird eine Option angezeigt. Wählen Sie diese Option aus. Wählen Sie die Schaltfläche "Tunnel hinzufügen".

Localport: 8080

Zielhost: [Host]

Zielhafen: 8080

Speichern Sie alles und öffnen Sie die Verbindung.


ProxyBrowse

Server: localhost

Port: 8080

Geben Sie keinen Benutzernamen oder kein Passwort ein, da iSSH den Tunnel bereits erstellt hat und iSSH weiterhin im Hintergrund auf Ihrem iPhone ausgeführt wird.

Jetzt können Sie über einen SSH-Tunnel im Internet surfen.


Willst du noch einen Schritt weiter gehen? Installieren Sie Tor auf Ihrem Server, lassen Sie den iSSH-Tunnel mit dem Tor-Port verbinden, und dann können Sie von Ihrem Telefon aus anonym im Internet surfen.

Für technisch Neugierige, die etwas mehr über das Geschehene erfahren möchten:

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

Der SOCKS-Proxy-Browser kommuniziert über den lokalen Portweiterleitungstunnel mit dem dynamischen Portweiterleitungstunnel auf dem Server.

zuerst


Dies gilt nur für ProxyBrowse. Die E-Mail zum Beispiel ist ungeschützt.
Douglas Held

0

Wenn Sie Zugriff auf die Shell haben (Jailbreak) und die proxy.pacDatei am oben genannten Speicherort ablegen können , können Sie proxy.pacin den Netzwerkeinstellungen für die Verbindung, die Sie tunneln möchten , auch den folgenden Link für die Datei verwenden:

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

Zusammen mit einem SSH-Tunnel zu einem SSH-Server in den USA kann ich Pandora / Slacker usw. über
WLAN außerhalb des zulässigen Empfangsbereichs (dh auf Reisen außerhalb der USA) hören.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.