You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MTR工具如何随机化数据包大小?命令报错求助

MTR负数数据包大小参数配置问题解决

问题描述

根据MTR手册,数据包大小设置选项-s PACKETSIZE/--psize PACKETSIZE可指定探测包大小(单位字节,包含IP和ICMP头);若设为负数,每次迭代会使用不超过该绝对值的随机包大小。但尝试配置负数参数时,始终出现语法错误或参数无效,试过以下命令:

mtr -b -c 5 -u4 --port 80 --psize -111 meet.google.com
mtr -b -c 5 -u4 --psize negative10 meet.google.com
mtr -b -c 5 -u4 --psize=_-10_ meet.google.com
mtr -b -c 5 -u4 --psize=-10 meet.google.com
mtr -b -c 5 -u4 --psize ((-10)) meet.google.com
mtr -b -c 5 -u4 --psize (-10) meet.google.com

结果均返回-bash: syntax error或mtr: invalid argument,请问操作有误之处?该选项是否可用?

解决方法

核心问题:Shell参数解析冲突

当使用--psize -111这类写法时,Shell会把以-开头的-111误认为是新的命令行选项,而非--psize的参数,从而触发语法错误。

正确的参数传递方式

  • 方式一:使用短选项-s直接传递负数
    短选项的参数识别逻辑更简单,不会把紧跟的负数误判为新选项:

    mtr -b -c 5 -u4 --port 80 -s -111 meet.google.com
    
  • 方式二:给长选项的负数参数加引号
    通过引号将负数参数包裹,避免Shell误解析:

    mtr -b -c 5 -u4 --port 80 --psize "-111" meet.google.com
    
  • 方式三:使用等号连接参数(无空格)
    确保负数参数紧跟--psize=,中间不预留空格:

    mtr -b -c 5 -u4 --port 80 --psize=-111 meet.google.com
    

选项可用性说明

该负数随机包大小的功能是有效的,但需注意不同MTR版本可能存在兼容性差异。如果上述方法仍报错,可通过执行mtr --help或man mtr查看当前版本的手册,确认该特性是否被支持。

内容的提问来源于stack exchange,提问作者tpfiler

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 22:57:20