VPN Verbindung für nur ein einzelnes Programm?

taette

Ensign
Registriert
Aug. 2012
Beiträge
243
Hallo zusammen,

ich habe das Anliegen, dass nur ein bestimmtes Programm auf meinem Rechner durch den VPN läuft und alles andere ganz normal "drumherum". Wie ist dies am einfachsten umzusetzen? Derzeit nutze ich OpenVPN. Als Anbieter habe ich vpntunnel.com gewählt. Ich habe bislang die Windows Firewall deaktiviert. Ich habe die Begriffe Split Tunneling schon gelesen und irgendwas mit iptables, aber damit kenne ich mich leider gar nicht aus und wüsste auch nach längerem Recherchieren auch nicht wie diese zu konfigurieren sind.

PC: Windows 7 Pro 64Bit



Danke
 
iptables und Windows geht schon mal gar nicht. Das ist Linux :)

Das Problem an der Sache ist, dass Windows nur nach Ziel-IP routet. Das heißt man muss den Ziel-Server kennen und dafür eine Route mittels "route add" hinzufügen. Dumm nur, dass Anwendungen zum einen mehrere Server nutzen und diese mitunter auch mal eine neue IP verpasst bekommen. Man müsste die Server-IP(s) also stets nachpflegen. Mit Linux ist das schon einfacher, weil man mit besagten iptables auch nach Ports oder sonstigen Merkmalen der Verbindung anders routen kann. Unter Windows ist mir nur das Tool "ForceBindIP" bekannt, welches eine Anwendung explizit einer Netzwerkverbindung (zB VPN) zuweisen kann. Ob bzw. wie gut das funktioniert, kann ich nicht beurteilen, weil ich das Tool nicht einsetze.
Alternativ besteht in der Anwendung selbst unter Umständen die Möglichkeit, einen Proxy einzustellen.

https://www.youtube.com/watch?v=o2yP48JF5-M
http://old.r1ch.net/stuff/forcebindip/
 
Der einfachste Weg ist wahrscheinlich eine VM mit z.bsp. VirtualBox. Für ein einzelnes Programm aber eher Overkill.
 
Ich kenne z.b. PureVPN und da gibt es diese Split Tunneling Funktion. Dort legst du einzelne .exe Dateien fest die über das VPN geschickt werden, alles andere bleibt unverändert.
 
Die einzige Möglichkeit, die ich sehe, wäre, wenn dein Router eine entsprechende VPN aufbauen kann. Die Route könnte dann port-, protokoll- oder zielabhängig über die VPN geschaltet werden, während alle anderen Verbindungen, die "normale" Route nehmen.
 
Man kann Routen auch in Windows an Interfaces wie sie VPN Tools erstellen von Hand binden, das muss man nicht über den Router machen
 
Aber Windows kann nur nach Ziel-IPs routen.

Anwendungsspezifisches Routing würde bedeuten:

Firefox => computerbase.de @ VPN
Chrome => computerbase.de @ Provider

Da beide auf die IP von computerbase.de verbinden wollen, ist da für Windows kein Unterschied und beide gehen via VPN oder Provider, je nachdem welche Route die niedrigere Metrik hat.
 
Zuletzt bearbeitet:
ForceBindIP kannte ich noch nicht und habe ich derweilen mal getestet.

Komischerweise funktioniert das Programm überhaupt nicht. Zwar startet wie angegeben meiner Browser (getestet mit IE und Firefox) aber bei liegen weiterhin hinter dem VPN. Als Client verwende ich OpenVPN, wie man ihn hier findet.

Jedenfalls wollte ich das nur mal eben testen. Sonst gehe ich auch den Weg über route.exe.
 
Das Problem an der Sache ist, dass Windows nur nach Ziel-IP routet. Das heißt man muss den Ziel-Server kennen und dafür eine Route mittels "route add" hinzufügen. Dumm nur, dass Anwendungen zum einen mehrere Server nutzen und diese mitunter auch mal eine neue IP verpasst bekommen. Man müsste die Server-IP(s) also stets nachpflegen
Wäre aber doch kein Problem wenn ich nen eigenen VPN habe zuhause wo ich nur aus dem LAN mir Sachen ziehen will. Oder da auch?
 
Es kommt drauf an was man machen will.

Szenario 1:
Man sitzt zu Hause und will regionsbeschränkten Inhalt abrufen (zB netflix), aber gleichzeitig zB online spielen.
Startet man nun zB Cyberghost oder einen vergleichbaren VPN-Dienst, wird standardmässig ALLES via VPN geleitet, auch das Spiel. Das ist nicht erwünscht und so will man zB nur den MedienPlayer via VPN online gehen lassen, der Rest soll via Provider gehen.


