2023年12月6日发(作者:)

Linux设置网卡最大传输单位MTU

1. 设置原因

  提高网络的吞吐率和效率(小的数据报文封装二层信息时,效率不高),同时减少设备CPU的负担(对于小的报文,CPU花费大量的

时间来分片和重组报文)

2. 配置

[root@benjr ]# ifconfig eth2 mtu 9000 #配置

[root@benjr ]# ifconfig eth2 #查看

eth2 Link encap:Ethernet HWaddr 00:1A:64:22:04:83

inet addr:192.8.1.55 Bcast:192.8.1.255 Mask:255.255.255.0

inet6 addr: fe80::21a:64ff:fe22:483/64 Scope:Link

UP BROADCAST RUNNING MULTICAST MTU:9000 Metric:1

RX packets:1440102 errors:0 dropped:0 overruns:0 frame:0

TX packets:269896 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:1000

RX bytes:188856502 (180.1 MiB) TX bytes:18973940 (18.0 MiB)

Interrupt:177

   #ifconfig 是暫時生效的如果要讓 MTU 在開機時就設定好還是需要修改設定檔 。

  CentOS / RHEL / Fedora下的Linux系统,修改 /etc/sysconfig/network-scripts/ifcfg-ethx 保存后重启网卡生效.

[root@benjr ]# vi /etc/sysconfig/network-scripts/ifcfg-eth2

# Please read /usr/share/doc/initscripts-*/

# for the documentation of these parameters.

TYPE=Ethernet

DEVICE=eth2

BOOTPROTO=dhcp

ONBOOT=yes

USERCTL=no

IPV6INIT=no

PEERDNS=yes

MTU=9000

  Debian / Ubuntu 下的 Linux 系统,修改 /etc/network/interfaces 增加值: mtu 9000 ,保存后,重启网络生效,注意这里针对的是手动

添加IP的情况,如果你是自动获取IP,修改 /etc/dhpc3/ 文件,找到 interface-mtu 并删除。

3. 其他

  还有一个比较通用的方法,使用指令 echo "1460" > /sys/class/net/eth0/mtu 设置 mtu ,注意这里需要使用 su 权限;还可以用 cat

/sys/class/net/eth0/mtu 指令查看;如果修改的时候出现提示驱动忙的情况,这时候你可以先用指令 sudo ifconfig eth0 down 把网卡禁止掉,

再修改,修改好后使用指令 sudo ifconfig eth0 up 重新启用网卡。

  /sys/class/net/eth0/ 文件夹里主要是一些网卡的配置,例如其中的 address 就是MAC地址文件,修改这个就可以修改MAC地址了。