以前,我使用 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/ifstate
行auto eth0
和iface 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/interfaces
ifupdown
包裹。由于
ifdown
对适配器一无所知,我认为可以使用另一种方法来管理网络。我还知道一个被认为是 的替代品的软件包
ifupdown
,netscript
,但由于它使用相同的方法来管理适配器,所以这应该也不是您的情况。- 网络管理器
- 威克德
假设你必须弄清楚哪一个是实例化的,然后从那里开始工作nm
。wicd
通常使用 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
然后您可以以干净的设置重新开始。