如何在Linux上检测物理电缆是否连接到网卡插槽
如果您需要知道物理电缆是否连接到 Linux 系统上的网络端口,您不一定需要在计算机或服务器前面查看。我们可以从 Linux 命令行使用多种方法来查看电缆是否已插入网络插槽。
有几个原因可以解释为什么这会派上用场。首先,它向您显示系统本身是否检测有电缆插入。如果您确实知道电缆已正确插入,但系统仍处于故障状态,那么这可能是一个重要的故障排除步骤。没有检测到它。它对于远程系统也很有帮助,或者如果您懒得查看计算机背面并查看电缆是否已插入。
查看下面的一些示例,其中我们将介绍检查物理网络电缆是否已插入的各种命令。
在本教程中您将学习:
如何使用 Bash 命令和 ethtool 检测物理网线连接
用于在 Linux 上检测已连接网线的各种命令
检测物理电缆是否已连接
可以使用各种工具来检测物理电缆载体状态。然而,完成此任务最简单的方法是使用基本的本机工具,例如 cat
或 grep
,从而避免安装额外的软件。请查看下面的方法以了解具体操作方法。
让我们首先以低级且与 Linux 发行版无关的方式测试物理电缆连接的
eth0
网络接口:# cat /sys/class/net/eth0/carrier 1
上述输出中的数字 1 表示网络电缆已物理连接到网卡插槽。
接下来,我们将测试第二个网络接口
eth1
:# cat /sys/class/net/eth1/carrier cat: /sys/class/net/eth1/carrier: Invalid argument
上述命令的输出很可能意味着 eth1 网络接口处于断电状态。这可以通过以下 linux 命令来确认:
# cat /sys/class/net/eth1/operstate down
网线可以连接,但暂时无法判断。在检查物理电缆连接之前,我们需要设置接口:
# ip link set dev eth1 up
在此阶段我们可以再次检查网卡物理电缆连接:
# cat /sys/class/net/eth1/carrier 0
根据上面的输出,我们可以说物理电缆已从网卡插槽断开。让我们简单地看看如何自动执行上述过程以一次检查多个网络接口。以下命令将列出 Linux 系统上所有可用的网络接口:
# for i in $( ls /sys/class/net ); do echo $i; done eth0 eth1 lo wlan0
使用 bash for 循环,我们现在可以检查所有网络接口是否已连接网络电缆:
# for i in $( ls /sys/class/net ); do echo -n $i: ; cat /sys/class/net/$i/carrier; done eth0:1 eth1:0 lo:1 wlan0:cat: /sys/class/net/wlan0/carrier: Invalid argument
使用 ethtool 测试物理电缆连接
现在,如果您真的想尝试一下,可以使用 ethtool 命令来完成上述任务。以下是在主要 Linux 发行版上安装该软件的方法:
要在 Ubuntu、Debian 和 Linux Mint 上安装 ethtool:
$ sudo apt install ethtool
要在 CentOS、Fedora、AlmaLinux 和 Red Hat 上安装 ethtool:
$ sudo dnf install ethtool
要在 Arch Linux 和 Manjaro 上安装 ethtool:
$ sudo pacman -S ethtool
现在已安装,您可以使用以下一个或多个命令来测试物理电缆的网络连接。
要检查单个网卡的电缆连接,请使用以下命令。作为示例,让我们检查 eth1 接口:
# ethtool eth1 | grep Link\ d Link detected: no
或者我们可以再次使用 bash for 循环来检查所有网络接口一次:
# for i in $( ls /sys/class/net ); do echo -n $i; ethtool $i | grep Link\ d; done eth0 Link detected: yes eth1 Link detected: no lo Link detected: yes wlan0 Link detected: no
上述 ethtool 输出的唯一问题是,如果您的网络接口关闭,它不会检测到已连接的电缆。考虑以下示例:
# ethtool eth0 | grep Link\ d Link detected: yes # ip link set dev eth0 down # ethtool eth0 | grep Link\ d Link detected: no
结束语
在本指南中,我们了解了如何检测物理电缆是否连接到 Linux 上的网卡插槽。这可以方便地检查远程计算机上的连接,或者只是作为故障排除步骤来查看您的系统是否检测到物理电缆。如果您插入了电缆,但系统未检测到它,则可能意味着您缺少网络驱动程序或网卡完全有故障。