请输入
菜单

如何修改Linux系统(Debian、Ubuntu、CentOS)的MTU值

由于 GRE 隧道报头会占用 24 字节,且GRE隧道上不支持分片/重组,绑定 GRE 对接的 IP 的主机上需要将网卡的 MTU 改成1476。当服务端返回的数据包超过隧道 MTU 值的长度后,数据包被丢弃。
如果需要 kookeey 服务端改mss值,那么只能作用于 tcp 协议,udp 协议将用不了,所以最好的办法还是主机改 MTU。

 

什么是 MTU?
In networking, maximum transmission unit (MTU) is a measurement representing the largest data packet that a network-connected device will accept. Imagine it as being like a height limit for freeway underpasses or tunnels: Cars and trucks that exceed the height limit cannot fit through, just as packets that exceed the MTU of a network cannot pass through that network.

mtu: 最大传输单元,即网络上传输最大的数据包,mtu的单位是字节,大部分的网络设备的mtu值是1400-1500。

  • 如果本机的mtu值大于网关的mtu值,大的数据包就会被拆开来传送,这样会产生数据包的碎片,增加丢包率,降低网络速度
  • 把mtu设置比网关小或者相同,可以减少丢包
  • 设置合适的mtu值,可以减少部分网站打不开,上网速度慢等问题
  • 一般情况,可以把路由器、交换机和服务器的mtu值统一设置

 

如何修改Linux系统的MTU值?

Debian/Ubuntu系统更改mtu的方法:

查看服务器的mtu值:

cat /sys/class/net/eth0/mtu

临时修改mtu值:(重启服务器后失效)

ip link set mtu 1476 dev [你的网卡设备]

永久修改mtu值的方法:

在/etc/netplan/01-netcfg.yaml中,你的网卡设备名下新增一行:mtu: 1500,例如:

network:
  version: 2
  ethernets:
    eth0:
      dhcp4: true
      dhcp4-overrides:
        use-mtu: false
      mtu: 1500
      match:
        macaddress: 99:12:92:f8:f9:99
      set-name: eth0

随后重启网卡(service network restart)或者服务器生效

 

CentOS系统更改MTU的方法
在/etc/sysconfig/network-scripts/ifcfg-[你的网卡设备]中新增一行:MTU=1476,例如

上一个
SaleSmartly配置使用教程
下一个
代码使用kookeey线路实例
最近修改: 2023-06-23