“ RTNETLINK答案:文件存在” / etc / network / interfaces不包含2个网关,那怎么了?


14

这是我的/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,并且给出了以上错误。

怎么了?

Answers:


8

编辑您的配置文件以删除节前的空格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

注意,这两个命令是如何在同一行上执行的。只是预防措施,请确保您可以访问服务器控制台或在出现问题时重新引导服务器。


3
运行sudo ifdown eth0给出ifdown: interface eth0 not configured和运行sudo ifdown eth0 && ifup eth0给出相同的结果
Wolfgang

1
@wolfgang,请尝试iface/etc/network/interfaces文件中的节之前删除空格,然后ifdown/ifup再次执行。
dtoubelis,2015年

这工作了!没想到之前的空间iface会带来如此大的影响。您能否将其编辑为答案,以便对某人有所帮助?并且必须有一个sudo之前ifup-> sudo ifdown eth0 && sudo ifup eth0否则我会遇到一些permission denied错误
wolfgang

1

尝试查找/ run / network / ifstate,并在其中看不到所需的eth时,通过添加eth(n)= eth(0)对其进行修改。

例如:

$ cat /run/network/ifstate 
eth0=eth0
lo=lo
eth3=eth3
eth1=eth1

之后,使用命令sudo ifdown eth(n),然后使用sudo ifup eth(n)。


1

对于到此为止的其他所有人,我必须停止所有接口和网桥,然后卸载模块,然后再消除RTNETLINK错误。

ifconfig eth0 down
ifconfig br0 down
rmmod e1000e              # or whatever module your nic uses
modprobe e1000e
service networking start

或只是重新启动。


0

我只是遇到了这个问题,上面的解决方案都不适合我。我无法更改,/run/network/ifstate因为它立即被重置为以前的状态。也sudo ifdown eth0 && sudo ifup eth0没有用。

然后,我发现了以下命令:

sudo ip addr flush dev eth0

解决了问题。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.