Linux 获取物理网口/或虚拟网络接口

您所在的位置:网站首页 服务器网口类型 Linux 获取物理网口/或虚拟网络接口

Linux 获取物理网口/或虚拟网络接口

2024-07-15 23:49| 来源: 网络整理| 查看: 265

Linux 的网络配置信息一般包括 物理网口 和 虚拟网口,而网口的名字又不是固定的,可以按照本文的方式获取物理网口的名称,然后结合 ethtool 命令获取网口的更多信息:

方法1: # 这个命令是读取所有网络接口 ls -l /sys/class/net/ # 使用 grep -v 反向过滤,排除到虚拟网络接口,剩下的就是物理接口了 ls -l /sys/class/net/ | grep -v virtual 方法2:

使用如下脚本,排除到包含 mac 地址为 00:00:00:00:00:00 的接口后就是物理接口

#!/bin/bash for i in $(ip -o link show | awk -F': |@' '{print $2}') do mac=$(ethtool -P $i) [[ $mac != *"00:00:00:00:00:00"* ]] && echo "$i" done

特别注意: awk 的分隔参数包含 :空格 和 @ 的原因是,如果你的网络接口是 ipv6的,则使用 -o 参数得到的名称会带个 @if6 小尾巴,例如示例 7: veth7866121@if6: mtu 1500 qdisc noqueue master br-92e7ed9f5c3d state UP mode DEFAULT group default \ link/ether 82:bc:b5:41:14:9c brd ff:ff:ff:ff:ff:ff link-netnsid 0

命令 ethtool 可以获取具体接口的详细信息,例如 ethtool eno1 命令 ethtool eno1 | grep "Link detected" 检测网口的连接状态(yes|no)

(END)



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3