
开始使用
bash <(curl -fsSL https://raw.githubusercontent.com/Kylin010/tcpfit/main/tcpfit.sh)
跑完出菜单,选 1 全自动。只问三个问题:
- 带宽多少 —— 不想扫拐点就填
0,已知限速值输入m直接指定 - 测速对端 —— 回车用免费公共节点,或填自己另一台机器的 IP
- 机器用途 —— 代理 / 大文件传输
装好之后敲 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
资源来源于网络,仅供个人测试研究学习,如商用请自行联系版权方获得授权!本文如有侵权可与我们联系删除!