当前位置: 首页>>技术教程>>正文


在Linux上,如何检测物理电缆是否已连接到网卡插槽

, ,
可以使用各种工具来检测物理电缆承载器状态。但是,最简单的方法是使用基本的本地工具(例如cat要么grep因此避免了任何额外的软件安装需求。让我们开始测试我们的eth0low-level和Linux distro-agnostic方式中用于物理电缆连接的网络接口:


# 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

可以连接网络电缆,但目前尚无法确定。在我们检查物理电缆连接之前,我们需要将其打开:


# ifconfig eth1 up

在此阶段,我们可以再次检查网卡物理电缆连接:


# cat /sys/class/net/eth1/carrier 
0

根据以上输出,我们可以说物理电缆已从网卡的插槽断开。 Let’s let’简要介绍了如何使上述过程自动化以一次检查多个网络接口。以下命令将列出您的Linux系统上所有可用的网络接口:


# for i in $( ls /sys/class/net ); do echo $i; done
eth0
eth1
lo
wlan0

现在,使用bash for loop,我们可以检查是否为所有网络接口同时连接了网络电缆:


# 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命令。安装:


REDHAT/CENTOS/FEDORA/SUSE
# yum install ethtool
DEBIAN/UBUNTU
# apt-get install ethtool

要检查单个网卡的电缆连接,请使用。举个例子,让我们检查一下eth1


#  ethtool eth1 | grep Link\ d
	Link detected: no

或者我们可以再次使用bash for loop一次检查所有网络接口:


# 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
# ifconfig eth0 down
# ethtool eth0 | grep Link\ d
        Link detected: no
# ifconfig eth0 up
# ethtool eth0 | grep Link\ d
        Link detected: yes

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/7995.html,未经允许,请勿转载。