Wie kann der Netzwerkverkehr unter Mac OS X Leopard gezielt über VPN geleitet werden?

96752
newtonapple

Ich möchte nicht meinen gesamten Netzwerkverkehr an das VPN weiterleiten, wenn ich von zu Hause aus über das VPN meines Unternehmens verbunden bin. Wenn ich beispielsweise von zu Hause aus arbeite, möchte ich gerne alle meine Dateien auf der Time Capsule zu Hause sichern und trotzdem auf das interne Netzwerk des Unternehmens zugreifen können.

Ich verwende den integrierten VPN-Client von Leopard. Ich habe versucht, das Kontrollkästchen "Alle Daten über VPN-Verbindung senden" zu deaktivieren. Wenn ich dies tue, werde ich den Zugriff auf die internen Websites meines Unternehmens verlieren, entweder über curl oder den Webbrowser (obwohl interne IPs noch erreichbar sind). Es wäre ideal, wenn ich eine Reihe von IPs oder Domänen auswählen kann, die über VPN geleitet werden, und den Rest in meinem eigenen Netzwerk behalten. Ist dies mit dem integrierten VPN-Client von Leopard möglich? Wenn Sie Softwareempfehlungen haben, würde ich sie auch gerne hören.

88
Die erste Lösung funktioniert nur mit einem PPP-VPN. Die folgende Lösung funktioniert auf einem Cisco VPN (und anderen Typen, die nicht spezifisch für Cisco sind) http://superuser.com/questions/91191/how-to-force-split-tunnel-routing-on-mac-to-a- Cisco-Vpn dr jimbob vor 10 Jahren 2

4 Antworten auf die Frage

77
Aleksei Balandin

Erstellen Sie die Datei / etc / ppp / ip-up mit folgendem Inhalt:

#!/bin/sh /sbin/route add <SUBNET> -interface $1  

Durch <SUBNET>Subnetz ersetzen, das Sie über VPN routen möchten (z. B. 192.168.0.0/16)

als root ausführen:

chmod 0755 /etc/ppp/ip-up 

Diese Datei wird jedes Mal ausgeführt, wenn Sie sich mit VPN verbinden.

Die dem Skript angegebenen Parameter:

  • $1: Die VPN-Schnittstelle (zB ppp0)
  • $2: Unbekannt, war 0in meinem Fall
  • $3: IP des VPN-Servers
  • $4: VPN-Gateway-Adresse
  • $5: Normales Gateway (nicht VPN) für Ihre LAN-Verbindungen
