繁体   English   中英

从 bash-script 获取特定设备的允许 MTU 范围

[英]Obtaining allowed MTU range for specific device from bash-script

如何从 bash-script(不是直接通过 API)获取 Linux 中某个网络设备支持的 MTU 范围?
我尝试使用ifconfigip link但找不到解决方案。

包 iproute2(自 v4.19 起)解析最小/最大 mtu 详细信息,并在用户提供“--details”选项时将其打印到控制台

ip --details link
ip --details link --name=eth0
ip --details addr
ip --details addr show dev eth0

脚本示例

#!/bin/bash

for nic in eth0 eth1 eth2; do
    min_mtu=`ip --details link show $nic | grep 'minmtu'| sed -r 's/^(.*minmtu) ([0-9]+) (.*)$/\2/'`
    max_mtu=`ip --details link show $nic | grep 'maxmtu'| sed -r 's/^(.*maxmtu) ([0-9]+) (.*)$/\2/'`
    echo "$nic - min: $min_mtu, max: $max_mtu"
done

输出:

eth0 - min: 60, max: 9000
eth1 - min: 68, max: 1770
eth2 - min: 68, max: 1770

Debian 10 已经有足够新版本的 iproute2 包 (v4.20) 来显示最小/最大 mtu。 Ubuntu 18.04.3 有一个内核,它已经向用户空间提供了这些信息,但是 iproute2 包不够新鲜(v4.15)来解析内核的数据(并将它们显示给用户)。

如果您有过时的包,您可以自己构建新的 iproute2 工具。

git clone git://git.kernel.org/pub/scm/network/iproute2/iproute2.git
cd iproute2 && ./configure && make && ./ip/ip --details link

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM