Это мое /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
и это дает указанную выше ошибку.
что случилось?
Отредактируйте файл конфигурации, чтобы удалить пробелы перед 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.