Automatischer systemweiter Proxy

Wenn ich mich in einem öffentlichen Netzwerk befinde, dem ich nicht vertraue, verwende ich eine Kombination aus ConnectBot und ProxyDroid (mit aktiviertem „Global Proxy“), um den Datenverkehr meines Telefons durch einen vertrauenswürdigen Server zu tunneln, den ich kontrolliere. Allerdings muss ich das alles manuell einrichten, und ich bin mir sicher, dass viele andere Daten um diesen Tunnel herum durchsickern (zumindest checken Apps zwischen dem Zeitpunkt ein, zu dem ich mich mit einem Netzwerk verbinde, und dem Zeitpunkt, zu dem ich die Tunnel). Außerdem ist der Prozess so kompliziert, dass ich ihn normalerweise nur durchlaufe, wenn ich mich in einem öffentlichen Netzwerk befinde und ich SSL-Fehler vom Browser erhalte, die mir mitteilen, dass google.com ein von GoDaddy signiertes Zertifikat verwendet.

Ich möchte etwas einrichten, das den Prozess ein wenig glättet, sodass automatisch ein Tunnel eingerichtet wird, wenn ich mich mit einem Netzwerk verbinde, der gesamte Datenverkehr durch ihn geleitet wird und Apps keine Verbindung zum Internet herstellen können, es sei denn, dies ist der Fall Tunnel ist offen (sehr wichtig). Offensichtlich sollte es die Authentizität des Servers überprüfen, bevor es eine Verbindung herstellt (obwohl ich kein VPN gesehen habe, das dies nicht tut). Ich hätte gerne etwas, das SSH verwendet, da dies am einfachsten einzurichten ist, aber alles ist möglich. Was für Lösungen wie diese gibt es? Auf meinem Server läuft Ubuntu 12.04, und ich kann bei Bedarf zusätzliche Software darauf installieren.

Auch hier ist der wichtigste Teil, dass keine App auf das Netzwerk zugreifen kann, es sei denn, sie geht durch den Tunnel, und wenn der Tunnel noch nicht eingerichtet wurde, entgeht kein Datenverkehr. Offensichtlich müsste die einzige Ausnahme diejenige App sein, die tatsächlich die anfängliche Verbindung zum Aufbau des Tunnels herstellt.

Ich verwende derzeit ein gerootetes HTC Incredible mit CyanogenMod 7. Ich bin jedoch auf der Suche nach einem neuen Telefon. Wenn also jemand Lösungen kennt, die etwas Neueres als Android 2.3 erfordern, wären diese ebenfalls willkommen.

Antworten (2)

Vielleicht Schattensocken? Es gibt verschiedene Client/Server-Betriebssysteme, sogar für Router. http://www.shadowsocks.org/

Proxys sollen nicht systemweit festgelegt werden. Apps sollen Proxy-Verbindungen herstellen, wenn sie möchten. Und meistens greifen Apps auf den No-Proxy-Modus zurück, wenn der Proxy-Server aus irgendeinem Grund nicht erreichbar ist. Es gibt auch andere Einschränkungen. httpProxys können keinen UDP-Verkehr verarbeiten und SOCKS-Proxys können kein ICMP-Echo verarbeiten (das pingverwendet wird). Ein VPN-Netzwerk arbeitet jedoch auf einer niedrigeren Ebene und leitet den gesamten Datenverkehr an das entfernte Ende weiter. Einzelheiten finden Sie unter Warum funktioniert der auf Android eingestellte Proxy nicht, wenn er als Hotspot verwendet wird?

Es sollte die Authentizität des Servers überprüfen, bevor eine Verbindung hergestellt wird (obwohl ich kein VPN gesehen habe, das dies nicht tut).

Die meisten httpProxys unterstützen die grundlegende Authentifizierung, und offensichtlich tun dies SSH und VPNs.

Ich hätte gerne etwas, das SSH verwendet, da dies am einfachsten einzurichten ist

Sie können einen SOCKS5-Tunnel mit dynamischer SSH-Portweiterleitung erstellen, er kann auch UDP-Verkehr weiterleiten. Sie müssen jedoch Apps von Drittanbietern verwenden, Android unterstützt keine SOCKS-Proxys. Für Details siehe: Wie richte ich ein Socks5 mit Android CLI ein?

Ich möchte etwas einrichten, das den Prozess ein wenig glättet, sodass automatisch ein Tunnel eingerichtet wird, wenn ich mich mit einem Netzwerk verbinde, der gesamte Datenverkehr durch ihn geleitet wird und Apps keine Verbindung zum Internet herstellen können, es sei denn, dies ist der Fall Tunnel ist offen (sehr wichtig).

Android bietet standardmäßig keine solche Funktionalität, aber Sie können Automatisierungs-Apps in Kombination mit VPN-basierten Apps verwenden, um hoffentlich das gewünschte Ergebnis zu erzielen.