我花了很长时间来弄清楚这一点,并想与大家分享。
简单任务:为我的服务器上的 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”再次工作。