Die Spitze von Aleksei hat für mich gearbeitet. Ich frage mich nur, ob die erste Zeile (#! / Bin / sh) etwas tut. Ist es nicht auskommentiert? Ich frage das, weil ich dies für den Einsatz in unserem Unternehmen beschreibe und je einfacher, desto besser :-) Danke, Edgar Edgar Wieringa vor 13 Jahren 1
@ EdgarWieringa: Ihre Antwort wurde in einen Kommentar umgewandelt. Hoffe das ist besser! :) studiohack vor 13 Jahren 1
@Edgar - nein. Diese erste Zeile ist etwas Besonderes. http://en.wikipedia.org/wiki/Shebang_(Unix) James Moore vor 13 Jahren 6
James hat recht, aber im Fall eines Shell-Skripts ist dies natürlich nicht notwendig. Wenn kein Shebang vorhanden ist, schickt das Betriebssystem es trotzdem zur Shell. :-) Benson vor 13 Jahren 0
Auf 10.7 / Lion hatte ich besseres Glück mit: / sbin / route add 172.16.0.0/16 -Interface $ 1 Die Argumente, die ich gesehen habe, waren ip-up: $ 1 = VPN-Schnittstelle, zB 'ppp0' $ 2 = '0' (nicht Stellen Sie sicher, was dieser Wert ist.) $ 3 = Ihre VPN-IP $ 4 = VPN-IP-Adresse des öffentlichen Gateways $ 5 = Normaler Standard-Gateway für Ethernet / WLAN Gabe Martin-Dempesy vor 12 Jahren 6
Ich frage mich ... würde diese Methode auch mit dem integrierten VPN auf einem iOS-Gerät mit Jailbroken funktionieren? Ich fühle mich immer schmutzig mit `/ etc` auf meinem iPad. mralexgray vor 11 Jahren 0
Das funktioniert wunderbar bei Lion. Ich habe seit Tagen damit zu kämpfen. Danke, Aleksei. Anriëtte Myburgh vor 11 Jahren 0
Berglöwe scheint die gleichen Params zu sein, -interface 1 $ sowie nur 4 $ sollten gut funktionieren tutuDajuju vor 11 Jahren 0
Was passiert, wenn zwei oder mehr VPN-Verbindungen konfiguriert sind? Wie unterscheide ich sie in `/ etc / ppp / ip-up`, damit ich die Routen entsprechend hinzufügen kann? Wird der benutzerfreundliche VPN-Name als 6. Argument ("ipparam") übergeben? Kal vor 10 Jahren 3
Zeit hier gespart :) Hatem Alimam vor 9 Jahren 0
Die Parameter $ 1 bis $ 5 - die sich für OS X 10.9 mit $ 6 ein wenig unterscheiden - finden Sie in Ihrer pppd-Manpage: $ Man -P 'less -p "/ etc / ppp / ip-up"' pppd ` Pro Backup vor 8 Jahren 1
Funktioniert auf Yosemite als beantwortet und entfernt Routen nach Verbindungsabbruch. Nett! Zayne S Halsall vor 8 Jahren 0
Ich musste das chmod aus irgendeinem Grund erneut ausführen, ich habe dieses Problem vor einiger Zeit behoben, habe aber aufgehört zu arbeiten. Beim Ausführen des Chmod wurde das Problem behoben. Anriëtte Myburgh vor 8 Jahren 0
`/ etc / ppp / ip-up` wird auf meinem System nicht aufgerufen; MacOS '10.13'. Ich habe ein ähnliches Skript erstellt, das die Ausführung protokolliert, es hat "root: staff" -Besitz und "0755" -Mod. Beim manuellen Aufruf wird das Skript ausgeführt. Meine VPN-Verbindung ist ein "L2TP über IPSec" und "Configure IPv4" ist auf "Using PPP" gesetzt. Ich "Schwanz -f" die Protokolle und Verbinden oder Trennen der vpn macht nichts mit `/ etc / ppp / ip-up`. GabLeRoux vor 7 Jahren 1
Ich habe hier ein Protokoll mit meinem Protokollierungsskript erstellt: https://gist.github.com/GabLeRoux/c7d4c9046d9b5ec7bce822426613912a Lassen Sie mich wissen, wenn jemand eine Lösung kennt. Zumindest habe ich es geschafft, mit folgender Antwort "Alle Daten über VPN-Verbindung senden" zu überspringen: https://superuser.com/a/121259/55267 GabLeRoux vor 7 Jahren 0
Dadurch kann ich weiterhin Verbindungen zu Geräten in meinem LAN herstellen, die Verwendung des DNS in meinem LAN ist jedoch nicht mehr möglich. Ich kann also 192.168.0.1 pingen, aber meine Firewall nicht. (Auch wenn ich "ping myfirewall.mylan.lan" mit mylan.lan als Suchdomäne in meinen Einstellungen verwende und 192.168.0.1 als ersten DNS-Server in den Einstellungen eingerichtet habe.) Tango vor 5 Jahren 0
9
Martin Hilton

Ich wollte etwas Ähnliches machen. Verbinden Sie das VPN und routen Sie ein zusätzliches Netzwerk über dieses VPN. Am Ende bekam ich folgendes Stück Applescript:

-- Connect Work VPN  tell application "System Events" tell network preferences tell current location tell service "Work" connect tell current configuration repeat until get connected = true delay 1 end repeat end tell end tell end tell end tell end tell  set gateway to "192.168.1.1"  do shell script "route add 172.16.0.0/16 " & gateway with administrator privileges 

Sie müssen "Work"den Namen Ihrer VPN-Verbindung, 192.168.1.1Ihre Gateway-Adresse und 172.16.0.0/16die Adresse des Netzwerks ändern, zu dem Sie routen möchten. Zusätzliche Netzwerke können hinzugefügt werden, indem die letzte Zeile mit verschiedenen Adressen wiederholt wird.

(Kleiner Zusatz, für diejenigen, die sich über diese IP-Adresse wundern: Wie der Fragesteller angesprochen hat, ist 172.16.0.0/16 ein privater Adressraum wie bei 10.xxx und 192.168.xx. Also ist es tatsächlich Teil des VPN, und nicht irgendeine externe Website oder was auch immer.) Arjan vor 15 Jahren 1
Also ist 192.168.1.1 Ihr Router am VPN oder der Router am LAN? Und müssen Sie die Standardroute nicht in Ihr LAN zurücksetzen? Jack M. vor 14 Jahren 1
7
GabLeRoux

In den Netzwerkeinstellungen von MacOS gibt es eine verborgene Funktion : Sie können Schnittstellen sortieren .

Öffnen Sie die Systemeinstellungen -> Netzwerk -> Klicken Sie gearunten links auf ->Set service Order...

<code> Serviceauftrag einstellen ... </ code> VPN-Bestellung

Es ist wichtig, dass Ihre Netzwerkschnittstellen in der Reihenfolge sortiert sind, in der sie verwendet werden sollen. Wenn ALLE Nicht-LAN-Daten an das VPN gesendet werden sollen, stellen Sie die VPN-Schnittstelle oben auf. Sortiere so

  1. VPN
  2. Ethernet
  3. Flughafen

So nicht:

  1. Flughafen
  2. Ethernet
  3. VPN

Auf diese Weise müssen Sie die folgende Einstellung nicht überprüfen Session Options:

Senden Sie den gesamten Datenverkehr über eine VPN-Verbindung

✅ Bei L2TP VPNVerbindung getestet

Ich glaube nicht, dass dies die Frage beantwortet, es sei denn, das OP wird über Ethernet auf Time Machine gesichert und stellt eine Verbindung zum Firmennetzwerk her. Flughafen (Drahtlose Verbindung) Josh Newman vor 14 Jahren 0
Ich habe den PPP-Startup-Trick verwendet, aber er funktionierte nicht, bis ich meine VPN-Verbindung unter die drahtlose Verbindung verschoben habe. Dies ist eine gültige Antwort. Arosboro vor 12 Jahren 1
Es wird wirklich die Hauptantwort sein! Vielen Dank, es wäre unmöglich herauszufinden! Andre Soares vor 8 Jahren 0
Dies funktioniert für L2TP-IPSec-VPNs, NICHT jedoch für Cisco-IPSec-VPNs. Cisco IPSec-VPNs sind im Dialogfeld "Set Service Order" nicht verfügbar goofology vor 6 Jahren 0
1
Alexis Hirst

Ich habe im Internet nachgeschaut, um herauszufinden, ob ich etwas finden kann, und so weit ich verstehen kann, möchten Sie Ihren Computer wie gewohnt verwenden können, während Sie auch in der Lage sind, sich mit firmeninternen Websites zu verbinden Sie müssen eine benutzerdefinierte Routing-Tabelle einrichten.

Dieser Link gilt anscheinend nur für 10.4, aber die Befehlszeilenelemente funktionieren möglicherweise immer noch.