问题 :如果能ping通外网域名,但是无法访问,这种情况通常是因为网卡的mtu值过高。那么该如何查看网卡的mtu值以及判断mtu值是否过高呢?
Linux下可以使用ip a 或者 netstat -i查看mtu值
为了确认mtu值是否过高,需要检测网关的mtu值
Windows下检测网关mtu值的命令如下
linux下检测网关mtu值的命令
将上述命令中的gateway替换为网关地址,并不断的调整size的大小,找到最佳的mtu值,即为网关的mtu值。(示例:1500无法通过网关,1400可以通过网关,则说明最佳mtu值在1400和1500之间,可以进一步利用二分查找算法,找到最佳mtu值)
若本机的mtu值较大,则会导致无法访问外网;若本机的mtu较小,却没有完全利用网络性能。因此,设置最合适的本地mtu值即是让本地的mtu等于网关的mtu值。
设置本机的mtu为网关的mtu,windows下利用如下命令:
linux 下的命令为:
将上述命令中的name替换为网卡名称,size替换为最佳mtu值。
若网页能够正常访问,则调整mtu值完成。
#vi /etc/network/interfaces将 MTU 添加在 bond 接口下,所有附属接口一起生效:
应用设置:
#systemctl restart networking.service
#vi //etc/netplan/XX.yaml
将 MTU 添加在 bond 接口下,所有附属接口一起生效:
应用设置:
#netplan apply
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)