Linux下检测MTU值:
使用命令:
ping -c 2 -s [数据包内容长度] -M do [目标服务器地址]
将[数据包内容长度]使用1400-1472之间多次检测,就能得出本机至目标服务器之间的[数据包内容长度]最大值,也就是能够通过目标服务器正常访问互联网的[数据包内容长度]最大值。
在使用ping命令后,如果返回成功的话,就是正常的[数据包内容长度],当返回
From XXX.XXX.XXX.XXX icmp_seq=1 Frag needed and DF set (mtu = XXX)
的话,就代表你使用的[数据包内容长度]过大。从过大的[数据包内容长度]逐步减小,直到检测出最大的[数据包内容长度],检测的过程就结束了。
因为数据包头长度为28字节,所以咱们检测出来的[数据包内容长度]还需要加上28,得出的值才是MTU,才能用来设置系统。
Linux下修改MTU值:
以下以查看和修改eth0为例:
查看MTU值
cat /sys/class/net/eth0/mtu
2. 修改MTU值
echo "1460" > /sys/class/net/eth0/mtu
顺便说一句,在/sys/class/net/eth0/目录中还有很多文件,对应了eth0的各个参数,可以手动的修改里面的值达到配置网卡参数的目的。