Ubuntu 14.04 LTS 网络管理器覆盖静态网络接口

Ubuntu 14.04 LTS 网络管理器覆盖静态网络接口

我花了很长时间来弄清楚这一点,并想与大家分享。

简单任务:为我的服务器上的 4 个 NIC 中的第二个添加一个静态 IP 地址。

首先,我按照静态 IP 地址分配下的说明进行操作:https://help.ubuntu.com/14.04/serverguide/network-configuration.html

interfaces文件:

$ cat /etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto em1
iface em1 inet dhcp


auto em2
iface em2 inet static
address 172.24.0.9
netmask 255.255.0.0

然后我sudo ifup em2按照说明运行。

起初,它似乎可以工作。ifconfig正确显示了界面,并且我能够 ping 网络上的设备。然而大约一分钟后,分配的静态 IP 地址消失。地址丢失,机器无法访问。无论我多么频繁地打开或关闭接口,这种情况都会反复发生。为什么会发生这种情况?

答案1

问题出在网络管理器上。NM 应该忽略/etc/network/interfaces文件中的显式接口。但是,您似乎需要重新启动服务:

$ sudo service network-manager restart
$
$ nmcli dev status
DEVICE     TYPE              STATE        
p1p2       802-3-ethernet    unavailable  
p1p1       802-3-ethernet    unavailable  
em4        802-3-ethernet    unavailable  
em3        802-3-ethernet    unavailable  
em2        802-3-ethernet    unmanaged    
em1        802-3-ethernet    unmanaged 

现在静态 IP 不会被网络管理器覆盖。第二个接口(或您可能正在使用的任何接口)的“未管理”状态正是我们正在寻找的。

tl;dr:将接口添加到文件后interfaces,重新启动network-manager服务。

答案2

只需删除 /etc/init/networking.conf 中 pre-start 和 post-stop 中的两个“if...fi”块,以便“service networking restart”再次工作。

相关内容