无法ifdown eth0(主界面)

无法ifdown eth0(主界面)

我无法ifdown在 Debian 6.0.5 上建立界面:

user@box:/etc/network$ sudo ifdown eth0 && sudo ifup eth0
ifdown: interface eth0 not configured
SIOCADDRT: File exists
Failed to bring up eth0.

user@box:/etc/network$ cat interfaces 
auto lo
iface lo inet loopback

allow-hotplug eth0 
allow-hotplug eth1 

auto eth0
iface eth0 inet static
address 10.0.0.1
netmask 255.255.255.0
gateway 10.0.0.254

auto eth1
iface eth1 inet manual

根据马可的要求:

user@box:/etc/network/$ cat /run/network/ifstate 
lo=lo
eth1=eth1

答案1

检查文件的内容/run/network/ifstateifupifdown使用此文件来记录哪些网络接口可以启动和关闭。因此,ifup当使用其他网络工具来启动界面时,很容易混淆(例如ifconfig)。

男人 ifup

该程序会记录网络接口是打开还是关闭。在特殊情况下,这些记录可能会与接口的真实状态不一致。例如,使用 ifup 启动并随后使用取消配置的接口ifconfig仍将被记录为 up。要解决此问题,您可以使用该--force选项强制ifupifdown运行配置或取消配置命令,无论其认为接口的当前状态如何。

答案2

ifdown是一个高级程序,它可以完成许多您可能不需要的事情。此外,它并非在所有地方都可用。更便携的方式可能适合您:

$ sudo ifconfig eth0 down

如果不能ifup,则可能存在一些配置问题。在这种情况下,手动提出它ifconfig eth0 up可能不是正确的选择。在 Debian 上,ifup它是一个二进制可执行文件,因此您可能必须通过strace它来找出它挂起的位置:

$ sudo strace -e open ifup eth0

这将告诉您ifup在工作时正在打开哪些文件,这可能会提示您发现问题。

在其他系统(例如 RHEL 及其衍生系统)上ifup是 shell 脚本,因此调试起来要容易得多:

# sh -x `which ifup` eth0

运行 shell 脚本会sh -x使其打印运行的每一行,以便您可以跟踪执行情况。

答案3

我以前在 .net 中未正确配置 ethX 时见过这种情况 /etc/network/interfaces。这需要类似的东西:-

auto eth0
   iface eth0 inet dhcp

即使/etc/network/interfaces文件配置不正确,您仍然可以使用以下命令关闭 eth0:

$ sudo ip link set eth0 down

答案4

添加。eth0=eth0/run/network/ifstate这对我有用

相关内容