Szenario 2:
Man sitzt zB im Hotel und möchte auf die heimischen Daten zugreifen.
Startet man nun einen VPN-Client und verbindet sich mit dem VPN-Server in der Wohnung, dann wird unter Umständen auch ALLES via VPN geleitet, also Hotel -> Wohnung/VPN-Server -> www (und bleibt evtl. am VPN-Server hängen, wenn der nicht wieder ins www leitet). Das ist aber eine reine Einstellungssache, weil man dem VPN-Client auch in der Konfiguration mitteilen kann, dass er nur die LAN-IPs vom heimischen Netzwerk routen soll. Windows routet dann alles was zB nach 192.168.123.0 (das Heim-Subnetz) gehen soll via VPN, der Rest wird normal ans Internet-Gateway geroutet.
Das ist im übrigen auch der Grund warum man bei solchen VPN-Verbindungen im heimischen Netzwerk stets ein ungewöhnliches Subnetz wählen sollte und nicht zB beim Fritzbox-Standard 192.168.178.0 bleiben sollte. Sonst kann Windows nämlich nicht unterscheiden zwischen dem heimischen Fritz-LAN und dem im Hotel (wenn das Hotel dasselbe Subnetz verwendet).



In #1 geht es um eine Anwendung, die explizit via VPN geroutet werden soll. Bei #2 geht es wiederum ganz einfach um die heimischen LAN-IPs. Letzteres ist ganz normal über die Routing-Tabelle zu lösen bzw. wird vom VPN-Client in der Regel automatisch gesetzt. Bei der anwendungsspezifischen Variante sieht es aus oben genannten Gründen anders aus. Zwar könnte man zB alle Netflix-IPs manuell in die Routing-Tabelle über das VPN routen, aber sobald Netflix die Server-IPs ändert oder neue Server hinzufügt, muss man nacharbeiten, weil es sonst nicht mehr funktioniert. Zwar kann man zT Routen auf URLs hinzufügen (abhängig vom Betriebssystem), aber die werden nur einmalig aufgelöst (beim Hinzufügen) und im Hintergrund wird nur die IP-Route hinzugefügt - und bleibt so, auch wenn die URL später auf eine andere IP zeigt, zB bei DynDNS-Adressen.
 
Zuletzt bearbeitet:
Wie bekommt man das denn hin. Ich hatte immer so das Problem dass alles über kein VPN (LAN Zuhause) dann gelaufen ist. War halt uncool wenn man mal Videos schauen wollte weil es dann ebenso über die Leitung zuhause erst lief.
 
Je nach VPN-Technologie sind die Einstellungen anders. In der Regel gibt es im Client aber eine Einstellung, die "redirect gateway" oder ähnlich heißt. Stellt man die VPN-Verbindung her, dann wird automatisch die Routing-Tabelle des Client-PCs angepasst und der komplette Datenverkehr wird über den VPN-Server geleitet. Will man das nicht, schaltet man diese Funktion weg bzw. löscht die Zeile aus der Konfig.
Stattdessen setzt man dann in der Konfiguration explizit routen in das Heimnetz.


Beispiel OpenVPN:
(client)
Code:
redirect-gateway def1
dhcp-option DNS 8.8.8.8
Die erste Anweidung setzt das Gateway auf den VPN-Server und die zweite Anweisung setzt den DNS auf 8.8.8.8


(server)
Code:
push "route 192.168.1.0 255.255.255.0"
Damit schickt der Server beim Connect Infos zum Client welche Netzwerke über ihn erreichbar sind und der Client fügt entsprechende Routen für diese Netze über den VPN-Server in die eigene Routing-Tabelle ein.

Analog dazu kann der Client das auch selbst machen

(client)
Code:
route 192.168.1.0 255.255.255.0 192.168.2.1
 
Vielen Dank für die vielen Beiträge. Ich habe ForceBindIP getestet und leider klappt dies nicht. Mit Firefox ja, mit Chrome und Vivaldi nicht.

Es werden auch zwei verschiedene Ports genutzt, die ich auch explizit benennen kann.
 
Ich frage mal andersherum: Was genau willst du überhaupt tun? Welche Programme über welche Verbindung und warum?

Wenn ForceBindIP bei dir nicht funktioniert, wirst du mit Windows schlechte Karten haben. Mir ist keine andere Möglichkeit geläufig, anwendungsspezifisch zu routen, aber evtl. kennt sonst noch jemand eine Alternative. In Beitrag #2 hat thrawnx purevpn erwähnt. Eventuell hilft dir das ja weiter.

Man könnte das ganze natürlich auch auslagern, zB in einen 20€ Router mit OpenWRT oder einen Raspberry PI. Wenn der PC diesen Router/PI als Gateway eingestellt hat, kann man dort den VPN-Tunnel erstellen und gegebenenfalls darüber routen.
 
Zurück
Oben