如何在 Linux (Redhat/Centos) 中物理关闭网络接口

Mik*_*e S 3 linux redhat linux-networking

有没有办法从命令行关闭 Linux 机器上的网络接口?我所说的关闭是指按照思科交换机的“关闭”命令关闭链路电源。ipifconfig甚至rmmod <driver>当用于关闭端口时也不会断开链接;即使使用这些实用程序/方法禁用端口,另一端的设备仍然可以看到连接。

从技术上讲,在设备级别我确信这是可以完成的,因为当我执行

ip link set em1 down
ip link set em1 up
Run Code Online (Sandbox Code Playgroud)

...然后在“启动”阶段,NIC 会关闭大约 3-4 秒(如在连接到该 NIC 的交换机端口以及端口的状态 LED 上看到的那样)。

我正在寻找的是一个可以执行该任务的命令行实用程序。我在使用板载 Broadcom 网卡的 Dell R610 上安装了 CentOS 7.2。

至于为什么……

当您可以在交换机中弹跳接口时,仔细检查网络连接确实非常简单且有用。

“但是有 lldp”。除非没有,例如第 1 层交换机。(谷歌“Metamako”了解更多信息)。能够切换服务器网络接口可以验证 2000 英里外的布线。

“但你已经可以在交换机端做到这一点了。” 是的,这不是很光荣吗?服务器管理员是否可以在服务器端使用该功能。

“但如果你无法连接到主机,那么它就已经死了。” 考虑一下具有 8 个实时网络接口的系统。您可以通过板载接口轻松登录系统,并且可以关闭许多 PCIe 网卡。

Rya*_*hin 5

这适用于我的 Intel I219-V (e1000e) 卡。没有链接灯或任何东西,完全死机:

echo 1 > /sys/devices/pci0000:00/0000:00:1f.6/remove
Run Code Online (Sandbox Code Playgroud)

但是当我对 Realtek (r8169) 卡执行相同操作时,它仍然有一个链接指示灯。

这可能是您无法在某些卡上控制的东西,或者如果您喜欢这样的事情,驱动程序代码中可能有一些可以调整的东西。如果我真的下定决心的话,这将是我的下一步。