最近在折腾 VPS 网络优化的路上,又有了新的心得。尤其是对于长期跑站或者搭建代理服务的站長来说,网络拥堵和流量超标总是两个让人头疼的问题。今天就把手里压箱底的 TCP 调优脚本做个升级分享,再顺便聊聊我魔改的一款流量监控工具——"流量狗",希望能帮大家榨干服务器的每一滴性能。

一、为什么我们需要 TCP 调优?

很多朋友买了高价 VPS,带宽也不小,但在跑大流量业务时总感觉“没跑满”。这在很大程度上是由于 Linux 默认的 TCP 内核参数设置偏保守,主要针对的是广域网的通用稳定性,而不是追求极致吞吐量的场景。

TCP 拥塞控制示意图

TCP 拥塞控制算法示意图, illustrates the flow control mechanism.

通过调优,我们主要解决几个痛点:

  1. 高并发下的连接建立速度:优化 tcp_tw_reusetcp_tw_recycle 等参数,减少 TIME_WAIT 状态占用。
  2. 大文件传输的吞吐量:调整 TCP 窗口大小(tcp_window_scaling)和缓冲区(tcp_rmem/wmem),让数据管道更宽。
  3. 弱网环境下的丢包恢复:开启 BBR 拥塞控制算法(现在已经是标配),并配合精细的参数调整。

二、更新版 TCP 调优脚本实测

这次更新的脚本,我对原有的通用参数做了基于 2026 年主流网络环境的微调。比如针对云厂商普遍升级的 10Gbps 网卡,默认的内存窗口设置可能已经成为了瓶颈。

服务器流量监控面板

直观的流量监控有助于及时发现带宽异常。

脚本的核心改动点:

  • 自动适配:脚本运行时会检测内存大小,动态设置 net.core.rmem_max 等关键参数,避免小内存机器 OOM(内存溢出)。
  • BBR v2 兼容性:如果你内核支持 BBR v2,脚本会优先启用,对特定丢包场景的改善非常明显。
  • 安全回滚:所有修改前的旧参数都会自动备份到 /etc/sysctl.d/99-bak.conf,跑炸了随时能还原。

如何使用:

wget -N --no-check-certificate "你的脚本链接/tcp_opt.sh" && chmod +x tcp_opt.sh && ./tcp_opt.sh
``
执行完成后,建议跑个 `iperf3` 测速,通常在长距离传输中,UDP 和 TCP 的抖动都会有明显下降。

### 三、魔改版“流量狗”上线

搞定了网速,防超限就是下一个头等大事。市面上有很多流量监控工具,比如 vnstat,虽然稳定但实时性较差,且命令行界面对于新手不够直观。

基于此,我基于经典的流量监控逻辑,整合了一个“改版流量狗”。它的特点非常鲜明:

1.  **多维度报警**:不像原版只会在超额时报警,改版支持按天、按周、按月设定阈值,甚至支持“峰值预警”——比如瞬时带宽超过 500Mbps 持续 10 分钟就发微信/Telegram 通知。
2.  **JSON API 输出**:为了方便对接其他的面板,我加了一个轻量级的 Web API,可以用 `curl` 获取实时的流量 JSON 数据,方便自己写 Grafana 仪表盘。
3.  **进程关联**:这是一个实验性功能,尝试记录 `ss` 命令的数据,粗略统计是哪个进程占用的流量最多(虽然不绝对精准,但在排查异常流量时很有用)。

### 四、部署与避坑指南

部署这两个工具都非常简单,一键脚本即可。但在实操过程中,有几个坑大家要注意:

*   **OpenVZ 魔法无效**:如果你用的是廉价的 OpenVZ 虚拟化(现在市面上不多了,但还有),TCP 调优脚本大部分参数是无法生效的,因为受控于宿主内核,建议直接放弃折腾,专注 BBR。
*   **时区问题**:流量统计最怕时区对不上。改版流量狗强制使用系统时区,但在设置每日重置时间时,请务必确认一下 `date` 命令输出的时间是否与你所在的物理位置一致,否则容易搞错“新的一天”是从几点开始算的。
*   **不要忽视 `ulimit`**:TCP 调优往往伴随着连接数的大幅提升,别忘了检查 `nofile` 的最大文件打开数限制,否则并发一上来直接报错 "Too many open files"。

### 写在最后

工欲善其事,必先利其器。这两个工具虽然小巧,但却是维护服务器稳定的利器。脚本我会持续维护,如果大家测试中发现效果不明显或者有冲突的参数,欢迎在评论区反馈,我们一起打磨出最适合当下的最佳实践。

标签: none

AI Skills Smart Station on Nick Launches

评论已关闭