“RTNETLINK 回答:文件存在” /etc/network/interfaces 不包含 2 个网关,所以出了什么问题?

wol*_*ang 17 networking internet networkmanager

这是我的/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
Run Code Online (Sandbox Code Playgroud)

首先尝试运行 sudo ifup eth0

我收到

RTNETLINK answers: File exists
Failed to bring up eth0.
Run Code Online (Sandbox Code Playgroud)

/etc/network/interfaces只有工作时,我重新启动系统

除此之外,我已经尝试过

sudo /etc/init.d/networking restart

sudo service network-manager restart

sudo service networking restart

但他们都不会提出interfaces文件中的更改

我唯一的选择是sudo ifup eth0,这给出了上述错误。

怎么了?

dto*_*lis 10

编辑您的配置文件以删除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
Run Code Online (Sandbox Code Playgroud)

您收到的消息只是表明接口已经启动,因此您需要先做ifdown再做ifup。但是,如果您通过 ssh 连接,则需要小心 - 您可能会将自己锁定在外面。这是一种方法:

sudo ifdown eth0 && sudo ifup eth0
Run Code Online (Sandbox Code Playgroud)

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

  • 运行 `sudo ifdown eth0` 给出 `ifdown: interface eth0 not configured` 并运行 sudo ifdown eth0 && ifup eth0 给出相同的结果 (3认同)

dig*_*jay 7

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

然后我发现了以下命令:

sudo ip addr flush dev eth0
Run Code Online (Sandbox Code Playgroud)

这解决了问题。

  • 对我来说也是正确的答案。 (2认同)