在 Debian 上禁用网络适配器 eth0

在 Debian 上禁用网络适配器 eth0

以前,我使用 ifdown eth0 关闭网络适配器。自从我使用 Ubuntu/Debian 以来,我已经好几年没用过这个了。

我明白了:

$ sudo ifdown eth0
ifdown: interface eth0 not configured

如果我运行 ifconfig,我会得到:

eth0      Link encap:Ethernet  HWaddr xx:xx:xx:xx:xx:xx  
          inet addr:192.168.20.50  Bcast:192.168.21.255  Mask:255.255.254.0
          inet6 addr: fe80::6e3b:e5ff:fe36:2ee/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1205280 errors:0 dropped:502 overruns:0 frame:0
          TX packets:34930 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:165685286 (165.6 MB)  TX bytes:5754120 (5.7 MB)
          Interrupt:20 Memory:f7f00000-f7f20000 

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:9146 errors:0 dropped:0 overruns:0 frame:0
          TX packets:9146 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:734342 (734.3 KB)  TX bytes:734342 (734.3 KB)

我搜索了 Google 以了解如何执行此操作,但找到的所有信息都显示运行 ifdown eth0。如何停止 Debian/Ubuntu 机器上的网络适配器?

答案1

我在 Debian 上遇到了同样的问题。我不知道确切的原因,但是sudo ifconfig eth0 down对我来说它正常工作。

编辑:感谢@kostix 的注释。由于我使用它来暂时关闭接口,因此我没有过多关注这个问题。如果您想永久关闭它,可以使用 ifdown。要使它起作用,您需要将行添加到eth0=eth0并将/run/network/ifstateauto eth0iface eth0 inet dhcp添加到/etc/network/interfaces

答案2

如果ifconfig你的发行版中没有这个命令,则表示它已被该ip命令替换。在这种情况下,解决方案是ip link set eth0 down

答案3

没有明确的答案,因为在 Debian 中管理网络的方法可能有多种。我知道至少有三种:

  • “传统”方法使用和/sbin/ifup,均使用配置文件。这些由/sbin/ifdown/etc/init.d/networking/etc/network/interfacesifupdown包裹。

    由于ifdown对适配器一无所知,我认为可以使用另一种方法来管理网络。

    我还知道一个被认为是 的替代品的软件包ifupdownnetscript,但由于它使用相同的方法来管理适配器,所以这应该也不是您的情况。

  • 网络管理器
  • 威克德

假设你必须弄清楚哪一个是实例化的,然后从那里开始工作nmwicd 通常使用 GUI 工具进行配置(通常通过随 DE 一起启动的小程序)。 nm有一个命令行工具,称为nm-cli。不确定wicd

如果您进行了简单安装并选择了“桌面”任务,那么我相信(虽然不确定)您已经安装了 NetworkManager。

答案4

接口 eth0 未配置

字面意思是

未在 /run/network/ifstate 文件中配置

ifupdown 命令具有滞后现象:一旦你使用 ifup 激活一个接口,它就会被存储起来,/run/network/ifstate表明你已经激活了它。

ifup eth0
cat /run/network/ifstate
eth0=eth0
(+other interfaces)

ifdown eth0
cat /run/network/ifstate
(+other interfaces)

即使操作失败(主要是因为/etc/network/interfaces写入不正确),状态也会被保存。到目前为止,我的主要解决方案是手动编辑/run/network/ifstate以使其按原样运行 eth0,然后将其关闭:

nano /run/network/ifstate
eth0=eth0

ifdown eth0

然后您可以以干净的设置重新开始。

相关内容