为什么 debian 忽略了我在 /etc/network/interfaces 中的静态配置?

为什么 debian 忽略了我在 /etc/network/interfaces 中的静态配置?

我正在尝试设置 Debian VM 以进行静态网络配置。我在 /etc/network/interfaces 中有以下内容:

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
    address x.y.z.73
    netmask 255.255.255.0
    gateway x.y.z.1

然而,当运行 ifup 脚本时,它坚持运行 DHCP 客户端,而我并不想这样。在 shell 调试下运行时,我可以看到一些名称有趣的变量从未被设置,而且我没有看到任何地方读取 /etc/network/interfaces。但是,我看到正在读取 /etc/netscripts/network.conf(以前从未听说过该文件)。

root@host:~# bash -x /sbin/ifup eth0
++ id -un
+ '[' root '!=' root ']'
.. snip ..
+ IF_AUTO=eth0
+ IPV4_DISABLE=NO
+ IPV6_DISABLE=NO
++ uname -r
+ BASE_MODPATH=/lib/modules/3.2.0-4-amd64/kernel
+ MODPATH=/lib/modules/3.2.0-4-amd64/kernel/net
++ cut -d . -f 1,2
++ uname -r
+ KERN_VERSION=3.2
...snip...
+ '[' -f /etc/netscript/network.conf ']'
+ source /etc/netscript/network.conf
+ . /etc/netscript/network.conf
++ VERBOSE=YES
...snip...
++ BACKUP_LEVELS=3
++ IF_AUTO=eth0
...snip...
+ vb echo -n 'Configuring interface:'
+ echo -n 'Configuring interface:'
+ '[' eth0 = all ']'
+ case "$RUNLVL" in
+ eval local 'IF_CHAIN_AUTO="${eth0_IF_CHAIN_AUTO:-}"'
++ local IF_CHAIN_AUTO=
+ if_up eth0
+ local ADDR
+ eval 'IPADDR=${eth0_IPADDR:-}'
++ IPADDR=
+ eval 'MASKLEN=${eth0_MASKLEN:-}'
++ MASKLEN=
+ eval 'BROADCAST=${eth0_BROADCAST:-}'
++ BROADCAST=
+ eval 'PTPADDR=${eth0_PTPADDR:-}'
++ PTPADDR=
+ eval 'IP_EXTRA_ADDRS=${eth0_IP_EXTRA_ADDRS:-}'
++ IP_EXTRA_ADDRS=
+ eval 'MTU=${eth0_MTU:-}'
... snip ....
+ qt type eth0_start
+ type eth0_start
+ qt type eth_start
+ type eth_start
+ eth_start eth0
+ '[' -x /sbin/dhclient ']'
+ qt /sbin/dhclient eth0
+ /sbin/dhclient eth0

为什么这些设置被忽略了?我在配置中犯了一个愚蠢的拼写错误吗?还是我忘记运行一些管理命令了?该interfaces文件是否已被淘汰,取而代之的是该文件network.conf

答案1

您可能安装了 netscript-2.4 而不是 ifupdown,或者更糟的是,除了?您显然安装了现代的 debian,内核是 3.2。我会检查您是否安装了 ifupdown,如果没有,请安装它。这应该会导致它删除错误的软件包。

祝你好运。

相关内容