Ich arbeite auf einem Mac und versuche, eine bestimmte Adresse über ein bestimmtes Gateway in meiner WLAN-Verbindung weiterzuleiten.
Ich benutze:
route add -host 54.81.143.201 192.168.15.1
Manchmal funktioniert das, manchmal nicht. Was ich fand, ist, dass die Schnittstelle, die sie wählt, jedes Mal anders ist. Es muss nicht en0
funktionieren
netstat -nr
Ausgabe, wenn es nicht funktioniert:
54.81.143.201 192.168.15.1 UGHS 1 89 en5
Dies ist, wenn es funktioniert: (Anmerkung en0)
54.81.143.201 192.168.15.1 UGHS 0 1 en
Warum mache ich das? Weil unser Unternehmen einen Proxy hat, an dem HipChat nicht arbeitet. Daher leite ich den Hip-Chat-Datenverkehr über ein offenes WLAN-Netzwerk, während ich noch im Netzwerk bin.
BEARBEITEN:
Ich habe auch versucht, den Eintrag nur über die Benutzeroberfläche hinzuzufügen
route add -host 54.81.143.201 -interface en0
54.81.143.201 78:31:c1:c7:52:74 UHS 0 2 en0
HipChat kann keine Verbindung herstellen.
EDIT 2: Jemand hat nach meiner ganzen Routing-Tabelle gefragt, hier ist es heute. Beachten Sie, dass 54.81.143.201 jetzt an en3 und nicht an en0 gebunden ist
Internet:
Destination Gateway Flags Refs Use Netif Expire
default 10.7.90.1 UGSc 31 6 en3
10.7.90/24 link#4 UCS 4 0 en3
10.7.90.1 0:23:ac:3d:db:c2 UHLWIir 16 0 en3 1200
10.7.90.44 40:6c:8f:19:4a:bb UHLWI 0 3 en3 946
10.7.90.63 127.0.0.1 UHS 0 0 lo0
54.81.143.201 192.168.15.1 UGHS 0 0 en3
127 127.0.0.1 UCS 0 0 lo0
127.0.0.1 127.0.0.1 UH 3 209 lo0
169.254 link#4 UCS 1 0 en3
169.254.255.255 0:23:ac:3d:db:c2 UHLSW 0 0 en3
en3
ist eindeutig richtig. 192.168.15.1 ist über keine andere Schnittstelle erreichbar. Die einzige Möglichkeit, 192.168.15.1 in dieser Routingtabelle zu erreichen, ist die Standardroute, oder? (Offen gesagt, Sie haben keine Ahnung, was Sie tun. Sie scheinen überrascht zu sein, dass das System nicht das Unmögliche tut.)Antworten:
Versuchen:
quelle
Wie andere angedeutet haben, sind dies tatsächlich 3 Probleme.
Ihre drahtlose Schnittstelle scheint sich zwischen en0, en3 und en5 zu ändern.
Auf meinem MacBook Air ist en0 immer drahtlos. Thunderbolt-to-Ethernet ist immer en3 und USB-to-Ethernet ist immer en5. Wenn Sie jedoch einen Adapter an einen anderen Anschluss Ihres Mac anschließen, ändert sich der Name der Netzwerkkarte. Sie müssen dies zuerst lösen. Stellen Sie sicher, dass Ihr WLAN immer den gleichen Namen hat. Andernfalls schlägt der Befehl bei Eingabe des statischen Routenbefehls
en0
(offensichtlich) mit einem "Adressfehler" fehl (physikalische Adresse hat keine Verknüpfung) , wenn keine Netzwerkkarte an den Speicherort angeschlossen ist.Stellen Sie ebenfalls sicher, dass der Adapter immer mit derselben SSID verbunden ist. Die Gateway-Adresse muss natürlich für das Subnetz gültig sein, und verschiedene WiFi-Netzwerke haben unterschiedliche Subnetze. Dies kann eine andere Art von Fehler verursachen.
Sie haben nicht angegeben, ob WLAN Ihre einzige Netzwerkverbindung ist. Angesichts des oben genannten, denke ich nicht ...? Diese und virtuelle Netzwerke aufgrund von VMware oder Parallels können zusätzliche Komplexität verursachen. (Wenn beispielsweise beide verbundenen Netzwerke denselben IP-Raum verwenden ... Virtuelle Maschinen sind häufig überbrückt und haben ihre eigenen IPs / Routen / Links ...) Das Posten der Netzwerktopologie ist hilfreich.
Versuchen Sie es anschließend mit
sudo route add -host 54.81.143.201 -iface en0
odersudo ipfw
. Wenn Sie sich über den Namen des Adapters nicht sicher sind, können Sie stattdessen dessen MAC-Adresse wie folgt angeben:sudo route add -host 54.81.143.201 -link 14:10:9f:e7:fd:0a
Verwandte Themen: https://discussions.apple.com/thread/5049994?searchText=policy%20route
Wenn Sie neu starten, wird dies möglicherweise nicht fortgesetzt. Sie müssen das separat behandeln.
quelle
quelle
Ich konnte eine Route über eine Schnittstelle hinzufügen, indem ich die
-link
Option zum Angeben einer MAC-Adresse verwendete.route add -host 54.81.143.201 -link [mac addr of 192.168.15.1 on en0]
Dadurch wird der Datenverkehr für
54.81.143.201
die entsprechende Schnittstelle gesendet.Sie haben zwei separate
192.168.15.*
Hostadressen zugewiesen, eine für jede Schnittstelle, oder? Andernfalls können Sie Datenverkehr über beide Schnittstellen senden, der Datenverkehr wird jedoch auf der Quell-IP-Adresse der Pakete zurückgegeben.quelle
Diese Lösung funktioniert auf dem neuesten MacOS 10.12 (Sierra). Hier ist der Kern .
Verwenden Sie wie folgt:
Es wird davon ausgegangen, dass die WLAN-Schnittstelle: en1 ist .
Vergessen Sie nicht, die korrekten Werte für die Variablen wifi_router und wifi_address einzugeben . Beachten Sie das Format wifi_address , das wie folgt lautet: Name der Netzwerkschnittstelle ' : ' MAC- Adresse der Schnittstelle mit ' . ' Trennzeichen . Sicher, die meisten erforderlichen Informationen können aus der ifconfig- Befehlsausgabe heraus analysiert werden , aber dafür bin ich einfach zu faul =)
quelle
Der OS X-
route
Befehl ist hier dokumentiert . Die-ifscope
Parameter und seinen Wert ermöglicht es Ihnen , eine Schnittstelle gebundene Route angeben.Dies ist jedoch nicht das, was Sie wollen. Sie müssen Ihre Netzwerke so einrichten, dass ihre IP-Bereiche eindeutig sind. Davon abgesehen beeinflussen Schnittstellenmetriken (auch Prioritäten genannt), welche Schnittstelle aus einer ansonsten gleichermaßen geeigneten Option ausgewählt wird.
quelle
Der Anbieterserver, mit dem Sie bezüglich des von Ihnen behaupteten Dienstes "HipChat" zu sprechen versuchen, ist also 54.81.143.201? In diesem Fall würde ich einen Routing-Eintrag für 54.81.143.0 255.255.255.0 vornehmen, um den Bereich zu vergrößern. Wenn Sie die Software verwenden, sprechen Sie möglicherweise nicht immer mit diesem bestimmten Server, sondern mit einem Cluster von ihnen im selben Subnetz 54.81.143.0/24. Stellen Sie außerdem sicher, dass Ihre Routenmetriken korrekt sind, wenn Sie einen neuen Eintrag erstellen. Wenn Sie eine Route zu 54.81.143.0/24 192.168.15.1 Metric 20 En5 erstellen, aber auch eine Route zu 0.0.0.0/0 10.7.90.1 Metric 10 En0 haben. Der Computer ignoriert Ihren neuen Eintrag und leitet den Verkehr weiter über die Standardroute (über En0), da dies vorzuziehen ist. Ich habe das nur durchgesehen und wollte darauf hinweisen. Prost!
quelle
Sie sollten versuchen, den NIC-Namen hinzuzufügen:
Das funktioniert bei mir in CentOS.
quelle