我正在尝试将 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
?
您似乎可能已经安装了 netscript-2.4 而不是 ifupdown,或者更糟的是,除了?您显然已经安装了现代的 debian,内核 3.2。我会检查你是否有 ifupdown 并安装它,如果你没有。这应该会导致它删除错误的包。
祝你好运。