如何通过脚本为所有网络适配器配置 MTU?

如何通过脚本为所有网络适配器配置 MTU?

注意:这适用于 RHEL/centOS。

目前我配置 MTU 的方法是通过 GUI 使用system-config-networkMTU 并将其设置为 4096。我想要一个非交互式脚本来代替。

如何通过脚本为所有网络适配器配置 MTU?

更新:

使用更改特定网络适配器的 MTUsystem-config-network实际上会导致对适配器的配置进行持久更改。我还需要脚本来进行持久的更改。

答案1

您无法通过一个命令对所有设备进行全局设置。您可以检查可用设备并单独设置它们。

您可以使用ip工具来自ip路由包裹;它的语法比如果配置工具。要设置的示例命令行

ip link set mtu 4096 dev eth0

您可以通过以下方式查找可用设备

ip link list

并检查个别的

ip link show dev eth0

这应该足以让您开始。

答案2

以下 sed 脚本首先注释掉任何现有的 MTU 设置,然后附加新的 MTU 设置 4096 作为每个 NIC 的 cfg 文件的最后一行。

sed -i -e 's/^MTU=/#&/' -e '$aMTU=4096' /etc/sysconfig/network-scripts/ifcfg-eth*

这会对配置文件进行持久更改,但不会激活更改。

您需要运行service network restart才能激活更改...或者,如果您只想更改 MTU 而无需重新启动网络服务,则可以执行以下操作:

awk -F: '/eth/ {print $1}' /proc/net/dev | xargs -r -i{} ifconfig {} mtu 4096

或使用ip而不是ifconfig,如其布鲁斯的回答所示:

ip link list | awk -F: '/eth[0-9]/ {print $2}' | xargs -r -n 1 ip link set mtu 4096 dev

相关内容