linux下用ping占满上传带宽

使用ping占满上传带宽

买了一个小厂的nat主机,说的峰值带宽很大,但是测速只有1mbps,我就想能不能用ping测试上传带宽的大小,并且跟我的邻居们打赢宽带竞技场。
ping(ICMP协议)的优先级好像比测速的tcp的优先级级高更能占满带宽。

ping命令解释

部分指令在windows下无效

-c:指定发送的数据包数量,例如 -c 4 表示发送 4 个数据包。
-i:指定每次发送数据包的间隔时间(秒),例如 -i 0.5 表示每 0.5 秒发送一次。
-w:设置发送数据包的等待时间上限,超出该时间后自动停止,例如 -w 5 表示等待 5 秒。
-s:指定每个数据包的大小(字节),默认是 56 字节。
-t:设置数据包的生存时间(TTL),指定路由跳数。
-q:安静模式,只显示开始和结束的统计数据,不显示每个数据包的详细信息。
-f:疯狂模式,快速发送数据包,用于测试网络承载能力,需谨慎使用。
-l:指定一次发送的数据包数量,通常用于负载测试。
-v:显示详细输出信息,用于调试。
-4:强制使用 IPv4 协议。
-6:强制使用 IPv6 协议。

参数设定

  1. 设置-s,首先为了占满宽带,我们要把数据包大小调大一些,我这里设置的是32000b,约等于32kb,最大好像是可以设置为64kb,但是更大的包不一定发不出去。
  2. 设置-i,设置间隔时间为0,如果想减少带宽使用可以增加间隔时间,比如0.04,实测间隔是0.04的时候,上传速度约为1.2mbps。
  3. 设置-f,洪水模式(flood),快速发送,为了测试网络性能,因为使用了-f选项,所以需要管理员(root)权限
  4. 网址常用baidu.com,当然也可以使用1.1.1.1等,
    具体命令如下:
ping -s 32000 -i 0 -f baidu.com

后台运行

使用nohup命令,并将日志输出到/var/log/ping_log.log
运行命令

nohup ping -s 32000 -i 0 -f 1.1.1.1 > /var/log/ping_log.log 2>&1 &

命令参数含义:

部分 含义
nohup 忽略挂起信号,使命令在后台持续运行,即使终端关闭也不中断
ping 发送 ICMP 请求
-s 32000 每个 ICMP 包大小为 32000 字节(接近最大值)
-i 0 每 0 秒发送一个请求(即每秒 10 个)
-f 洪水模式(flood),尽可能快地发送请求(需 root 权限)
1.1.1.1 目标 IP(Cloudflare 的公共 DNS)
> /var/log/ping_log.log 将标准输出重定向到日志文件
2>&1 将标准错误也重定向到同一个日志文件
& 在后台运行命令

运行后会给一个PID号码,如:

root@ser6836:~# nohup ping -s 32000 -i 0 -f 1.1.1.1 > /var/log/ping_log.log 2>&1 &
[1] 8584

如果忘记也可以使用命令:

ps aux | grep ping

输出如下

root@ser6836:~# ps aux | grep ping
root       10493  0.0  0.1   8072  2432 pts/0    S    22:04   0:00 ping -s 32000 -i 0 -f 1.1.1.1

其中10493就是任务的pid号码

停止命令:

kill <PID>

查看网速

  1. 使用命令行工具
    查看网速的命令行工具有很多,如:iftop、nload、bmon等。
  2. 使用ssh自带的一些监控图表,如XTerminal等
    image
  3. 使用运维面板如:宝塔、1panel等的监控功能,可以长时间的监控网速。
posted @ 2025-07-09 11:44  023se  阅读(58)  评论(0)    收藏  举报