注意:这适用于 RHEL/centOS。
目前我配置 MTU 的方法是通过 GUI 使用system-config-network
MTU 并将其设置为 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