我想更改我的 ping 的默认大小,以便能够测试我的链路上的 MTU。
我怎样才能做到这一点?
答案1
要测试链路上的最大 MTU 大小(即测试 ICMP 碎片),您可以ping
使用-s
选项设置数据包大小。
例如,要找到最大 MTU,您可以循环增加数据包大小,直到ping
返回错误代码:
size=1272
while ping -s $size -c1 -M do google.com >&/dev/null; do
((size+=4))
done
echo "Max MTU size: $((size-4+28))"
答案2
这是一个非常简单的解决方案:
平-s 4024192.168.0.3
在哪里-s确定发送的数据包的大小
答案3
这是一个非常简单的解决方案:ping -s 4024 192.168.0.3 其中 -s 确定发送的数据包的大小
由于 iputils 悄悄破坏,上述建议在任何基于 Debian 的现代 Linux 系统上都不再起作用:
https://github.com/iputils/iputils/issues/320
如果 ICMP 回显答复被截断为 MTU 大小(或除您在 ICMP 回显请求数据包中发送的任何内容之外的其他内容),则 ping 将不打印任何内容!
答案4
在 Windows 操作系统上,该-l
参数允许更改 icmp 数据包的大小(默认大小为 32 字节)。根据微软
ping
以下是包含 1450 字节数据的示例:
ping -l 1450 131.107.8.1