主要修复
测速偶发偏低会把整形值压到实际带宽的三分之一
一台 40 Mbps 的香港机器跑向导,近端 iperf3 三次里有一次掉到 13 Mbps。旧版本直接采信这一次读数,扫描区间被整个钉死在 25 以下,最终持久整形到 12 Mbit,国际接收只剩约 10 Mbps。
现在:不限速单流结果低于自动探测带宽的 70% 时,会在同一个对端追加两次测试,三次取送达量最高的那一组。取的是整组结果 —— 发送量、接收量、重传、丢包必须来自同一次测试,不会互相串。
三次都低也不会中断、不会换对端,继续按原有逻辑找拐点。首轮就达到 70% 的机器不增加任何运行时间。
对照(标称 40 Mbps,单流一次读到 13.0 / 34.5% 丢包,真实水平 37.4):
旧版本 采信 13.0 -> 扫描 12..25 档 -> 没找到可用拐点
本版本 补测 37.4 / 37.0 -> 取 37.4 -> 丢包 0.0000%
-> 判定无限速器, 一档都没扫, 不下整形
一键调优跑完不再自动回主菜单
调优要跑十几分钟,结果页面是唯一要看的东西。之前跑完停在「按任意键返回」,回菜单会清屏,而清屏指令连滚动回滚缓冲一起清掉 —— 往上翻也找不回结果。
现在一键调优跑完直接退出,结果留在屏幕上。要继续操作重新运行 tcpfit 即可。
「按任意键返回」不再被误触发
调优期间随手按的键会留在终端缓冲里,跑完的瞬间就把提示符吃掉,结果一眼没看见就回了菜单。现在会先清掉这些残留按键,只有真正按键才返回。
退出时也会一并清掉 —— 否则这些残留会被上层 shell 当成命令执行。
更新
tcpfit update
或在菜单中选择 8。更新后重新运行一次 tcpfit。
首次安装
bash <(curl -fsSL https://raw.githubusercontent.com/Kylin010/tcpfit/main/tcpfit.sh)