centos如何回收利用网络带宽
小樊
32
2025-12-21 14:31:53
CentOS 回收利用网络带宽的实用步骤
一 快速定位占用带宽的进程与连接
- 安装常用监控工具(EPEL 源在 CentOS 上常需先启用):sudo yum install -y epel-release && sudo yum install -y nload iftop nethogs vnstat bmon
- 总体带宽:nload(按网卡查看入/出流量)、vnstat -l(实时)、bmon(多网卡与图形化速率)
- 按连接:iftop -n -P(不做 DNS 反查、显示端口,便于定位对端 IP:端口)
- 按进程:nethogs(直接显示 PID/程序名与带宽,便于“揪出”异常进程)
- 实战思路:先用 nload/vnstat 确认是否异常,再用 iftop 定位异常对端,最后用 nethogs 找到具体进程并处置(优化程序或限制其带宽)。
二 清理无用连接与释放端口资源
- 查看并清理异常连接:ss -tanp | grep ESTAB 或 netstat -anp | grep ESTABLISHED;确认无业务影响后用 kill -9 终止问题进程(谨慎操作)
- 关闭非必要服务与端口:systemctl stop/disable <服务名>;firewall-cmd --remove-port=<端口>/tcp --permanent && firewall-cmd --reload
- 释放不再使用的 IP:ip addr del /<掩码> dev <网卡>;若用 NetworkManager:nmcli connection down <连接名> 或 nmcli connection delete <连接名>
- 清理网络缓存:systemd-resolve --flush-caches;ip route flush cache
- 处置原则:优先“止血”(停服务/断连接),再做“治理”(优化程序或加限速策略),避免直接 kill 关键业务进程。
三 用 QoS 限速与整形 回收被占用的带宽
- 场景 A 限制某接口总带宽(下载方向示例,单位换算:1mbit=1000kbit)
- tc qdisc add dev eth0 root tbf rate 2mbit burst 32kbit latency 400ms
- 场景 B 按 HTB 分级并限制某类流量(示例:限制所有 IP 的下载为 1Mbps)
- tc qdisc add dev eth0 root handle 1: htb default 10
- tc class add dev eth0 parent 1: classid 1:1 htb rate 1mbit
- tc filter add dev eth0 protocol ip parent 1:0 prio 1 u32 match ip dst 0.0.0.0/0 flowid 1:1
- 场景 C 按端口限速(nftables 速率限制,示例:入站 TCP 80 超过 1kb/s 的流量丢弃/限速)
- nft add table ip filter
- nft add chain ip filter input { type filter hook input priority 0 ; }
- nft add rule ip filter input meta l4proto tcp dport 80 limit rate over 1kb/s burst 32kbit drop
- 提示:接口名请用 ip link show 确认;限速会影响时延与吞吐,建议先在测试环境验证阈值与策略。
四 内核与系统参数优化 提升可用带宽与连接效率
- 编辑 /etc/sysctl.conf 并应用(sysctl -p):
- 加速回收连接:net.ipv4.tcp_tw_reuse = 1;net.ipv4.tcp_fin_timeout = 30
- 增大端口与队列:net.ipv4.ip_local_port_range = 1024 65000;net.ipv4.tcp_max_syn_backlog = 2048
- 优化缓冲:net.core.rmem_max = 16777216;net.core.wmem_max = 16777216;net.ipv4.tcp_rmem = 4096 87380 16777216;net.ipv4.tcp_wmem = 4096 65536 16777216
- 文件描述符与并发:/etc/security/limits.conf 增加 * soft/hard nofile 65536,重新登录生效
- 适用场景:短连接高并发、TIME_WAIT 堆积、带宽充足但吞吐上不去等情况;修改前评估应用兼容性。
五 持续监控与回退方案
- 持续观测:nload/vnstat 做趋势,iftop/nethogs 做问题定位;必要时接入 Zabbix/Nagios 做告警与可视化
- 变更留痕:对 tc/nftables/sysctl 等策略保留命令历史与回退脚本;异常可快速恢复
- 回退示例:tc qdisc del dev eth0 root;nft delete table ip filter;sysctl -p 恢复备份配置
- 风险提示:限速/断流/杀进程等操作可能引发业务中断,务必在维护窗口、做好备份与回退预案后执行。