Standard-Gateway wird geändert

28

Ich verwende 3 Ethernet-Schnittstellen unter Ubuntu, aber wenn ich neu starte, wechselt das Standard-Gateway zu einer anderen Schnittstelle. Jedes Mal, wenn ich boote, muss ich das Standard-Gateway auf eth1 zurücksetzen, indem ich das Standard-Gateway lösche und es mit eth1 wieder hinzufüge. Wie kann ich dieses Problem beheben?

Baran
quelle
Haben Sie es manuell mithilfe der /etc/network/interfacesDatei oder mit einer Software wie Network Manager oder WICD konfiguriert ?
Lekensteyn
1
"Gateway" ist nicht gleich "Route". Ein Gateway ist spezifisch für eine Schnittstelle, bei der eine Route angibt, welche Schnittstelle verwendet werden soll.
Lekensteyn
Das Gateway ist normalerweise eine Schnittstelle auf einem Remote-Gerät, auf die sich der lokale Knoten für Routing-Entscheidungen stützt. Eine Routenanweisung selbst kann sich auf eine lokale Schnittstelle beziehen oder nicht, das Routing-Ziel muss jedoch anhand einer rekursiven Suche, einer verbundenen Schnittstelle oder einer Standardroute erkennbar sein. Eine Standardroute oder ein Standardgateway ist das „Gateway of last resort“ (Gateway der letzten Instanz), das verwendet wird, wenn keine spezifischere Route verfügbar ist.
Belacqua
Können Sie Ihre Routing-Tabelle und Liste der Schnittstellen sowie andere relevante Netzwerkkonfigurationen bereitstellen, die Sie vorgenommen haben?
Belacqua

Antworten:

33

Um die Standardroute vorübergehend zu ändern, können Sie einen IP-Befehl wie den folgenden verwenden:

$ sudo ip route change default via 192.168.1.1 dev eth0

Wenn Sie eine statische IP-Konfiguration haben /etc/network/interfaces, können Sie eine Gateway-Anweisung hinzufügen, um diese dauerhaft zu machen.

iface eth0 inet static
    gateway 192.168.1.1
    […]

Wenn Sie das Netzwerk über DHCP konfigurieren, müssen Sie stattdessen eine andere Datei anpassen. Fügen Sie die ersetzte Anweisung in ein /etc/dhcp/dhclient.conf.

supersede routers 192.168.1.1;
Webwurst
quelle
1
Skriptfähige Version (sollte ein Leerzeichen zwischen den Anführungszeichen sein):echo supersede routers $(ip route | grep default | cut -f3 -d" ")\; | sudo tee --append /etc/dhcp/dhclient.conf
colan
Was ist, wenn ich mehrere Schnittstellen habe? Sollten sie nicht alle ein "Gateway" für jede Schnittstelle haben? Aber wie wirkt sich das Beispiel auf die Standardausgabe des Befehls "ip route" über 192.168.3.1 dev eth6 aus? Es listet eine bestimmte Schnittstelle auf, oder?
JohnyTex
7

Öffne die Datei /etc/network/interfaces

Suchen Sie die gewünschte Schnittstelle und fügen Sie Folgendes hinzu:

gateway 192.x.x.x

Netzwerk neu starten:

sudo /etc/init.d/networking restart
mount.cifs
quelle
16
Was ist, wenn die gewünschte Schnittstelle über DHCP konfiguriert ist und ich die zuzuweisende Gateway-Adresse nicht kenne?
devmiles.com
0

Ich hatte das gleiche Problem für meine WLAN-Schnittstelle wlp3s0auf Ubuntu 18.04. Es hat sich auf meine Fähigkeit ausgewirkt, eine Verbindung zu Android Tethering und Router außerhalb meines Zuhauses herzustellen. Der Weg, das Problem für mich zu lösen, bestand darin, /etc/dhcpcd.confFolgendes in der Datei zu kommentieren :

interface wlp3s0
        static ip_address=192.168.0.16/24
        static routers=192.168.0.1
        static domain_name_servers=127.0.0.1

um folgendes zu bekommen

#interface wlp3s0
#        static ip_address=192.168.0.16/24
#        static routers=192.168.0.1
#        static domain_name_servers=127.0.0.1

Dann habe ich von meinem derzeitigen Netz getrennt und wieder angeschlossen ein versuchte route -noder nmcliÄnderungen zu sehen

Sie können dieselben Zeilen auch entfernen, wenn Sie sicher sind, dass sie für Sie funktionieren.

Aufgrund dieser Leitungen fügte der NetworkManager immer eine Standardroute mit einem falschen Gateway hinzu, insbesondere wenn ich mich nicht in meinem Heimnetzwerk befand. Ich habe "Destination Host Unreachable" erhalten, als ich eine ping 8.8.8.8. Das Hardcodieren eines Gateways /etc/network/interfaceswar keine praktikable Lösung, da ich viel mit öffentlichen WLANs verbinde (also niemals mit demselben WLAN-Router oder -Gateway) und normalerweise sollte DHCP "out of the box" funktionieren.

PS: Ich habe noch nie manuell bearbeitet, /etc/dhcpcd.confdaher weiß ich nicht, warum die Datei /etc/dhcpcd.confdiese Zeilen enthielt.

ThomasG77
quelle