FRP跑不满宽带
1300 字
7 分钟
FRP跑不满宽带

第1步:初始测速 – 确认带宽天花板
- 操作:在云服务器上执行
speedtest-cli - 结果:
Download: 18.90 Mbit/s, Upload: 15.80 Mbit/s - 结论:云服务器带宽就是 20M 档位,物理下载上限约 2.36 MB/s。这是后续所有优化的绝对天花板。
第2步:本地宽带测速 – 排除本地上传瓶颈
- 操作:在本地电脑执行
speedtest-cli - 结果:
Download: 59.44 Mbit/s, Upload: 42.56 Mbit/s, 延迟 322.23 ms(连接到菲律宾测速节点) - 结论:本地上传远高于服务器下载,因此瓶颈不在本地上行;但延迟极高(322ms),怀疑本地到服务器线路可能绕路。
第3步:澄清服务器位置,排除测速节点误导
- 讨论:指出服务器实际在香港,测速节点在菲律宾,所以延迟 322ms 不代表真实路径。
- 行动:建议用
ping或tcping测试真实延迟,但ping不通(服务器禁ICMP)。
第4步:用 nc 测试真实延迟
- 操作:在本地执行
time nc -zv -w2 38.244.14.16 22 - 结果:
real 0m0.175s→ 175ms - 结论:大陆到香港并非直连,延迟高达 175ms,属于绕路(大概率经美日)。高延迟会严重影响 TCP 效率,必须启用 BBR。
第5步:开启 BBR 加速(服务器端)
- 操作:在云服务器依次执行:
Terminal window echo "net.core.default_qdisc=fq" >> /etc/sysctl.confecho "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.confsysctl -plsmod | grep bbr - 结果:
tcp_bbr出现,BBR 已生效。 - 作用:提升高延迟下 TCP 吞吐量,后续所有速度改善的基础。
第6步:第一次下载测试 – 发现速度极低
- 操作:本地
wget下载云服务器 5244 端口的文件(实际是 Alist 挂载的夸克网盘资源) - 速度:仅 182 KB/s (≈1.45 Mbps)
- 疑惑:按理说 BBR 生效后应明显提速,但实际没变化。
第7步:识别 Alist 为本地服务,分析环形路径
- 信息澄清:Alist 运行在树莓派(本地),通过 FRP 穿透到云服务器公网。
- 数据流向:本地 wget → 云服务器(FRP服务端) → FRP隧道返回 → 树莓派(Alist) → 夸克网盘 → 原路返回。
- 结论:速度受限于“夸克网盘限速”和“FRP隧道效率”双重因素。但用户有夸克会员且直连树莓派能跑满,所以排除夸克限速,问题锁定在 FRP 隧道。
第8步:黄金诊断 – 用 iperf3 剥离 FRP 裸测
- 服务器端:
iperf3 -s(云服务器) - 客户端(本地):
iperf3 -c 38.244.14.16 -t 30 - 结果:带宽 7.89 Mbits/sec (≈0.99 MB/s),峰值 13.1 Mbits/sec
- 结论:底层 TCP 能跑 8~13 Mbps,但 FRP 只用了不到 1.5 Mbps,说明 FRP 配置不当,而非网络或限速问题。
第9步:针对性优化 FRP 配置(树莓派客户端)
- 推测问题:树莓派 CPU 弱,加密/压缩耗能;或缓冲区太小,高延迟下效率低。
- 操作:在树莓派的
frpc.toml的[transport]中添加:同时建议关闭加密压缩(tcpMux = truepoolCount = 10bufferSize = 2097152useEncryption = false,useCompression = false,若存在)。 - 结果:重启 FRP 服务后,服务启动失败(状态
failed)。
第10步:排查配置错误 – 手动运行查看报错
- 操作:在树莓派进入 FRP 目录,手动执行
./frpc -c frpc.toml - 报错:
json: unknown field "bufferSize" - 原因:FRP v0.70.1 的 toml 配置中,
bufferSize不是[transport]下的有效字段,应放在代理内部(或不支持)。 - 修正:移除
bufferSize,只保留tcpMux和poolCount。 - 最终配置:
[transport]下保留tcpMux = true poolCount = 10。
第11步:重新启动并测试速度
- 操作:修改后手动启动成功,再用 systemctl 启动服务。
- 再次下载同一个文件:
Terminal window wget http://38.244.14.16:5244/...(同上) - 结果:速度 2.28 MB/s (≈18.24 Mbps)
- 对比:达到云服务器带宽上限(18.90 Mbps)的 96.5%。
- 结论:问题彻底解决,FRP 隧道已跑满。
✅ 最终结论
导致速度慢的唯一真凶是 frpc.toml 中错误地放置了 bufferSize 参数,导致 FRP 加载配置失败或回退到默认劣化参数,严重影响了传输效率。移除该无效参数后,配合 tcpMux = true poolCount = 10 和 BBR 加速,内网穿透速度瞬间从 1.45 Mbps 飙升到 18.24 Mbps。
🧰 所有生效的关键措施
- 云服务器开启 BBR(提升高延迟 TCP 效率)
- FRP 客户端启用
tcpMux = true poolCount = 10(多路复用,提高单连接利用率) - 清理无效配置项(
bufferSize错误放置导致的性能退化) - 确认 FRP 服务正常启动(通过手动启动排查错误)
📌 最终验证
iperf3裸跑 7.89 Mbps → 穿透实际 18.24 Mbps(超过裸跑是因为iperf3测试受 Ctrl+C 中断影响,实际峰值更高,且 FRP 复用后效率提升)- 云服务器测速 18.90 Mbps → 穿透速度 18.24 Mbps → 跑满带宽。
至此,问题已完美解决。任何单独忽略上述某一步,都可能无法定位到最终的配置错误。
【注】clash影响网速的问题解决:
在clash配置文件中开启多路复用proxy-groups: - name: Proxies type: select # 添加smux 配置 smux: enabled: true protocol: h2mux max-streams: 32 proxies: - 🇭🇰 Hong Kong | 01 - 🇭🇰 Hong Kong | 02 - 🇭🇰 Hong Kong | 03 - 🇭🇰 Hong Kong | 04文章分享
如果这篇文章对你有帮助,欢迎分享给更多人!
相关文章智能推荐
1
linux自启动服务
linux配置 Ubuntu systemd 服务自启动,核心是创建一个 `.service` 文件,并使用 `systemctl` 命令进行管理。
2
Ubuntu 下使用 Easy Effects 优化耳机听感
实用工具记录 Ubuntu 下使用 Easy Effects 调整立体声宽度、军鼓亮度,以及贝斯和大鼓低频的过程。
3
Ubuntu 下使用 nvidia-smi 管理显卡功耗
实用工具在 Ubuntu 上使用 nvidia-smi 查看显卡功耗范围,并通过 nvidia-powerd 设置功耗上限。
4
Ubuntu 下使用网易云音乐:ncm-cli 入门
实用工具使用 ncm-cli 在 Ubuntu 终端中搜索、播放和管理网易云音乐
5
200G 流量仍然不够用怎么办?——五元月租校园网的分流方案
实用工具利用 scrcpy 和两台安卓设备,将校园网与移动数据分工使用,缓解移动流量不足的问题。
随机文章随机推荐














