运行ifup时解决“ RTNETLINK答案:文件存在”


43

当我有了新的Wi-Fi加密狗时,我遇到了这个问题,并且看到一些人也遇到了同样的问题。基本上,当我配置了一个接口并想要交换到另一个接口时,它会抛出此错误:

RTNETLINK答案:文件存在
无法调出eth0

或类似的东西。

/etc/network/interfaces 文件:

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
    address 192.168.1.2
    netmask 255.255.255.0
    gateway 192.168.1.1

iface wlan0 inet static
    address 192.168.1.3
    netmask 255.255.255.0
    gateway 192.168.1.1

1
Linux上不能有多个默认网关。特别是在两个不同的接口上不能有相同的默认网关。并且您不能在两个不同的接口上具有相同的网络。
天花板

@ceving在同一网络中具有两个接口没有问题。如果这两个接口具有相同的网关,也没有问题。路由表是严格解析的,您可以想象条目为destination IP -> interface。因此,它将通过首先在路由表中解析的接口将其发送到网关。
乔治

如果要处理IPV6,则始终在地址上添加网络长度:xxxx:xxxx:... :: 1/64
fcm

Answers:


46

如果@ theoB610提供的解决方案仍然无法使用,则您可能必须wlan0ifup和之前冲洗设备ifdown

sudo ip addr flush dev wlan0

这不是Raspberry Pi特有的问题,在这里的有线网络中也发生了类似的问题,并已解决(我从那里派出了我的Pi问题的解决方案)。


1
我在HP ProLiant服务器(!)上遇到此问题,并且此问题得以解决。
sudo

1
很好的解决方案。基本问题是一些先前的配置(自动或手动配置)(例如从cmd行运行ifconfig)仍然存在。flush命令解决了这种情况。
kmarsh

1
/etc/sysconfig/network-scripts/ifcfg-*由于NetworkManager不喜欢某些设置并创建替换文件而导致格式错误的文件导致我出现此问题时,会创建多个额外文件并导致错误RTNETLINK answers: File exists。删除损坏的文件(未显示为配置文件的文件)似乎可以解决。
威尔夫

2
切勿将其复制粘贴到生产服务器上。我用eth0替换了wlan0,该接口立即关闭,不想返回。
Fusseldieb

1
有趣的是,没有人提供最简单且通常最安全的方法:reboot。例如,在使用刷新接口时,我遇到了麻烦-我的接口/ IP掉了,我只能直接在控制台上连接...因此,重启始终是解决问题的方法。
演讲

24

我认为可以在运行ifup时解决“ RTNETLINK答案:文件存在”中找到解决方案(Lennart的网络日志);它肯定为我解决了。

基本上,您只能在interfaces文件中分配一个网关。删除确定网关的所有重复行,使其仅出现一次。

修改的 / etc / network / interfaces文件:

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
    address 192.168.1.2
    netmask 255.255.255.0
    gateway 192.168.1.1

iface wlan0 inet static
    address 192.168.1.3
    netmask 255.255.255.0
    #gateway 192.168.1.1  <= Either comment or remove this line

感谢Lennart解决此问题!


通过Google偶然发现了这个答案。这就是在Hyper-V上的Ubuntu VM上为我工作的原因
Abhijit

8

我解决了:

sudo ifup --ignore-errors wlan0

在此命令之后,ifdown和ifup开始正常工作。


在“服务网络重启”失败后,此功能很有用,谢谢。:)
Adambean '18 -4-20

1

脚步:

1入住> ip route(如果IP路由缺省比你的所需接口其他然后,按照二维和第三步骤)

2 sudo ip route del default(删除该默认界面)

3 sudo ip route add default via ip_address dev interface_name(添加所需的界面,如下所示)


0

在我的情况下,我还有另一个连接正在运行-用ifdown eth0关闭该接口后,我感兴趣的接口(wlan0)干净地出现了。

我不建议使用--ignore-errors选项


0

我在弄混VMWare vCenter时偶然发现了这一点。如果您位于同一条船上,则在制作VM的模板/快照之前,应先与软件包管理器一起安装VMWare Tools,perl和net-tools。


-1

强制解除/配置

ifdown --force --verbose ethX && ifup --force --verbose ethX
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.