Я использую 3 интерфейса ethernet в Ubuntu, но при перезагрузке шлюз по умолчанию меняется на другой интерфейс. Каждый раз, когда я загружаюсь, мне приходится менять шлюз по умолчанию обратно на eth1, удаляя шлюз по умолчанию и добавляя его обратно с помощью eth1. Как я могу устранить эту проблему?
Чтобы временно изменить маршрут по умолчанию, вы можете использовать ip-команда подобный этому:
$ sudo ip route change default via 192.168.1.1 dev eth0
Если у вас есть статическая конфигурация ip-адреса в /etc/network/interfaces
вы можете добавить инструкцию gateway, чтобы сделать это постоянным.
iface eth0 inet static gateway 192.168.1.1 […]
Используя DHCP для настройки сети, вы должны вместо этого настроить другой файл. Добавьте оператор замены в /etc/dhcp/dhclient.conf
.
supersede routers 192.168.1.1;
Откройте файл /etc/network/interfaces
найдите нужный интерфейс и добавьте следующее:
gateway 192.x.x.x
Перезагрузите сеть:
sudo /etc/init.d/networking restart
У меня была такая же проблема с моим интерфейсом Wi-Fi wlp3s0
на Ubuntu 18.04. Это повлияло на мою способность подключаться к Android tethering и маршрутизатору вне дома. Способ решить проблему для меня состоял в том, чтобы прокомментировать в файле /etc/dhcpcd.conf
следующий:
interface wlp3s0 static ip_address=192.168.0.16/24 static routers=192.168.0.1 static domain_name_servers=127.0.0.1
чтобы получить следующее
#interface wlp3s0# static ip_address=192.168.0.16/24# static routers=192.168.0.1# static domain_name_servers=127.0.0.1
Затем я отключился от своей текущей сети и снова подключился к попытке route -n
или nmcli
чтобы увидеть изменения
Вы также можете удалить те же строки, когда будете уверены, что это работает для вас.
Из-за этих строк NetworkManager всегда добавлял маршрут по умолчанию с неправильным шлюзом, особенно когда я не был в своей домашней сети.Я получал сообщение "Хост назначения недоступен", когда я выполнял ping 8.8.8.8
. Жесткое кодирование шлюза в /etc/network/interfaces
это не было жизнеспособным решением, поскольку я часто подключаюсь к общедоступным Wi-Fi (поэтому никогда не использую один и тот же Wi-Fi-маршрутизатор или шлюз), и обычно DHCP должен работать "из коробки", ИМХО.
PS: Я никогда не редактировал вручную /etc/dhcpcd.conf
так что я не знаю, почему файл /etc/dhcpcd.conf
действительно содержал эти строки.
“Шлюз” не равен “маршруту”. Шлюз специфичен для интерфейса, где маршрут указывает, какой интерфейс следует использовать.
Вы настроили его вручную, используя файл “/etc/network/interfaces”, или с помощью программного обеспечения, такого как Network Manager или wicd?
Шлюз обычно представляет собой интерфейс на удаленном устройстве, на который локальный узел полагается при принятии решений о маршрутизации. Сам оператор маршрута может ссылаться на локальный интерфейс или нет, но пункт назначения маршрутизации должен быть обнаружен с помощью рекурсивного поиска, подключенного интерфейса или маршрута по умолчанию. Маршрут по умолчанию или шлюз по умолчанию - это “шлюз последней инстанции”, который будет использоваться в отсутствие более конкретного доступного маршрута.
Можете ли вы предоставить свою таблицу маршрутизации и список интерфейсов, а также любую другую соответствующую конфигурацию сети, которую вы выполнили?