Zmiana domyślnej bramy

28

Korzystam z 3 interfejsów Ethernet na Ubuntu, ale po ponownym uruchomieniu domyślna brama zmienia się na inny interfejs. Za każdym razem, gdy uruchamiam komputer, muszę zmienić domyślną bramę z powrotem na eth1, usuwając domyślną bramę i dodając ją z powrotem z eth1. Jak mogę rozwiązać ten problem?

Baran
źródło
Czy skonfigurowałeś go ręcznie za pomocą /etc/network/interfacespliku lub z oprogramowaniem takim jak Network Manager lub wicd?
Lekensteyn
1
„Brama” nie jest równa „trasie”. Brama jest specyficzna dla interfejsu, w którym trasa mówi, którego interfejsu należy użyć.
Lekensteyn
Brama jest zwykle interfejsem na zdalnym urządzeniu, na którym węzeł lokalny polega na decyzjach dotyczących routingu. Sama instrukcja route może odnosić się do interfejsu lokalnego lub nie, ale miejsce docelowe routingu musi być możliwe do wykrycia na podstawie rekurencyjnego wyszukiwania, podłączonego interfejsu lub trasy domyślnej. Domyślna trasa lub brama domyślna to „brama ostateczności” - która będzie używana, gdy nie będzie dostępna bardziej konkretna trasa.
belacqua
Czy możesz podać tabelę routingu i listę interfejsów oraz inne odpowiednie konfiguracje sieci, które wykonałeś?
belacqua

Odpowiedzi:

33

Aby tymczasowo zmienić domyślną trasę, możesz użyć polecenia ip w następujący sposób:

$ sudo ip route change default via 192.168.1.1 dev eth0

Jeśli masz statyczną konfigurację adresu IP /etc/network/interfaces, możesz dodać instrukcję bramy, aby stała się trwała.

iface eth0 inet static
    gateway 192.168.1.1
    […]

Używając DHCP do konfiguracji sieci, musisz zmienić inny plik. Dodaj instrukcję zastępowania w /etc/dhcp/dhclient.conf.

supersede routers 192.168.1.1;
webwurst
źródło
1
Wersja skryptowa (powinna być spacją między znakami cudzysłowu):echo supersede routers $(ip route | grep default | cut -f3 -d" ")\; | sudo tee --append /etc/dhcp/dhclient.conf
colan
Co jeśli mam wiele interfejsów? Czy nie wszystkie powinny mieć „bramę” dla każdego interfejsu? Ale co wpływa na przykład „” domyślnie przez 192.168.3.1 dev eth6 ”wyjście polecenia ip route? Wymienia konkretny interfejs, prawda?
JohnyTex
7

Otwórz plik /etc/network/interfaces

znajdź żądany interfejs i dodaj:

gateway 192.x.x.x

Uruchom ponownie sieć:

sudo /etc/init.d/networking restart
mount.cifs
źródło
16
Co się stanie, jeśli żądany interfejs zostanie skonfigurowany przez DHCP i nie wiem, jaki adres bramy zostanie przypisany?
devmiles.com,
0

Miałem ten sam problem z interfejsem Wi-Fi wlp3s0na Ubuntu 18.04. Wpływało to na moją zdolność do łączenia się z modemem Android i routerem poza domem. Sposobem na rozwiązanie tego problemu było skomentowanie w pliku /etc/dhcpcd.confnastępujących elementów:

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

aby uzyskać następujące

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

Następnie odłączyłem się od bieżącej sieci i ponownie podłączyłem wypróbowaną route -nlub nmclizobaczyć zmiany

Możesz również usunąć te same linie, jeśli masz pewność, że to działa dla Ciebie.

Z powodu tych linii NetworkManager zawsze dodawał domyślną trasę z niewłaściwą bramą, szczególnie gdy nie byłem w mojej sieci domowej. Otrzymywałem komunikat „Destination Host Unreachable”, gdy robiłem ping 8.8.8.8. /etc/network/interfacesZakodowanie na stałe bramy nie było realnym rozwiązaniem, ponieważ często podłączam się do publicznych wifis (więc nigdy nie ten sam router Wi-Fi lub brama) i normalnie DHCP powinien działać „po wyjęciu z pudełka” IMHO.

PS: Nigdy nie edytowałem ręcznie, /etc/dhcpcd.confwięc nie wiem, dlaczego plik /etc/dhcpcd.confzawierał te linie.

ThomasG77
źródło