![为什么 debian 忽略了我在 /etc/network/interfaces 中的静态配置?](https://linux22.com/image/625099/%E4%B8%BA%E4%BB%80%E4%B9%88%20debian%20%E5%BF%BD%E7%95%A5%E4%BA%86%E6%88%91%E5%9C%A8%20%2Fetc%2Fnetwork%2Finterfaces%20%E4%B8%AD%E7%9A%84%E9%9D%99%E6%80%81%E9%85%8D%E7%BD%AE%EF%BC%9F.png)
我正在尝试设置 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,如果没有,请安装它。这应该会导致它删除错误的软件包。
祝你好运。