"Ответы RTNETLINK: файл существует" /etc/network/interfaces Не содержит 2 шлюза, так что не так?
Это мое /etc/network/interfaces
содержимое файла
Единственный способ, которым это вступает в силу - перезагрузка системы.
Я пытаюсь сделать это вручную. Мои попытки ниже.
auto eth0
iface eth0 inet static
address 192.168.1.57
netmask 255.255.255.0
gateway 192.168.1.1
up ip addr add 192.168.0.57/24 dev eth0 label eth0:1
down ip addr del 192.168.0.57/24 dev eth0 label eth0:1
up ip route add 192.168.0.0/24 via 192.168.0.1 dev eth0:1 metric 20
down ip route del 192.168.0.0/24 via 192.168.0.1 dev eth0:1 metric 20
Сначала попытался запустить sudo ifup eth0
и я получаю
RTNETLINK answers: File exists
Failed to bring up eth0.
/etc/network/interfaces
работает только когда я перезагружаю систему
Кроме этого я пробовал
sudo /etc/init.d/networking restart
sudo service network-manager restart
sudo service networking restart
Но никто из них не внесет изменений в interfaces
файл
Мой единственный вариант был sudo ifup eth0
и это дает вышеуказанную ошибку.
что случилось?
6 ответов
Отредактируйте файл конфигурации, чтобы удалить пробелы перед iface
строфа, чтобы это выглядело так,
auto eth0
iface eth0 inet static
address 192.168.1.57
netmask 255.255.255.0
gateway 192.168.1.1
up ip addr add 192.168.0.57/24 dev eth0 label eth0:1
down ip addr del 192.168.0.57/24 dev eth0 label eth0:1
up ip route add 192.168.0.0/24 via 192.168.0.1 dev eth0:1 metric 20
down ip route del 192.168.0.0/24 via 192.168.0.1 dev eth0:1 metric 20
Полученное сообщение просто указывает на то, что интерфейс уже запущен, поэтому вам нужно ifdown
прежде чем сделать ifup
, Тем не менее, вы должны быть осторожны, если вы подключаетесь через ssh - вы можете заблокировать себя. Это способ сделать это:
sudo ifdown eth0 && sudo ifup eth0
Обратите внимание, как эти две команды выполняются в одной строке. И просто предосторожность, убедитесь, что вы можете получить доступ к консоли сервера или перезагрузить сервер, если что-то пойдет не так.
Я столкнулся с этой проблемой, и ни одно из приведенных выше решений не помогло мне. Я не мог изменить
/run/network/ifstate
потому что он был немедленно сброшен до прежнего состояния. Также
sudo ifdown eth0 && sudo ifup eth0
не сработало.
Затем я обнаружил следующую команду:
sudo ip addr flush dev eth0
который решил проблему.
Попробуйте найти /run/network/ifstate и измените его, добавив eth(n)=eth(0), если вы не видите там нужного eth.
Пример:
$ cat /run/network/ifstate
eth0=eth0
lo=lo
eth3=eth3
eth1=eth1
После этого используйте команду sudo ifdown eth(n), а затем sudo ifup eth(n).
Любому другому, кто оказался здесь, пришлось остановить все интерфейсы и мосты, а затем выгрузить модули, прежде чем ошибка RTNETLINK исчезнет.
ifconfig eth0 down
ifconfig br0 down
rmmod e1000e # or whatever module your nic uses
modprobe e1000e
service networking start
или просто перезагрузиться.
Я только что потратил день на эту проблему с моим пи. Я ничего не менял, только физически передвинул коробку. У моего пи есть подключение к Wi-Fi через ключ Wi-Fi Realtek RTL8188CUS. Да, я уже исправил проблемы с выпадением некоторых параметров модуля ядра, в основном "options 8192cu rtw_power_mgnt=0 rtw_enusbss=1 rtw_ips_mode=1" в файле /etc/modprobe.d/8192cu.conf Но pi все еще иногда выпадал. Теперь я переехал, кажется, не могу подключиться к статическому IP 192.168.1.60. Так в чем была проблема? Для меня "файл RTNETLINK существует" - это проблема, которую я когда-то задавал в моем беспроводном маршрутизаторе. Я поместил в маршрутизатор запись DNS для 192.168.1.60, но по ошибке с низким значением TTL. Вместо TTL=1200 у меня было TTL=12. Я удалил плохую запись в маршрутизаторе и WIFI, затем подключился после перезагрузки.Поэтому, если вы играете со статическими маршрутами с Pi и маршрутизатором, будьте осторожны, возможно, вы установили что-то плохое в маршрутизаторе. Это не всегда ошибка сети PI.
поправьте меня, если я ошибаюсь...
но если вы настраиваете конфиг для ручного подключения, то зачем вы используете:
auto eth0
?
авто = автоматический , а не ручной.
просто удалите строку auto в файле интерфейсов, а затем добавьте:
pre-up /sbin/ip link set eth0 up
post-down /sbin/ip link set eth0 down
и подпишите на своем устройстве eth0 , и если у вас их несколько, добавьте по 2 строки для каждого устройства .
ТАКЖЕ
вы не можете дублировать шлюз
поэтому указывайте шлюз только один раз
ТАКЖЕ
вы не можете иметь смешанную конфигурацию на одном устройстве
поэтому, если вы настраиваете свой ipv4 вручную , ваш ipv6 для того же устройства также должен быть настроен вручную .
вот мой файл интерфейсов в качестве примера:
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
source /etc/network/interfaces.d/*
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
iface enp3s1f0 inet static
address 192.168.0.100
netmask 255.255.255.0
gateway 192.168.0.1
dns-nameservers 1.1.1.1 1.0.0.1
iface enp3s1f1 inet static
address 192.168.0.101
netmask 255.255.255.0
dns-nameservers 1.1.1.1 1.0.0.1
iface enp3s1f1 inet6 static
address 2600:6000:7a00:ab:123:1234:1234:abc
netmask 64
dns-nameservers 2606:4700:4700::1111 2606:4700:4700::1001
iface enp3s1f0 inet6 static
address 2600:6000:7a00:ab:123:1234:1234:abd
netmask 64
dns-nameservers 2606:4700:4700::1111 2606:4700:4700::1001
pre-up /sbin/ip link set enp3s1f0 up
pre-up /sbin/ip link set enp3s1f1 up
post-down /sbin/ip link set enp3s1f0 down
post-down /sbin/ip link set enp3s1f1 down