我需要一个静态 IP 地址。我/etc/network/interfaces
这样编辑:
auto lo
iface lo inet loopback
iface eth0 inet static
address 10.255.255.80
netmask 255.255.255.0
network 10.255.255.0
broadcast 10.255.255.255
gateway 10.255.255.1
dns-nameservers 8.8.8.8
当我跑步时ifdown eth0
我得到这个:
ifdown: interface eth0 not configured
我重新启动了整个电脑;当它恢复时,eth0
甚至没有显示出来ifconfig
。我跑:
ifup eth0
...并且界面初始化正确。所以这种解决了我的问题,但我仍然不确定为什么ifdown
抱怨eth0
没有配置以及为什么我必须ifup eth0
在重新启动后手动运行。
答案1
针对您遇到的3点问题进行一下解释:
@steeldriver 解释了启动时缺少什么才能使其正常工作:添加auto eth0
。含义描述在interfaces(5)
,大胆强调我的:
以单词“auto”开头的行用于标识在使用 -a 选项运行 ifup 时要启动的物理接口。 (该选项由系统引导脚本使用。) 物理接口名称应在同一行中跟在单词“auto”之后。可以有多个“auto”节。 ifup 按列出的顺序显示指定的接口。
ifconfig
,它已经过时,应该避免并用ip link show
或替换ip address show
,无论如何,除非添加选项 ,否则不会显示向下界面-a
,因此没有显示eth0
。
ifdown
抱怨记忆中的界面状态如果向上向下。状态与文件中的接口名称一起存储(此处)/var/run/network/ifstate.eth0
(一旦调出)。如果ifdown
没有按预期找到它(向上),它会写它没有配置。
一旦得知这一点,较新版本的 Ubuntu(或其他发行版)很可能interfaces
默认情况下不会使用 ifupdown 等。
更新:正如 @guntbert 指出的那样,Ubuntu 18.04 使用网络计划反而。