有没有办法从命令行关闭 Linux 机器上的网络接口?所谓关闭,我的意思是按照 Cisco 交换机的“shutdown”命令关闭链路。ip
,并且ifconfig
即使rmmod <driver>
在用于关闭端口时也不要断开链路;即使使用这些实用程序/方法禁用端口,另一端的设备仍然可以看到连接。
从技术上讲,在设备层面上,我相信这是可以做到的,因为当我表演
ip link set em1 down
ip link set em1 up
...然后在“启动”阶段,NIC 会关闭约 3-4 秒(如在连接到该 NIC 的交换机端口上以及端口的状态 LED 上所见)。
我正在寻找一个可以执行该任务的命令行实用程序。我在使用板载 Broadcom nics 的 Dell R610 上安装了 CentOS 7.2。
至于为什么……
当您可以在交换机中弹出接口时,仔细检查网络连接确实非常容易且有用。
“但是有 lldp”。除非没有,例如使用第 1 层交换机。(有关更多信息,请谷歌搜索“Metamako”)。能够切换服务器网络接口可以验证 2000 英里外的布线。
“但您已经可以在交换机端执行此操作了。”是的,这不是很棒吗?如果服务器管理员在服务器端可以使用此功能就好了。
“但是如果你无法连接到主机,那么它就已经挂了。”想想有 8 个活动网络接口的系统。你可以通过板载接口轻松登录系统,并且许多 PCIe 网卡都处于关闭状态。
答案1
不幸的是,Linux 中不存在通用的方法。
在网络世界中,切换端口“Cisco:关闭/不关闭,Juniper禁用/启用”来识别或触发自动协商是很常见的。
在 Linux 中,您必须依赖网卡的单独驱动程序。
答案2
这适用于我的 Intel I219-V (e1000e) 卡。没有链接灯或任何东西,完全死机:
echo 1 > /sys/devices/pci0000:00/0000:00:1f.6/remove
但是当我对 realtek (r8169) 卡执行相同操作时,它仍然有链接指示灯。
这可能是某些卡上你无法控制的东西,或者驱动程序代码中有些东西可以调整(如果你感兴趣的话)。如果我下定决心,那将是我的下一步。