Ich habe zwei verschiedene Netzwerkschnittstellen, die mit 2 Netzwerken verbunden sind. Einer ist ein eth0 und der andere ein wlan0. Wie kann ich einer Software anweisen, nur eine bestimmte Schnittstelle zu verwenden?
Grundsätzlich möchte ich, dass Firefox eth0 verwendet, da es sich um das LAN-Netzwerk der Universität handelt und ich zu Intranetsites gehen muss. Das andere ist ein für das Internet offenes WLAN-Netzwerk und ich möchte es an Chrome binden.
Ich arbeite und muss das Intranet benutzen. Also ist eth0 meine Wahl, aber eth0 ist ein Intranet ohne Internetzugang (offensichtlich). Da ich einen Internetzugang haben möchte, bin ich mit wlan0 (Universitäts-WLAN für Studenten) verbunden.
Das Problem ist, wenn ich beide verbunden habe, sucht der Browser manchmal mit eth0 nach www.stackoverflow.com. Daher wollte ich einen Browser zuweisen, der nur eine bestimmte Oberfläche verwendet.
quelle
Antworten:
Sie können keine Client-Software an bestimmte Netzwerkschnittstellen binden, aber Sie können dem Kernel mitteilen, dass Sie nur eine Netzwerkschnittstelle für einige IP-Adressen und die andere für alles andere verwenden möchten. Dies wird als "Routing" bezeichnet und kann mit den Befehlen
/sbin/route
und konfiguriert werden/sbin/ip
.Wenn ich Ihre Frage richtig gelesen habe, möchten Sie über die Schnittstelle eine Verbindung zu Intranet-IP-Adressen
eth0
und über die Schnittstelle eine Verbindung zum Internet herstellenwlan0
.Wenn Sie den Befehl ausführen
ip route list
, sollten Sie eine Ausgabe wie die folgende sehen (Zahlen sind unterschiedlich, und Sie können auch mehr Zeilen enthalten):Die ersten beiden Zeilen enthalten Informationen zu den mit Schnittstellen verbundenen Netzwerken
eth0
undwlan0
: Netzwerkverkehr, der an Computer in diesen Netzwerken gerichtet ist, wird über die entsprechende Schnittstelle direkt an diese gesendet.In der letzten Zeile wird die "Standardroute" angegeben: Wenn Ihr Computer mit einem Computer in einem Netzwerk kommunizieren möchte, mit dem er nicht verbunden ist (z. B. dem stackoverflow.com-Server), wird der Datenverkehr über den
eth0
Host weitergeleitet10.60.44.1
( genannt "Standard-Gateway").wlan0
Um also den Internet-Verkehr durchzuleiten , sollten Sie sicherstellen, dass die letzte Zeile in derip route list
Ausgabe ungefähr so lautet:Wo
A.B.C.D
ist die IP-Adresse des Gateways im WLAN? Wenn die Ausgabe nicht "dev wlan0" enthält, können Sie sie mit dem folgenden Befehl ändern:Sie können das Richtige
A.B.C.D
aufwlan0
zwei Arten herausfinden :Suchen Sie in Verzeichnis
/var/lib/dhcp3/
: Sie sollten einigedhclient-...-wlan0.lease
Dateien finden. Öffnen Sie die neueste und suchen Sie nach einer Zeile mit der darin enthaltenen Zeichenfolgeoption router
: Der Rest der Zeile gibt die IP-Adresse anA.B.C.D
.Fragen Sie Ihre lokalen Netzwerkadministratoren. (Wahrscheinlich sowieso das Beste.)
Mit dieser Konfiguration sollten Sie in der Lage sein:
wlan0
eth0
, sofern es sich in einem einzelnen Netzwerk befindet .Wenn sich Ihr Intranet über mehrere Netzwerke erstreckt, müssen Sie Routen für diese hinzufügen - und dazu müssen Sie auf jeden Fall mit den Administratoren des lokalen Netzwerks interagieren. :-)
quelle
"ip netns" erstellt Netzwerknamespaces. Sie können dann virtuelle Schnittstellen erstellen (ip link add ... veth) und diese den Namespaces zuordnen.
Die Namespaces können so konfiguriert werden, dass sie beispielsweise unterschiedliche Routen verwenden (und somit unterschiedliche Schnittstellen verwenden).
Dann können Sie Befehle in diesem Namespace ausführen, die den erstellten Namespace verwenden. "Ip netns exec NAME cmd ..."
Quelle: http://manpages.ubuntu.com/manpages/saucy/en/man8/ip-netns.8.html
quelle