Tcpfit调优脚本-动态TCP调优-优化线路机器通用一键开源脚本

Tcpfit调优脚本-动态TCP调优-优化线路机器通用一键开源脚本

开始使用

bash <(curl -fsSL https://raw.githubusercontent.com/Kylin010/tcpfit/main/tcpfit.sh)

跑完出菜单,选 1 全自动。只问三个问题:

  1. 带宽多少 —— 不想扫拐点就填 0,已知限速值输入 m 直接指定
  2. 测速对端 —— 回车用免费公共节点,或填自己另一台机器的 IP
  3. 机器用途 —— 代理 / 大文件传输

装好之后敲 tcpfit 进菜单。

免费 iperf3 节点

脚本自带 18 个节点,会并发 ping 一圈自动选最近可用的,不用你操心:

地区 城市 提供方
亚太 香港 Leaseweb
新加坡 Leaseweb / OVH
东京 Leaseweb
悉尼 Leaseweb
欧洲 法兰克福 Leaseweb
阿姆斯特丹 Leaseweb / Clouvider
伦敦 Leaseweb / Clouvider
北美 洛杉矶 Leaseweb
旧金山 Leaseweb
西雅图 Leaseweb
达拉斯 Leaseweb
芝加哥 Leaseweb
纽约 Leaseweb
迈阿密 Leaseweb
蒙特利尔 Leaseweb

测的是你的端口能发多快,所以对端越近越准。 有自己的另一台机器就更好,那边跑 iperf3 -s,把 IP 填进去就行。


原理

一、基础调优

按 带宽 × RTT 算 BDP,缓冲区给 2 倍 BDP,上限跟内存挂钩(不超过 TCP 全局预算的 1/8)。

再加 BBR + fq、起步优化(slow_start_after_idle=0、initcwnd 32)、队列和连接参数,共 32 项。

二、限速器拐点(iperf3)

先不限速跑一次:

  • 丢包低 → 你的口上没有限速器,不整形
  • 丢包高 → 有限速器,从实测吞吐往上扫找拐点

找到拐点后退一点安全余量,用 HTB 聚合限速 + fq 叶子 pacing 应用。

为什么限速反而更快(另一台 500M 机器实测):

不限速 吞吐 481 Mbps 10 秒重传 61,266 次 
限到 530 吞吐 499 Mbps 10 秒重传 5 次
限速器看的是瞬时速率。不加 pacing 的 TCP 是突发式发送,平均没超也会被打穿。
加上 fq 的逐包 pacing,就能贴着真实上限跑而几乎不丢包。

三、回滚

tcpfit rollback # 完整回滚 
tcpfit shape --off # 只去掉整形,保留基础调优

首次改动前自动存快照,记录全部 33 项参数原始值。

所有改动位置:

/etc/sysctl.d/99-tcpfit.conf
/etc/systemd/system/tcpfit-qdisc.service
/usr/local/sbin/tcpfit-qdisc.sh
/etc/networkd-dispatcher/routable.d/50-tcpfit-initcwnd
/etc/modules-load.d/tcpfit-bbr.conf
/var/lib/tcpfit/

流量和时间

拐点扫描要真跑流量:

带宽 有限速器 没有限速器
300M 3.5 GB / 3 分钟 0.4 GB / 1 分钟
500M 8.8 GB / 4 分钟 0.7 GB / 1 分钟
1000M 22 GB / 4.5 分钟 1.5 GB / 1 分钟

先只测一档判断有没有限速器,没有就到此为止。超过 2500 Mbit 速率会提醒.

只要基础调优:菜单选 2,1 分钟,几乎不耗流量。


调不了什么

瓶颈在国际链路而不是你的端口时,调服务器没用。典型表现是不限速跑也不丢包,但到国内就是上不去 —— 这种情况脚本会报「未检测到限速器」,基础调优仍然生效,但整形那部分没有收益。


源码 https://github.com/Kylin010/tcpfit (MIT)

如若转载,请注明来源出处:https://www.28286.cn/website/3129.html

资源来源于网络,仅供个人测试研究学习,如商用请自行联系版权方获得授权!本文如有侵权可与我们联系删除!
赞 (0)