linuxvps 运维技巧,linuxvps 流量限速配置教程

Linux VPS流量限速底层依靠内核自带tc(Traffic Control)命令。这个工具功能强大,但语法繁琐,初次阅读文档很容易劝退。好在存在封装工具,不用记忆大量参数就可以完成带宽限制。

wondershaper是新手最容易上手的选择。本质是shell脚本,把tc原生命令封装成直观参数。Debian和Ubuntu系统执行sudo apt install wondershaper -y安装,CentOS系列执行yum install wondershaper。使用方式简单:wondershaper -a eth0 -d 10240 -u 5120,代表eth0网卡下载限制10Mbps,上传限制5Mbps,单位Kbps。想要模拟低速网络环境,数值调整成1024和512。清除限速规则执行wondershaper -c -a eth0,查看当前规则添加-s参数。

linuxvps 运维技巧,linuxvps 流量限速配置教程

wondershaper底层逻辑比表面看到的更细致。它新建HTB队列规则,流量划分三个优先级:ACK、DNS、SSH这类交互式小包分配高优先级,普通网页流量中等优先级,大文件传输最低优先级。开启限速之后SSH会话不会卡顿,对比直接手写tc配置省心很多。安装完成执行tc qdisc show dev eth0,查看创建规则,确认是否生效。

使用wondershaper有一点必须留意,服务器重启之后限速规则失效。想要开机自动启用,新建systemd服务。在/etc/systemd/system/目录创建wondershaper.service,ExecStart填写限速命令,ExecStop填写清除规则命令,执行systemctl enable设置开机自启。magnific0维护的GitHub仓库自带配置模板与service文件,源码安装最新版本可以直接套用模板,修改网卡名称和上下行带宽数值就能使用。

如果只限制单个程序带宽,不限制整块网卡,trickle更加合适。属于应用层限速工具,不需要root权限,普通用户就能对启动程序施加限制。示例命令trickle -d 300 -u 100 firefox,限制firefox进程下载速度最高300KB/s,上传最高100KB/s。经常用来管控wget、scp这类传输工具,执行备份任务时压低带宽占用,不影响服务器其他服务响应。trickle存在局限,UDP流量和静态编译程序不受管控,仅对依赖glibc动态编译程序生效。

精细化带宽管控,还是要直接使用tc原生命令。wondershaper和trickle可以覆盖大部分日常场景,但若需求是按IP、端口限速,或是不同业务分配差异化流量优先级,就需要掌握tc qdisc/class/filter三层结构。一条典型出口上传限速示例:tc qdisc add dev eth0 root tbf rate 1mbit burst 32kbit latency 400ms,含义为eth0出口带宽锁定1Mbps,允许32Kb瞬时突发流量,排队时长超过400ms数据包直接丢弃。tbf即令牌桶过滤器,rate代表长期平均速率,burst是令牌桶容量,latency是最大排队延迟,三个参数共同决定限速平滑程度。burst数值过小,限速效果生硬,少量突发流量就会丢包;数值过大,短时间流量会超出设定上限。latency调小可以降低延迟,但丢包概率上升,调大提升吞吐量,网络延迟随之增加。

下载方向限速比上传复杂。tc管控的是网卡发送队列,数据包已经流入服务器之后tc无法干预。想要限制下载速率,需要借助ifb虚拟网卡转发入口流量,在ifb设备上配置限速。操作流程:先执行modprobe ifb加载内核模块,ip link set dev ifb0 up启用虚拟网卡,通过tc filter把eth0入站流量mirred转发至ifb0,最后在ifb0出口配置tbf规则。整套操作步骤多,比上传限速繁琐不少。

不想手动编写配置,有现成脚本可以直接部署。honorcnboy/traffic_control项目实现智能流量管控,脚本调用vnstat统计流量消耗,达到预设流量阈值自动触发限速,流量即将耗尽直接断网,避免超出套餐产生额外扣费。支持Telegram消息推送,每日发送流量报表,配置项可以设置月流量配额、触发限速百分比、熔断剩余流量阈值。V2rayZone/simple-speed-limiter是另一套方案,专注双向带宽限制,单条命令完成安装,配置文件填写网卡名称和上下行Mbps数值,simple-speed-limiter start启用。配置存放在config.env,修改speed参数执行restart即可生效,无需重新安装。

流量限速有几个容易踩的坑需要提前了解。限速单位是Kbps(千比特每秒),不是KB/s(千字节每秒),两者换算差距八倍。wondershaper文档明确标注,-d 10240代表10240 Kbps,换算成下载软件显示单位大约1.25 MB/s。如果按照KB/s预估数值填写,实际限速结果会比预期低八倍。另外限速规则对已经建立的TCP连接不一定立刻生效,TCP拥塞控制算法会慢慢把速度降到限制值,想要验证效果新开wget或者speedtest测试,不要依靠旧连接判断。tc规则重启失效,wondershaper和原生tc命令都存在这个问题,配置完成务必做好持久化设置。

免责声明:本文提供的方法与建议仅供技术参考,实际部署效果受机房环境、运营商线路、系统配置等多重因素影响。请在专业人员指导下操作,因自行操作导致的业务损失本站不承担责任。

相关推荐

VPS动态IP服务器 动态IP地址分配服务器

VPS默认分配静态IP,购买时分配固定地址,只要不主动释放,IP持续归你使用。但部分场景需要动态IP,比如数据采集、批量账号注册、多地区访问测试。固定IP容易被目标网站识别封禁,封一个就少一个

vps 怎么更换 IP,vps 换 ip 实操方法介绍

VPS更换IP,简单来说就是向服务商申请分配一个新的公网地址。不过申请方式、是否收费、更换之后会出现哪些问题,里面有不少需要留意的地方,我之前踩过好几次坑,整理一下相关内容。首先要明确